Musik, lecker angerichtet
Shell-Skripte mit grafischen Dialogen
Ungenießbares aussieben
Beim Erzeugen der MP3-Liste können Fehler auftreten. Einmal kann es passieren, dass sich die Datei ~/.mp3liste nicht erzeugen lässt (kein Platz auf der Festplatte, keine Schreibrechte etc.). Zum anderen kann es sein, dass gar keine MP3-Dateien aufzutreiben sind. Ersteres signalisieren wir mit Hilfe eines Fehlerhinweises à la
kdialog --error "mp3-Liste konnte nicht erzeugt werden."
(Abbildung 3). Beim zweiten Fall handelt es sich nicht wirklich um einen Fehler, so dass ein Warnhinweis wie in Abbildung 4 genügt:
kdialog --sorry "Es wurden keine mp3-Dateien gefunden."
Auch wenn die MP3-Liste korrekt erzeugt wurde, schadet ein Hinweis (Abbildung 5) nicht:
kdialog --msgbox "Die mp3-Liste wurde erfolgreich angelegt."
Welche Garmethode hätten Sie gern?
Ob nun eine existierende oder eine neu erzeugte MP3-Liste zum Einsatz kommt – jetzt geht es um die Auswahl der zu verwendenden Abspielsoftware. In Listing 1 übernimmt dies das kdialog-Menü aus Abb. 6:
player=`kdialog --menu "Bitte wählen Sie einen der folgenden Player:" xmms "X-Multimedia-System" noatun noatun`
Zur Auswahl stehen das X-Multimedia-System, das auf den Befehl xmms hört, und der KDE-Mediaplayer noatun. Wie bei der Wahl des Suchverzeichnisses sorgt die Kommandosubstitution dafür, dass der gewählte Player-Befehl in die Variable player geschrieben wird. Sie nutzen wir später, um das darin abgespeicherte Programm zu starten (Kasten 1).
Enthält player einen Wert (if überprüft dies), dann (then) soll ein Dialog erscheinen, der die Aufforderung Bitte wählen Sie die gewünschten Songs aus. anzeigt und alle gefundenen Titel zur Auswahl anbietet (Abbildung 7). Einen solchen Dialog bekommen wir mit
kdialog --checklist "Bitte wählen Sie die gewünschten Songs aus." Rückgabewert1 "Anzeige zu Song1 " aus/ein Rückgabewert2 "Anzeige zu Song2 " aus/ein […]
Im Anschluss an den Aufforderungstext stehen die einzelnen Listeneinträge als Dreierblocks bestehend aus * dem Rückgabewert des Eintrags, den kdialog ausgibt, wenn er bei Verlassen des Dialogs angewählt wurde (im Beispiel bietet sich der Pfad zur MP3-Datei an), * dem eigentlichen Listeneintrag (den der mp3info-Aufruf aus Listing 2 generiert) und * der Angabe, ob der Eintrag vorselektiert (on) oder nicht (off) sein soll – in unserem Fall off. All diese Daten legt das Hilfsskript mp3infos.bash in dreizeiligen Blöcken in ~/.mp3liste ab. Die erste Zeile enthält dabei jeweils das Verzeichnis und den Dateinamen der Datei (z. B. "/home/hoepfner/mp3/04_das_liebchen.mp3"). In der zweiten Zeile folgen die aus dem ID3-Tag gewonnenen Informationen (z. B. "Gute Frage - Das Liebchen (Variable - 04_das_liebchen.mp3)"), und die dritte Zeile besteht nur aus dem Schlüsselwort off (siehe auch Kasten 1).



