B.1. Überblick

Es hat nicht wirklich etwas mit dem Skinformat zu tun, aber du solltest wissen, dass MPlayer kein eingebautes Skin besitzt, also muss zumindest ein Skin installiert sein, damit das GUI verwendet werden kann.

B.1.1. Verzeichnisse

Die nach Skins durchsuchten Verzeichnisse sind (der Reihe nach):

  1. ~/.mplayer/skins/

  2. $(PREFIX)/share/mplayer/skins/

Beachte, dass der zweite Pfad je nach Art der MPlayer-Konfiguration variieren kann (siehe Argumente --prefix und --datadir des configure-Scripts).

Jedes Skin wird in sein eigenes Verzeichnis unterhalb einem der oben aufgeführten Verzeichnisse installiert, zum Beispiel:

$(PREFIX)/share/mplayer/skins/default/

B.1.2. Bildformate

Die Bilder müssen PNGs sein – entweder Truecolor (24 oder 32 bpp) oder 8 bpp mit einer RGBA-Farbpalette.

Im Hauptfenster und in der Abspielleiste (siehe unten) kannst du Bilder mit 'Transparenz' verwenden: Mit der Farbe #FF00FF (Magenta) gefüllte Bereiche sind beim Betrachten mit MPlayer voll transparent. Dies bedeutet, dass du sogar Formfenster haben kannst, wenn dein X-Server die XShape-Extension besitzt.

B.1.3. Skin-Komponenten

Skins sind ziemlich frei im Format (im Unterschied zu den Skins mit festem Format von Winamp/XMMS zum Beispiel), somit liegt es an dir, einen tollen zu kreieren.

Zur Zeit sind vier Fenster zu dekorieren: das Hauptfenster, das Videofenster, die Abspielleiste und das Skin-Menü.

  • Mit dem Hauptfenster kontrolliert man den MPlayer. Die Abspielleiste erscheint im Vollbild-Modus, sobald man die Maus unten an den Bildschirm bewegt. Der Hintergrund der Fenster ist eine Grafik. Ins Fenster können (und müssen) diverse Elemente platziert werden: Buttons, Potentiometer (Schieberegler) und Labels. Für jedes Element musst du dessen Position und Größe angeben.

    Ein Button besitzt drei Zustände (gedrückt, losgelassen, deaktiviert), deshalb muss seine Grafik in drei untereinander liegende Teile aufgeteilt werden. Siehe Eintrag Button für mehr Details.

    Ein Potentiometer (hauptsächlich für die Suchleiste und die Lautstärke-/Balance-Regler) kann durch die Aufteilung der Grafik in verschiedene Teile eine beliebige Anzahl von Phasen haben. Siehe hpotmeter für Details.

    Labels sind ein wenig speziell: Die Buchstaben und Zeichen, die man zu ihrer Darstellung benötigt, werden von einer Grafikdatei und die Buchstaben und Zeichen in der Grafik durch eine Schrift-Beschreibungsdatei festgelegt. Letztere ist eine Volltextdatei, welche die x-,y-Position und Größe jedes Zeichens in der Grafik beschreibt (die Grafikdatei und ihre Schrift-Beschreibungsdatei bilden zusammen eine Schrift). Siehe dlabel und slabel für Details.

    Anmerkung

    Alle Grafiken können wie im Abschnitt über die Grafikformate erklärt volle Transparenz besitzen. Wenn der X-Server keine XShape-Extension unterstützt, werden die als transparent markierten Teile schwarz. Wenn du dieses Feature gerne nutzen möchtest, muss die Breite der Hintergrundgrafik des Hauptfensters durch 8 teilbar sein.

  • Im Videofenster erscheint das Video. Es kann eine festgelegte Grafik anzeigen, wenn kein Film geladen ist (es ist ziemlich langweilig, ein leeres Fenster vor sich zu haben :-)) Beachte: Transparenz ist hier nicht erlaubt.

  • Das Skin-Menü bietet die Möglichkeit, MPlayer mittels Menüeinträgen zu kontrollieren. Es wird durch die mittlere Maustaste aktiviert. Zwei Grafiken sind für das Menü erforderlich: eine davon ist die Basisgrafik, die den Normalzustand des Menüs darstellt, die andere wird zur Anzeige der gewählten Einträge verwendet. Wenn du das Menü aufklappst, wird die erste Grafik angezeigt. Bewegst du die Maus über die Menüeinträge, wird der aktuell gewählte Eintrag aus der zweiten Grafik über den Menüeintrag unterhalb des Mauszeigers kopiert (die zweite Grafik wird nie als ganzes angezeigt).

    Ein Menüeintrag wird definiert durch seine Position und Größe innerhalb der Grafik (sieh nach mehr Details im Abschnitt über das Skin-Menü).

Eine wichtige Sache wurde noch nicht aufgeführt: Damit Buttons, Potentiometer und Menüeinträge funktionieren, muss MPlayer wissen, was er machen soll, wenn sie angeklickt werden. Dies geschieht mittels Nachrichten (Ereignisse). Für diese Elemente musst du die beim Klick auf sie zu generierende Nachricht definieren.

B.1.4. Dateien

Du benötigst folgende Dateien, um ein Skin zu bauen:

  • Die Konfigurationsdatei genannt skin erzählt MPlayer, wie unterschiedliche Teile des Skins zusammengefügt werden und was er tun soll, wenn du irgendwo innerhalb des Fenster hinklickst.

  • Die Hintergrundgrafik fürs Hauptfenster.

  • Grafiken für die Elemente im Hauptfenster (einschließlich einer oder mehrerer Schrift-Beschreibungsdateien zum Zeichnen der Labels).

  • Die Grafik, die im Videofenster angezeigt werden soll (optional).

  • Zwei Grafiken für das Skin-Menü (sie werden nur gebraucht, wenn du ein Menü erzeugen möchtest).

Mit Ausnahme der skin-Konfigurationsdatei kannst du die anderen Dateien benennen, wie es dir beliebt (beachte aber, dass Schrift-Beschreibungsdateien eine .fnt-Erweiterung besitzen müssen).