C.2. Soubor skin

Jak jsme již řekli, je to konfigurační soubor skinu. Soubor je řádkově orientován; řádky s komentářem začínají znakem ';' (před ním jsou povoleny jen mezery a tabulátory).

Soubor je složen ze sekcí. Každá sekce popisuje skin pro aplikaci a má následující formu:

section = název cekce
.
.
.
end

Zatím máme jen jednu aplikaci, takže potřebujete jen jednu sekci: její název je movieplayer.

Uvnitř sekce je každé okno posáno blokem, který má následující formu:

window = název okna
.
.
.
end

kde název okna může být jeden z těchto řetězců:

(Bloky sub a menu jsou volitelné - nemusíte vytvářet nabídku nebo vyzdobit podokno.)

Uvnitř window bloku můžete definovat každou položku okna řádkem v tomto tvaru:

položka = parametr

Kde položka je řetězec označující typ položky GUI a parametr je číselná nebo textová hodnota (nebo seznam hodnot oddělených čárkami).

Dáte-li to všechno dohromady, celý soubor vypadá asi takto:

section = movieplayer
  window = main
  ; ... položky hlavního okna ...
  end

  window = sub
  ; ... položky podokna ...
  end

  window = menu
  ; ... položky menu ...
  end

  window = playbar
  ; ... položky ovládacího panelu ...
  end
end

Jméno souboru s obrázkem musí být zadáno bez úvodních adresářů - obrázky jsou vyhledávány v adresáři skins. Měli byste (ale nemusíte) zadat příponu souboru. Pokud soubor neexistuje, zkouší MPlayer načíst soubor <jméno>.<příp>, kdy jsou za <příp> zkoušeny přípony png a PNG (v tomto pořadí). Použitý bude první vyhovující soubor.

Aby bylo vše jasné, uvedeme příklad. Řekněme, že máte obrázek jménem main.png, který použijeme pro hlavní okno:

base = main, -1, -1

MPlayer se pokusí nahrát soubory main, main.png, main.PNG.

Nakonec několik slov o pozicování. Hlavní okno a podokno lze umístit do odlišných rohů obrazovky zadáním souřadnic X a Y. 0 horní nebo levý, -1 je střed a -2 je vpravo nebo dole, jak je vidět na obrázku:

(0, 0)----(-1, 0)----(-2, 0)
  |          |          |
  |          |          |
(0,-1)----(-1,-1)----(-2,-1)
  |          |          |
  |          |          |
(0,-2)----(-1,-2)----(-2,-2)

C.2.1. Hlavní okno a ovládací panel

Níže uvádíme seznam položek, které mohou být použity v blocích 'window = main' ... 'end', a 'window = playbar' ... 'end'.

base = obrázek, X, Y

Umožňuje nastavit obrázek pozadí hlavního okna. Okno bude vykresleno na zadaných souřadnicích X,Y na obrazovce a bude mít velikost obrázku.

Poznámka

Tyto koordináty zatím nefungují pro okno display.

Varování

