Die Oberflächen befinden sich normalerweise in einem Unterverzeichnis
der mbux-Installation: /opt/mbux/etc/.
In diesem Verzeichnis befinden sich eine Reihe von .mbx-Dateien. Diese
Dateien definieren jeweils eine Oberfläche für mbux.
Eine Oberfläche besteht letztendlich nur aus einem Hintergrundbild und den Informationen
wo auf diesem Hintergundbild die einzelnen Daten angezeigt werden sollen. Klingt einfach,
ist einfach, sieht aber besser aus als man denkt! :)
Die Datei default.mbx in diesem Verzeichnis
definiert allerdings keine Oberfläche, sondern setzt die Standardeinstellungen. So
findet man z. B. in dieser Datei eine Zeile mit der use-Direktive. Diese stellt
ein, welche Oberfläche standardmäßig genutzt werden soll.
Theoretisch kann jede Direktive in allen .mbx-Dateien auftauchen. In diesem Fall
würden Sie die Standardwerte der default.mbx überschreiben. In der Regel macht es
meist wenig Sinn globale Einstellungen in den Oberflächen-Dateien zu verändern. Aber wenn
man will, dann könnte man auch.
Schauen wir jetzt mal die .mbx-Dateien genauer an.
die syntax der mbux konfigurationsdateien
Ich hab versucht die Syntax der Konfigurationsdateien möglichst einfach und effektiv zu halten.
Effektiv nicht unbedingt für den Autor einer Datei, aber einfach und mächtig genug alle möglichen
und unmöglichen Oberflächen gestalten zu können. Was aber nicht unbedingt sehr einfach ist.
Aber, was ist so "nicht unbedingt einfach" bei den Konfigurationsdateien?
Zusammenfassend: Die browse- und die
playlist-Direktiven (und letztendlich auch noch die search-Direktive).
Mit ihnen plaziert man jede einzelne Zeile auf dem Bildschirm. Ja, jede einzelne Zeile.
Das ist sehr umständlich, aber nur so kann man einfachst jede erdenkliche Oberfläche
gestalten.
Am einfachsten dürfte es sein die Konfigurationsdateien mit einem selbstgeschriebenen
Programm zu generieren. Ich hab für die Beispiel-Oberflächen selbst ein Programm
geschrieben, das mit sin() und cos() die entsprechenden Teile einer Konfigurationsdatei
erstellt. Ich hab's mit in die Distribution gelegt. ;)
| zeilen syntax | beschreibung |
| globale einstellungen |
| mp3dir <verzeichnis> | Stellt ein, wo mbux die mp3-Dateien findet. (default: /music) |
| use <skin> | Stellt ein welche Obefläche (skin) standardmäßig benutzt werden soll. Diese Direktive ist nur in der default.mbx möglich. (default: red) |
| updatefreq <seconds> | Die Zeit (in Sekunden) in der mbux in dem mp3-Verzeichnis nach neuen Dateien schaut. Diese Einstellung ist dann besonders wichtig, wenn das mp3-Verzeichnis über's Netzwerk von einem Fileserver kommt. (default: 3600) |
| locktime <seconds> | Wenn ein Titel gespielt wurde, ist er für diese Zeit (in Sekunden) gesperrt. (default: 10800) |
| clearsearch <seconds> | Nach dieser Zeit (wieder in Sekunden) wird eine Suche automatisch gelöscht. (default: 30) |
| cdrom <special file> | Über welche Gerätedatei ist das CD-ROM-Laufwerk erreichbar? (default: /dev/cdrom) (noch nicht implementiert!) |
| secret abort <string> | Setzt das geheime Such-Wort zum Abbrechen des aktuellen Titels. |
| secret menu <string> | Setzt das geheime Such-Wort zum Betreten des Haupt-Menüs. |
| secret skin <string> | Setzt das geheime Such-Wort zum Betreten des Skin-Menüs. |
| secret lock <string> | Setzt das geheime Such-Wort zum Sperren von Alt+Fx. |
| secret free <string> | Setzt das geheime Such-Wort zum Entsperren von Alt+Fx. |
| secret eject <string> | Setzt das geheime Such-Wort zum Auswerfen der CD. (noch nicht implementiert!) |
| oberflächen-abhängige einstellungen |
| imagefile <file> | Welche Hintergrundbild soll für diesen Skin verwendet werden? Im Moment werden nur GIF-Bilder erlaubt. |
| browse <n> <x> <y> <length> | Wo soll die nte Zeile der Titelübersicht angezeigt werden. <n> ist die Nummer der Zeile (0 to m). <x> und <y> sind die Postion und <length> ist die maximale Länge in Zeichen dieser Zeile. |
| playlist <n> <x> <y> <length> | Vergleichbar zur browse jedoch zum plazieren der Playlist. <n> im Bereich von 0 to m. |
| search <x> <y> <length> | Bestimmt die Position und Länge (in Zeichen) der Such-"Box" |
| fontcolor <r> <g> <b> | Die normale Schriftfarbe |
| fontcolorsearch <r> <g> <b> | Die Schriftfarbe der Suchbox |
| fontcolorinvert <r> <g> <b> | Die Schriftfarbe der Hervorhebung |
| fontcolorselect <r> <g> <b> | Die Schriftfarbe der Selektierung |
| fontcolorblink <r> <g> <b> | Die Schriftfarbe beim Blinken |
| setfont <fontfile> <size> | Truetype font zur Darstellung. (noch nicht implementiert!!) |
|
Wenn in der Oberflächenkonfigurations-Datei eine Direktive nicht benutzt wird, dann wird ihr Standardwert aus der default.mbx genommen.
Die Struktur des mp3-Verzeichnis
Schauen wir uns die Struktur des mp3-Verzeichnis (genannt mp3 root directory) mal genauer an.
mbux benutzt die Unterverzeichnisse direkt in diesem Verzeichnis um eine Auswahl aus verschiedenen Genres zu
ermöglichen. Im Genre-Menü kann man dann durch Aus- oder Abwahl dieser Verzeichnisse bestimmen welche Musik
man hören möchte.
Immer dann wenn mbux nach mp3-Dateien schaut (beim Starten und von Zeit zu Zeit, siehe die updatefreq oben)
durchsucht es diese Verzeichnisse rekursiv und ordnet alle mp3-Dateien die sich unterhalb eines "Genre-Verzeichnisses"
befinden, diesem Genre zu.
Ein Beispiel

