Köszönet Ponekker Zoltánnak a segítségéért.
Mohari András <mayday@freemail.hu>
A skineket a következő könyvtárakban (és a megadott sorrendben) keresi a program:
$(DATADIR)/Skin/ $(PREFIX)/share/mplayer/Skin/ ~/.mplayer/Skin/
A második könyvtár más is lehet, attól függően, hogy hogyan volt konfigurálva
az MPlayer (lásd a configure
script --datadir
kapcsolóját).
Az előbbi könyvtárak alatt minden skin a saját könyvtárába kerül, például:
/usr/local/share/mplayer/Skin/default/
A főablakban (lásd alább) teljesen "átlátszó" részeket tartalmazó képeket is lehet használni: az átlátszónak szánt területeket az #FF00FF (lila) színnel kell megjelölni. Ez azt jelenti, hogy a főablak akár "formára vágott" is lehet, ha az X szervereden van XShape támogatás.
Jelenleg három "bőrözhető" ablak van: a főablak, a lejátszóablak és a skin menü (utóbbi a jobb gomb lenyomásával jeleníthető meg).
Egy gombnak három állapota van (lenyomott, felengedett, letiltott), így a gomb képe ennek megfelelően három egymás alatti részből áll. Részletekért lásd a button elem leírását.
Egy potméter (ez főleg pozícionáláshoz és hangerő/balansz állításhoz használatos) képe több különböző fázisból állhat, így a potméterhez készített kép szintén egymás alatti részekből áll. Részletekért lásd a hpotmeter és a potmeter elemet.
A címkék némileg különlegesek, ugyanis a kirajzolásukhoz szükséges karakterek egy képről származnak, amin belül az egyes karakterek helyét és méretét egy szöveges fontleíró fájl segítségével kell megadni. A címkékről részletesen a dlabel és slabel elemnél olvashatsz.
Megjegyzés: a főablak rajzolásához használt képek tartalmazhatnak teljesen átlátszó részeket, ahogy arról a képformátumoknál már szó volt. Ha az X Server nem tartalmazza az XShape bővitményt, akkor az átlátszónak megjelölt részek fekete színüek lesznek. Ha ezt ki szeretnéd használni, akkor a main ablak hátter képének szélességének oszthatónak kell lennie nyolccal.
A menüpontokat a képeken belüli helyükkel és méretükkel kell definiálni (lásd a skin menüről szóló részt).
Egy fontos dologról még nem esett szó: a gombok, potméterek és menüpontok működéséhez az MPlayernek tudnia kell, hogy mit is csináljon, ha rájuk kattintasz. Ez üzenetek (események) segítségével valósul meg. Az előbb említett elemekhez mindig meg kell adni azt az üzenetet, amit majd a kattintásra generálnak.
skin
fájl kivételével az összes fájlt úgy nevezed el,
ahogy csak akarod (de a fontleíró fájloknak .fnt kiterjesztésűeknek kell
lenniük).
skin
fájl;
" karakterrel lehet
kezdeni a sor elején (legfeljebb szóközök és tab karakterek lehetnek
a ";
" előtt).
A fájl egy vagy több szekcióból áll, ahol minden szekció egy alkalmazás leírására szolgál, és a következőképpen néz ki:
section = szekciónév . . . end |
Jelenleg csak egyetlen alkalmazás van, így csak egy szekciót kell megadni: ennek neve movieplayer.
Ezen a szekción belül az MPlayer minden egyes ablakához az alábbi formájú leíró blokkok tartoznak:
window = ablaknév . . . end |
(A lejátszóablak és a menü blokkja el is hagyható, ha nincs szükséged rájuk.)
A blokkon belül az ablak minden egyes elemét ilyen sorok adják meg:
elem = paraméter
Az elem egy rögzített név, a paraméter pedig egy numerikus vagy szöveges érték (vagy vesszőkkel elválasztott értéklista).
A fentiek együtt valahogy így néznek ki:
section = movieplayer window = main ; ... a főablak elemei ... end window = sub ; ... a lejátszóablak elemei ... end window = menu ; ... a menü elemei ... end end |
Végezetül néhány szó az elemekhez rendelt képek megadásáról.
A fájlok nevét könyvtárak nélkül kell megadni, ugyanis a képeket a skin file
könyvtárában keresi az MPlayer. A fájlok kiterjesztése elhagyható.
Ha a megadott
fájl nem létezik, akkor az MPlayer megpróbálja betölteni a
<fájlnév>.<kit> nevű fájlt, ahol a <kit>
helyére a png
vagy PNG végződést helyezi (a megadott sorrendben). Az első létező fájlt
fogja betölteni.
Itt egy példa, hogy mindez világosabb legyen. Tegyük fel, hogy a
main.png lesz a főablak háttere, amit így adsz meg:
Ennek hatására az MPlayer megpróbálja betölteni a main, main.png, majd a main.PNG fájlt, így végül megtalálja a main.png-t.base = main, -2, -2 |
window = main
" . . .
"end
" blokkban használható elemek leírása következik.
Figyelem: a képen az átlátszónak megjelölt területek (#FF00FF színűek) feketék lesznek az XShape támogatás nélküli X szervereken. A kép szélességének oszthatónak kell lennie nyolccal.
+---------------+ | lenyomott | +---------------+ | felengedett | +---------------+ | letiltott | +---------------+ |
+-----------------+ | 1. fázis képe | +-----------------+ | 2. fázis képe | +-----------------+ . . +-----------------+ | n. fázis képe | +-----------------+ |
NULL
, de elég furcsán
mutat, ha nem látod a potméter állását (hiszen gombja nincs)...
.fnt
kiterjesztésű
szöveges fontleíró fájl neve (a kiterjesztést itt nem kell megadni).
A fontazon a későbbiekben a font azonosítására szolgál
(lásd a dlabel és
slabel elemet).
Maximum 25 font definiálható.
"
) közé írni (ám jelenleg a "
nem
lehet része a szövegnek). A megjelenítés a fontazon által
azonosított fonttal történik. A címke szövegében az alább
felsorolt változók is használhatók.
Változó | Jelentése |
---|---|
$1 | lejátszás ideje hh:mm:ss formában |
$2 | lejátszás ideje mmmm:ss formában |
$3 | lejátszás ideje hh formában (órák) |
$4 | lejátszás ideje mm formában (percek) |
$5 | lejátszás ideje ss formában (másodpercek) |
$6 | film hossza hh:mm:ss formában |
$7 | film hossza mmmm:ss formában |
$8 | lejátszás ideje h:mm:ss formában |
$v | hangerő xxx.xx% formában |
$V | hangerő xxx.x formában |
$b | balansz xxx.xx% formában |
$B | balansz xxx.x formában |
$$ | a $ karakter |
$a | egy karakter a hang fajtájának megfelelően (nincs: n ,
mono: m , sztereó: t ) |
$t | track száma (a lejátszólistában) |
$o | fájlnév |
$f | fájlnév csupa kisbetűvel |
$F | fájlnév csupa nagybetűvel |
$T | egy karakter a stream típusának megfelelően (fájl: f ,
video CD: v , DVD: d , URL: u )
|
$p | a "p" karakter, ha a lejátszás folyamatban van, és a font tartalmazza a "p" karaktert |
$s | az "s" karakter, ha a lejátszás le van állítva, és a font tartalmazza az "s" karaktert |
$e | az "e" karakter, ha a lejátszás szünetel, és a font tartalmazza az "e" karaktert |
$x | a film szélessége |
$y | a film magassága |
$C | a használt codec neve |
Megjegyzés: a $a, $T, $p, $s
és $e változók lehetővé teszik, hogy az általuk visszaadott
karakterekkel különleges szimbólumokat jeleníts meg (például az "e"
karakterrel a szünet jelét, ami többnyire valami ilyesmi: ||
).
Ezeknek a szimbólumoknak célszerű külön fontot készíteni. Lásd a
szimbólumokról szóló részt.
"
nem lehet a szöveg része).
A címke a fontazon által azonosított fonttal lesz megjelenítve.
window = sub
" . . . "end
" blokkban
az alább felsorolt elemek használhatók.
A "window = menu
" . . . "end
" blokkban
az alább felsorolt elemek használhatók.
A fájl .fnt kirejesztésű; lehetnek benne megjegyzések, ezeket a sor elejére
írt ";
" karakterrel kell kezdeni.
Az alábbi sornak feltétlenül szerepelnie kell valahol (célszerűen a fájl
elején):
image = kép
A kép a karakterek képét tartalmazó fájl neve (a kiterjesztés itt is elhagyható). Ezt a sort az egyes karaktereket definiáló sorok követik, amiknek így kell kinézniük:
"kar" = x, y, sz, m
Itt x és y a kar karakter képen belüli pozíciója (0,0 a kép bal felső sarka), az sz és m pedig a karakter szélessége és magassága pixelben.
Az alábbi példa a font.png képen egymás után rajzolt A, B és C karaktert definiálja.
; "font.png" helyett akár "font" is lehet image = font.png ; Három karakter legfeljebb csak példának elég. :-) "A" = 0,0, 7,13 "B" = 7,0, 7,13 "C" = 14,0, 7,13 |
Az alábbi táblázatban láthatók azok a karakterek, amik szimbólumok megjelenítésére használhatók, és amikhez érdemes külön fontot készíteni.
Karakter | Szimbólum |
---|---|
p | lejátszás (play) |
s | leállítás (stop) |
e | szünet (pause) |
n | nincs hang |
m | mono hang |
t | sztereó hang |
f | a stream egy fájl |
v | a stream egy video CD |
d | a stream egy DVD |
u | a stream egy URL |
Megjegyzés: jelenleg még nem mindegyik üzenet működik (vagy legalábbis nem megfelelően). Amint tudod, a GUI még fejlesztés alatt áll.
Lejátszás:
- evNext
- A következő számra ugrik a lejátszólistában.
- evPause
- Szünetelteti a lejátszást.
- evPauseSwitchToPlay
- Az evPlaySwitchToPause üzenettel együtt egy kapcsolót alkot, ami egy (látszólag) közös lejátszás/szünet gomb használatát teszi lehetővé. Mindkét üzenetet egy-egy gombhoz célszerű hozzárendelni, és a gombokat azonos pozícióba kell rakni. Ennek az üzenetnek a hatására a lejátszás szünetel, és az evPlaySwitchToPause gomb képe lesz kirajzolva (jelezve hogy lenyomhatod a gombot a lejátszás folytatásához).
- evPlay
- Megkezdi a lejátszást.
- evPlaySwitchToPause
- Az evPauseSwitchToPlay párja. Az üzenet hatására a megkezdődik a lejátszás, és az evPauseSwitchToPlay gomb képe lesz kirajzolva (jelezve hogy lenyomhatod a gombot a lejátszás szüneteltetéséhez).
- evPrev
- Az előző számra ugrik a lejátszólistában.
- evStop
- Megállítja a lejátszást.
Pozícionálás:
- evBackward10sec
- evBackward1min
- evBackward10min
- 10 másodpercet / 1 percet / 10 percet ugrik vissza a lejátszásban.
- evForward10sec
- evForward1min
- evForward10min
- 10 másodpercet / 1 percet / 10 percet ugrik előre a lejátszásban.
- evSetMoviePosition
- A megadott pozícióra ugrik (potméternél használatos, a potméter relatív értékét (0-100%) használja).
Videoval kapcsolatos üzenetek:
- evDoubleSize
- Dupla méretűre állítja a lejátszóablakot.
- evFullScreen
- Váltás ablakos és teljes képernyős mód között (oda-vissza működik).
- evNormalSize
- Normál méretűre állítja a lejátszóablakot.
Hanggal kapcsolatos üzenetek:
- evDecAudioBufDelay
- Csökkenti a hang késleltetését.
- evDecBalance
- Csökkenti a balanszot.
- evDecVolume
- Csökkenti a hangerőt.
- evIncAudioBufDelay
- Növeli a hang késleltetését.
- evIncBalance
- Növeli a balanszot.
- evIncVolume
- Növeli a hangerőt.
- evMute
- Kikapcsolja/bekapcsolja a hangot.
- evSetBalance
- Adott értékre állítja a balanszot (potméterrel használatos, a potméter relatív értékét (0-100%) használja).
- evSetVolume
- Adott értékre állítja a hangerőt (potméterrel használatos, a potméter relatív értékét (0-100%) használja).
Egyéb üzenetek:
- evAbout
- Megjeleníti a program információs ablakát.
- evDropSubtitle
- Törli az aktuálisan használt felirat fájlt.
- evEqualizer
- Bekapcsolja/kikapcsolja az equalizert.
- evExit
- Kilép a programból.
- evIconify
- Ikonizálja az ablakot.
- evLoad
- Betölt egy fájlt (amit egy fájlválasztó ablakban jelölhetsz ki).
- evLoadPlay
- Ugyanaz mint az evLoad, de betöltés után automatikusan megkezdi a lejátszást.
- evLoadSubtitle
- Betölt egy felirat fájlt (amit egy fájlválasztó ablakban jelölhetsz ki).
- evLoadAudioFile
- Betölt egy hang fájlt (amit egy fájlválasztó ablakban jelölhetsz ki).
- evNone
- Üres üzenet, nincs hatása. (Legfeljebb csak a CVS verzióban. :-))
- evPlayList
- Megnyitja/bezárja a lejátszólista ablakot.
- evPlayDVD
- Megpróbálja megnyitni a megadott DVDROM - ban lévő lemezt.
- evPlayVCD
- Megpróbálja megnyitni a megadott CDROM - ban lévő lemezt.
- evPreferences
- Megnyitja a beállítások ablakot.
- evSetAspect
- Beállítja a képarányt a megadottra.
- evSetURL
- Elővarázsolja az URL dialogus ablakot.
- evSkinBrowser
- Megnyitja a skinböngésző ablakot.