Průhledné oblasti v obrázku (obarvené #FF00FF) budou černé na X serverech bez XShape rozšíření. Šířka obrázku musí být celočíselně dělitelná 8.

button = obrázek, X, Y, šířka, výška, zpráva

Umístí tlačítko rozměru šířka * výška na pozici X,Y. Zadaná zpráva je generována při kliku na tlačítko. Zadaný obrázek musí mít tři části pod sebou (odpovídající možným stavům tlačítka) takto:

+------------+
| stisknuto  |
+------------+
|  uvolněno  |
+------------+
|  zakázáno  |
+------------+
decoration = enable|disable

Zapne (enable) nebo vypne (disable) dekoraci hlavního okna, produkovanou okenním manažerem. Výchozí je disable.

Poznámka

V okně display to nefunguje, není to potřeba.

hpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva

vpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva

Umístí vodorovný (hpotmeter) nebo svislý (vpotmeter) potenciometr velikosti šířka * výška na pozici X,Y. Obrázek může být rozdělen do různých částí pro různé fáze potenciometru (Například můžete mít potenciometr pro nastavení hlasitosti, jehož dráha se barví ze zelené na červenou, jak se jeho hodnota mění od nejmenší do největší.). hpotmeter může mít táhlo, které může být vodorovně taženo. Význam parametrů:

  • tlačítko - obrázek, který se použije pro tlačítko (musí mít tři části pod sebou, stejně jako v případě tohoto tlačítka)

  • tšířka, tvýška - velikost tlačítka

  • fáze - obrázek použitý pro různé fáze hpotmetru. Pokud žádný obrázek nechcete, můžete použít speciální hodnotu NULL. Obrázek musí být rozdělen svisle na počet_fází částí takto:

    +------------+
    |   fáze #1  |
    +------------+
    |   fáze #2  |
    +------------+
         ...
    +------------+
    |   fáze #n  |
    +------------+

  • numphases - number of phases stored in the počet_fází - počet fází uložených v obrázku fáze

  • výchozí - výchozí hodnota pro hpotmeter (v rozsahu 0100)

  • X, Y - pozice pro hpotmeter

  • šířka, výška - šířka a výška hpotmeteru

  • zpráva - zpráva generovaná při změně hodnoty hpotmeteru

potmeter = fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva

hpotmeter bez tlačítka. (soudil bych, že byl míněn jako otočný, ale reaguje pouze na horizontální tažení.) Popis parametrů je stejný jako v hpotmeter. fáze mohou být NULL, ale je to vcelku k ničemu, jelikož nemůžete vidět, jak je nastaven potmeter.

font = soubor_fontu, id_fontu

Definuje font. soubor_fontu je jméno souboru popisu fontu s příponou .fnt (zde příponu nezadávejte). id_fontu je použit jako ukazatel na font (viz dlabel a slabel). Definováno může být více než 25 fontů.

slabel = X, Y, id_fontu, "text";

Umístí statický popisek na pozici X,Y. text je zobrazen fontem identifikovaným pomocí id_fontu. Text je surový řetězec ($x proměnné nefungují), který musí být uzavřen ve dvojitých uvozovkách (ale znak " nesmí být součástí textu). Popisek je zobrazen fontem identifikovaným pomocí id_fontu.

dlabel = X, Y, délka, zarovnání, id_fontu, "text"

Umístí dynamický popisek na pozici X,Y. Popisek je dynamický proto, že je jeho text periodicky obnovován. Maximální délka popisku je nastavena na délka (jeho výškou je výška znaku). Pokud je zobrazovaný text širší, pak bude rolován, jinak bude zarovnán do určeného prostoru podle hodnoty parametru zarovnání: 0 je zarovnání vpravo, 1 na střed, 2 vlevo.

Text k zobrazení je zadán parametrem text: Musí být uzavřen do dvojitých uvozovek (ale znak " nesmí být součástí textu). Popisek je zobrazen fontem identifikovaným pomocí id_fontu. V textu můžete použít tyto proměnné:

ProměnnáVýznam
$1čas přehrávání ve formátu hh:mm:ss
$2čas přehrávání ve formátu mmmm:ss
$3čas přehrávání ve formátu hh (hodiny)
$4čas přehrávání ve formátu mm (minuty)
$5čas přehrávání ve formátu ss (sekundy)
$6délka filmu ve formátu hh:mm:ss
$7délka filmu ve formátu mmmm:ss
$8čas přehrávání ve formátu h:mm:ss
$vhlasitost ve formátu xxx.xx%
$Vhlasitost ve formátu xxx.xx
$bstereováha ve formátu xxx.xx%
$Bstereováha ve formátu xxx.xx
$$znak $
$aznak podle typu audia (žádné: n, mono: m, stereo: t)
$tčíslo stopy (v playlistu)
$onázev souboru
$fnázev souboru malými písmeny
$Fnázev souboru velkými písmeny
$Tznak podle typu datového proudu (soubor: f, Video CD: v, DVD: d, URL: u)
$pznak p (pokud přehráváte soubor a font obsahuje znak p)
$sznak s character (pokud přehráváte soubor a font obsahuje znak s)
$eznak e (pokud je přehrávání pozastaveno a font obsahuje znak e)
$xšířka filmu
$yvýška filmu
$Cnázev použitého kodeku

Poznámka

Proměnné $a, $T, $p, $s a $e vracejí znaky, které by měly být zobrazovány jako speciální symboly (například, e vrací symbol pauza, který obvykle vypadá jako ||). Měli byste mít font pro normální znaky a jiný font pro symboly. Více informací viz sekce o symbolech.

C.2.2. Ovládací panel

Následující vstupy mohou být použity v bloku 'window = sub' . . . 'end'.

base = obrázek, X, Y, šířka, výška

Obrázek, který bude zobrazen v okně. Okno se zobrazí na pozici zadané souřadnicemi X,Y na obrazovce (0,0 je levý horní roh). Můžete nastavit -1 pro střed a -2 pro vpravo (X) a dole (Y). Okno bude stejně velké jako obrázek. šířka a výška udávají velikost okna; jsou volitelné (pokud chybí, má okno rozměry shodné s obrázkem).

background = R, G, B

Umožňuje nastavit barvu pozadí. To je užitečné, pokud je obrázek menší než okno. R, G a B označují červenou, zelenou a modrou složku barvy (každá z nich je dekadická hodnota 0 až 255).

C.2.3. Nabídka

Jak již bylo dříve řečeno, nabídka je zobrazena pomocí dvou obrázků. Normální položky nabídky jsou brány z obrázku určeného položkou base, zatímco aktuálně zvolený vstup je brán z obrázku určeného položkou selected. Musíte definovat pozici a rozměr každé položky nabídky.

Následující vstupy mohou být použity v bloku 'window = menu'. . .'end'.

base = obrázek

Obrázek normálních položek nabídky.

selected = obrázek

Obrázek nabídky kde jsou všechny položky vybrány.

menu = X, Y, šířka, výška, zpráva

Definuje pozici X,Y a rozměr položky nabídky v obrázku. zpráva je zpráva, generovaná jakmile je uvolněno tlačítko myši nad položkou.