Amint fentebb már említettem, ez a skin konfigurációs fájl. Sor-orientált;
a megjegyzést tartalmazó sorok egy ';' karakterrel kezdődnek
(csak szóközök és tab-ok lehetnek a ';' előtt).
A fájl szekciókból áll. Minden szekció a skin egy alkalmazását írja le a következő formában:
section = szekció neve
.
.
.
end
Jelenleg csak egy alkalmazás van, vagyis csak egy szekciót kell készítened: a neve movieplayer.
Ebben a szekcióban minden ablakot egy blokk ír le a következő formában:
window = ablak neve
.
.
.
end
Ahol az ablak neve ezen karakterláncok valamelyike lehet:
main - a főablak esetében
sub - az alablak esetében
menu - a skin menü esetében
playbar - a playbar esetében
(Az alablak és menü blokkok opcionálisak - nem kötelező menüt készítened vagy kidekorálni az alablakot.)
Egy ablak blokkon belül az ablak minden elemét definiálhatod, egyet egy sorban, ebbe a formában:
item = parameter
Ahol az item egy karakterlánc, ami azonosítja az adott
típusú GUI elemet, a parameter pedig egy numerikus vagy
szöveges érték (vagy értékek listája vesszővel elválasztva).
A fentieket összerakva a teljes fájl valahogy így néz ki:
section = movieplayer window = main ; ... főablak elemei ... end window = sub ; ... alablak elemei ... end window = menu ; ... menü elemei ... end window = playbar ; ... playbar elemei ... end end
Egy kép fájl nevét a hozzá vezető útvonal nélkül kell megadni - a képeknek
a skins könyvtárban kell lenniük.
A fájl kiterjesztését megadhatod (de nem kötelező). Ha a fájl nem létezik,
az MPlayer megpróbálja betölteni a
<filename>.<ext> fájlt, ahol png
és PNG kerül az <ext> helyére
(ebben a sorrendben). Az első megtalált fájlt fogja használni.
Egy példa a tisztánlátáshoz. Tegyük fel, hogy van egy main.png nevű fájlod, amit a fő ablakhoz használsz:
base = main, -1, -1
Az MPlayer megpróbálja betölteni a main, main.png, main.PNG fájlokat.
Végül pár szó a pozícionálásról. A fő ablak és az alablak a képernyő különböző
sarkaiba helyezhető az X és Y koordináták
megadásával. A 0 fent vagy bal oldalt van, a
-1 középen és a -2 jobb oldalt vagy lent,
ahogy az itt is látható:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
A következő bejegyzések használhatóak a
'window = main' ... 'end',
és a 'window = playbar' ... 'end'
blokkokban.
base = image, X, Y
Megadhatod vele a fő ablakban használt háttérképet.
Az ablak a megadott X, Y pozícióban fog megjelenni
a képernyőn. Az ablak mérete a kép méretével lesz azonos.
Ezek a koordináták jelenleg nem működnek a megjelenítő ablak esetében.
A kép transzparens részei (#FF00FF színű) feketeként jelenik meg az XShape kiterjesztés nélküli X szerverek esetében. A kép szélességének 8-cal oszthatónak kell lennie.
button = image, X, Y, width, height, message
Egy width * height méretű gomb
megjelenítése az X, Y pozícióban. A megadott
message üzenet akkor generálódik, amikor a gombot
megnyomják. Az image által megadott képnek három
részt kell tartalmaznia egymás alatt (a gomb állapotainak megfelelően), így:
+-------------+ | benyomott | +-------------+ | felengedett | +-------------+ | letiltott | +-------------+
decoration = enable|disable
Engedélyezi vagy letiltja a főablakban az ablakkezelő dekorációját. Alapértelmezetten disable.
Ez nem működik a megjelenítő ablakban, nincs rá szükség.
hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
vpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message
Egy vízszintes (hpotmeter) vagy függőleges (vpotmeter) potméter megjelenítése
width * height méretben az
X, Y pozícióban. A kép több különböző részre osztható a
potméter különböző fázisainak megfelelően (például lehet egy pot-od a hangerő
szabályozásához, ami zöldből pirosba vált, ahogy az értéke változik a minimumtól
a maximumig). A hpotmeter-nek lehet egy gombja is, amit
vízszintesen lehet húzni. A paraméterek:
button - a gombként használt kép
(három részt kell tartalmaznia egymás alatt, mint a
gomb esetében)
bwidth, bheight - a gomb
mérete
phases - a hpotmeter különböző fázisaiban
használt kép neve. Speciális értékként a NULL is
használható, ha nem akarsz ilyen képet. A képet függőlegesen
numphases részre kell felosztani így:
+------------+
| 1. fázis |
+------------+
| 2. fázis |
+------------+
...
+------------+
| n. fázis |
+------------+
numphases - a phases képen
lévő fázisok száma
default - a hpotmeter alapértelmezett értéke
(0 és 100 között)
X, Y - a hpotmeter pozíciója
width, height - a
hpotmeter szélessége és magassága
message - az üzenet, ami a
hpotmeter értékének megváltozásakor generálódik
potmeter = phases, numphases, default, X, Y, width, height, message
Egy hpotmeter gomb nélkül. (Gondolom a megfordítása volt az
eredeti cél, de csak a vízszintes vonszolásra reagál.) A paraméterek leírását
lásd a hpotmeter-nél.
A phases lehet NULL, de ez eléggé haszontalan,
mivel akkor nem látod, hogy a potmeter hova van állítva.
font = fontfile, fontid
Egy betűt definiál. A fontfile a betű leíró fájl neve egy
.fnt kiterjesztéssel (a kiterjesztést ne add meg itt).
A fontid-t a betűre történő hivatkozásokhoz lehet használni
(lásd dlabel és
slabel). 25 betűt lehet definiálni.
slabel = X, Y, fontid, "text"
Egy statikus címkét tesz ki az X, Y pozícióba. A
text szöveget jeleníti meg a fontid-vel
azonosított betűtípussal. A szöveg egyszerű karakterlánc (az $x
változók nem működnek) amit dupla idézőjelek közé kell írni (de a " karakter
nem lehet a szöveg része). A címke a fontid-vel
azonosított betűtípussal jelenik meg.
dlabel = X, Y, width, align, fontid, "text"
Egy dinamikus címkét tesz ki az X, Y pozícióba. A
címke azért dinamikus, mert a szövege periódikusan frissül. A címke
maximum hosszát a width szabályozza (a magassága
egy karakter magasságával egyezik meg). Ha a megjelenítendő szöveg
szélesebb ennél, scrollozva lesz,
különben az align paraméter által megadott módon
pozícionálódik: 0 jobbra, 1
középre, 2 balra igazítva.
A megjelenítendő szöveget a text adja meg: dupla
idézőjelek közé kell írni (de a " karakter nem lehet része a
szövegnek). A címke a fontid által meghatározott
betűtípussal jelenik meg. A szövegben a következő változókat használhatod:
| Változó | Jelentés |
|---|---|
| $1 | lejátszási idő hh:mm:ss formátumban |
| $2 | lejátszási idő mmmm:ss formátumban |
| $3 | lejátszási idő hh formátumban (órák) |
| $4 | lejátszási idő mm formátumban (percek) |
| $5 | lejátszási idő ss formátumban (másodpercek) |
| $6 | film hossza hh:mm:ss formátumban |
| $7 | film hossza mmmm:ss formátumban |
| $8 | film hossza h:mm:ss formátumban |
| $v | hangerő xxx.xx% formátumban |
| $V | hangerő xxx.xx formátumban |
| $b | balansz xxx.xx% formátumban |
| $B | balansz xxx.xx formátumban |
| $$ | az $ karakter |
| $a | egy karakter az audió típusnak megfelelően (nincs: n,
mono: m, sztereo: t) |
| $t | sáv száma (a lejátszási listában) |
| $o | fájlnév |
| $f | fájlnév kisbetűsen |
| $F | fájlnév nagybetűsen |
| $T |
egy karakter a folyam típusnak megfelelően (file: f,
Video CD: v, DVD: d,
URL: u)
|
| $p | a p karakter (ha a film lejátszás alatt van és a betűtípusban van p karakter) |
| $s | az s karakter (ha a film meg van állítva movie és a betűtípusban van s karakter) |
| $e | az e karakter (ha a lejátszás szünetel és a betűtípusban van e karakter) |
| $x | film szélessége |
| $y | film magassága |
| $C | használt codec neve |
Az $a, $T, $p, $s és $e
változók mind karakterekkel térnek vissza, amiket speciális szimbólumként kell
megjeleníteni (például az e a pillanatállj szimbóluma, ami
általában valami ilyesmi: ||). Szükséged lesz egy normál karaktereket
tartalmazó betűtípusra és egy másikra a szimbólumokhoz. Lásd a
szimbólumokról szóló részt a
további információkért.
A következő bejegyzések használhatóak a
'window = sub' . . . 'end' blokkban.
base = image, X, Y, width, height
Az ablakban megjelenítendő kép. Az ablak a megadott X, Y
pozícióban jelenik meg a képernyőn (0,0 a bal felső
sarok). A -1 a középre, a -2
a jobbra (X) és le (Y) igazítást
jelenti. Az ablak akkora lesz, amekkora a kép. A width
és a height az ablak méretét írják elő, opcionálisak
(ha hiányoznak, az ablak ugyan akkora méretű lesz, mint a kép).
background = R, G, B
Beállíthatod vele a háttér színét. Hasznos, ha a kép kisebb, mint az
ablak mérete. Az R, G és
B a szín vörös, zöld és kék komponensét adja meg
(mindegyik decimális szám 0-tól 255-ig).
Amint korábban már említettem, a menü két kép segítségével kerül megjelenítésre.
A normál menü bejegyzések a base elemmel megadott képen
láthatóak, míg az épp aktuálisan kiválasztott elem megjelenítése a
selected elemről történik. Meg kell adnod minden egyes
menüpont pozícióját és méretét.
A következő bejegyzések használhatóak a
'window = menu'. . .'end' blokkban.