<mp3dir>/ +-> green_music/ --> green1.mp3
| green2.mp3
| green3.mp3
|
+-> red_music/ --> red1.mp3
| red2.mp3
|
+-> blue_music/ --> blue1.mp3
+-> black_music/ --> ...
\-> white_music/ --> ...
|
|
Die Dateien green1.mp3 bis green3.mp3 werden dem Genre "green_music" zugeordnet. Die
Dateien red1.mp3 und red2.mp3 dem Genre "red_music". Die Datei blue1.mp3 dem Genre "blue_music".
Und so weiter...
Ein anderes Beispiel
Und ein wenig anders:

<mp3dir>/ +-> colored_music/ +-> green/ --> green1.mp3
| | green2.mp3
| | green3.mp3
| |
| +-> red/ -> red1.mp3
| | red2.mp3
| |
| \-> blue/ -> blue1.mp3
|
\-> grey_music/ -> white/ -> ...
black/ -> ...
|
|
mbux erkennt in diesem Fall wieder nur die Verzeichnisse "colored_music" und "grey_music" als
Genre-Verzeichnisse. Die Unterunterverzeichnisse gelten nicht als Genre-Verzeichnisse.
Die Dateien green1.mp3 bis green3.mp3 und red1.mp3, red2.mp3 und blue1.mp3 werden dem
Genre "colored_music" zugeordnet. Während die Dateien aus dem "white" und "black" Verzeichnis
dem Genre "grey_music" zugeordnet werden.
Ich hoffe es noch alles irgendwie klar? ;)