view DOCS/Polish/skin.html @ 8450:8cfc9309f0cc

notice vo driver about skipped/dropped frames patch by Alvaro Lopes <alvieboy@alvie.com>
author arpi
date Sat, 14 Dec 2002 17:12:40 +0000
parents e56e991d2ee7
children
line wrap: on
line source

<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
   <title>MPlayer skin format</title>
<style type="text/css">
em.note {color: green}
em.warn {color: red}
</style>
</head>
<body text="#000000" bgcolor="#FFFFFF">

<center>
<h1>
Format skór MPlayera</h1></center>

<center>
<h1>

<hr></h1></center>

<h2>
Zawartość</h2>

<ul type=disc>
<li>
<a href="#intro">1 Wstęp</a></li>

<li>
<a href="#overview">2 Omówienie</a></li>

<ul type=circle>
<li>
<a href="#dirs">2.1 Katalogi</a></li>

<li>
<a href="#images">2.2 Obrazki</a></li>

<li>
<a href="#parts">2.3 Części skóry</a></li>

<li>
<a href="#files">2.4 Pliki</a></li>
</ul>

<li>
<a href="#skin">3 Plik <tt>skin</tt></a></li>

<ul type=circle>
<li>
<a href="#mainwin">3.1 Główne okno</a></li>

<li>
<a href="#subwindow">3.2 Okno ekranu</a></li>

<li>
<a href="#skinmenu">3.3 Menu skóry</a></li>
</ul>

<li>
<a href="#fonts">4 Fonty</a></li>

<ul type=circle>
<li>
<a href="#symbols">4.1 Symbole</a></li>
</ul>

<li>
<a href="#guimsg">Dodatek A: sygnały GUI</a></li>
</ul>

<hr>
<center>Ostatnia modyfikacja: Sep 10, 2001
<br>Ostatnia modyfikacja w języku polskim: 29 marca 2002</center>

<hr>
<h2>
<a NAME="intro"></a>1 Wstęp</h2>
Celem tej dokumentacji jest opisanie formatu skór MPlayera. Informacje zawarte
w tym dokumencie mogą być błędne, ponieważ:
<br><i>a)</i> to nie ja napisałem GUI
<br><i>b)</i> Gui nie jest skończony
<br><i>c)</i> Mogę się mylić, więc nie bądź zaskoczony jeżeli coś nie będzie
działało w sposób w jaki zostało tutaj opisane.
<p>Podziękowania dla <i>Zoltán Ponekker</i> za pomoc.
<p><i>András Mohari &lt;mayday@freemail.hu></i>
<p><i>Tłumaczenie na język polski:</i>
<br><i>CyberPe &lt;cyberp@silesianet.pl></i>
<br>Wszystkie uwagi i pomysły dotyczące tego tłumaczenia są mile widziane.
W temacie proszę podać "Mplayer".
<h2>
<a NAME="overview"></a>2 Omówienie</h2>
To nie ma tak naprawdę żadnego związku z formatem skór, ale powinieneś
wiedzieć, że MPlayer <b>nie ma</b> wbudowanej skórki, więc <b>musisz mieć
zainstalowaną chociaż jedną skórę, aby mieć możliwość używania GUII</b>.
<h3>
<a NAME="dirs"></a>2.1 Katalogi</h3>
Katalogi przeszukiwane przez MPlayera w poszukiwaniu skór to (w kolejności
szukania):
<pre>&nbsp;&nbsp;&nbsp; /usr/local/share/mplayer/Skin/
&nbsp;&nbsp;&nbsp; ~/.mplayer/Skin/</pre>
Zauważ, że pierwsza ścieżka może być zależna od tego, jak MPlayer został
skonfigurowany podczas kompilacji (zobacz argument "<tt>--datadir" skryptu
konfiguracyjnego</tt>).
<p>Każda skórka jest zainstalowana w swoim własnym katalogu znajdującym
się w jednym z folderów zwymienionych powyżej, na przykład:
<pre>&nbsp;&nbsp;&nbsp; /usr/local/share/mplayer/Skin/default/</pre>

<h3>
<a NAME="images"></a>2.2 Formaty plików graficznych</h3>
Obrazki muszą być w formacie truecolor (24, albo 32 bity) i mogą być zapisane
jako BMP, PNG i TGA (z tym, że obrazki zapisane jako TGA nie mogą być skompresowane).
Preferowany format to PNG, ponieważ ma on bardzo dobry współczynnik kompresji,
a co za tym idzie, obrazki zajmują mniej miejsca.
<p>W głównym oknie (zobacz niżej) możesz używać obrazków z 'przeźroczystością':
obszary wypełnione przy użyciu koloru #FF00FF (<font color="#FF00FF">magenta</font>)
są dla MPlayera w pełni przeźroczyste. Oznacza to, że możesz używać dowolnych
kształtów okna głównego (np. okrągłych), jeżeli tylko twój X serwer posiada
rozszerzenie XShape.
<h3>
<a NAME="parts"></a>2.3 Części skóry</h3>
Skórki są całkowicie konfigurowalne (w przeciwieństwie np. do skór Winampa/XMMS)
(chodzi o to, że możesz umieścić dowolny przycisk np. 'play' w dowolnym
miejscu swojej skóry, format XMMSa i Winampa ma z góry ustalone położenie
każdego elementu i nie można tego zmienić - przyp. tłumacza), więc tylko
od ciebie zależy czy stworzysz coś naprawdę fajnego.
<p>Na dzień dzisiejszy są trzy okna do skonfigurowania: <a href="#mainwin">okno
główne</a> (main window), <a href="#subwindow">okno ekranu</a> (subwindow)
oraz <a href="#skinmenu">menu skóry</a> (skin menu), które może zostać
uaktywnione poprzez naciśnięcie prawego przycisku myszy.
<ul>
<li>
<b>okno główne</b> - to okno w którym kontrolujesz MPlayera. Tło tego okna
jest obrazkiem. Wszystkie elementy muszą być umieszczone w tym oknie: przyciski
(buttons), potencjometry (albo suwaki, jeżeli bardziej ci odpowiada ta
nazwa) oraz etykiety (labels). Dla każdego elementu musisz określić jego
pozycję oraz rozmiar.</li>

<p>Każdy <b>przycisk</b> ma trzy fazy (wciśnięty, uwolniony oraz nieaktywny),
więc ich obrazki muszą być podzielone na trzy części w pionie. Zobacz sekcję
<a href="#main.button">przyciski</a>,
aby uzyskać więcej informacji.
<p><b>potencjometry </b>(zazwyczaj używane do określania pozycji filmu
(seek bar) oraz do kontroli głośności, balansu dźwięku) mogą posiadać dowolną
liczbę faz poprzez umieszczenie każdej następnej fazy pod poprzednią (w
obrazku) <font size=-1>(to nie jest za dobrze przetłumaczone-przyp. tłumacz)</font>.Zobacz
sekcję
<a href="#main.hpotmeter">hpotmeter</a> i <a href="#main.potmeter">potmeter</a>,
aby dowiedzieć się więcej na ten temat.
<p><b>Etykiety </b>są bardzo specyficzne: znaki służące do ich opisania
są brane z osobnego obrazka, a litery, które są w nim zawarte (w pliku
graficznym) są opisane przez <a href="#fonts">plik opisujący fonty</a>.
Jest to plik tekstowy, który określa pozycję x, y oraz rozmiar każdego
symbolu znajdującego się w obrazku. (a więc "plik graficzny z fontami"
i "plik opisujący fonty" tworzą razem fonty). Zobacz <a href="#main.dlabel">dlabel</a>
i <a href="#main.slabel">slabel</a>, po więcej szczegółów
<p><i><b>Uwaga:</b> wszystkie obrazki mogą posiadać przeźroczystość tak,
jak opisano to w sekcji <a href="#images">formaty plików graficznych</a>.</i>
<br>&nbsp;
<li>
<b>okno ekranu</b> <font size=-1>(niezbyt szczęśliwe tłumaczenie - przyp.
tłumacz)</font> - tutaj pojawia się film podczas odtwarzania. Może ono wyświetlać
określony obrazek jeżeli nie jest w danym momencie odgrywany żaden film
(to strasznie denerwujące mieć puste okno:-)) <i><b>Uwaga</b>: przeźroczystość
</i>jest tutaj <i><b>niedostępna</b>.</i></li>

<br>&nbsp;
<li>
<b>menu skóry</b>- to po prostu jeden ze sposobów do kontrolowania MPlayera
poprzez polecenia z menu. Wymagane są tutaj dwa obrazki: pierwszy z nich
jest podstawowym obrazkiem pokazującym menu w "normalnym" stanie, drugi
natomiast jest używany do wyświetlania wybranych elementów. Kiedy aktywujesz
menu (poprzez prawe kliknięcie myszy) pokazywany jest pierwszy obrazek.
Kiedy najeżdżasz kursorem na którąś z pozycji, jej zaznaczenie jest kopiowane
z drugiego obrazka na obszar menu znajdujący się pod wskaźnikiem myszy
(a więc drugi obrazek nigdy nie jest pokazany w całości).</li>

<br>&nbsp;</ul>

<ul>Obszar menu znajdujący się pod kursorem jest zdefiniowany poprzez jego
pozycję i rozmiar w obrazku (zobacz sekcję <a href="#skinmenu">menu skóry</a>
aby dowiedzieć się więcej na ten temat)</ul>
Jest jeszcze jedna ważna rzecz, która nie została jeszcze wspomniana: dla
przycisków, potencjometrów i obszarów menu, MPlayer musi wiedzieć co ma
zrobić jeżeli zostaną one kliknięte. Zajmują się tym <a href="#guimsg">sygnały</a>
(zdarzenia). Dla wszystkich tych elementów muszą być zdefiniowane sygnały,
które mają zostać wywołane po naciśnięciu przycisku myszy.
<h3>
<a NAME="files"></a><i>2.4 Pliki</i></h3>
Aby stworzyć skórę będziesz potrzebował następujących plików.
<ul>
<li>
Plik konfiguracyjny o nazwie <a href="#skin">skin</a>, który informuje
MPlayera w jaki sposób łączyć ze sobą poszczególne części skóry i co ma
zrobić kiedy klikasz gdziesz w obszarze okna.</li>

<li>
Obrazek Tła do głównego okna.</li>

<li>
Obrazki dla elementów okna głównego (włączając w to jeden, albo więcej
plików opisujących fonty potrzebnych do wyświetlania etykiet)</li>

<li>
Obrazek który ma być wyświetlony w oknie ekranu (opcjonalnie)</li>

<li>
Dwa obrazki do menu skóry (są one potrzebne tylko jeśli chcesz stworzyć
takie menu)</li>
</ul>
Poza plikiem konfiguracyjnym skóry, możesz nazwać wszystkie inne pliki
jak tylko chcesz (ale pamiętaj, że plik opisujący fonty musi mieć rozszerzenie
.fnt).
<h2>
<a NAME="skin"></a>3 The <b><tt>skin</tt></b> file</h2>
Jak wspomniano powyżej jest to plik konfigurujący skórę. Potrafi on rozpoznawać
typy wierszy: wiersze komentarza rozpoczyna średnik, czyli ';' (przed nim
mogą znajdować się tylko spacje, lub "taby")
<p>Plik podzielony jest na sekcję. Każda z nich opisuje poszczególny element
skóry dla każdej z aplikacji i ma następującą postać:
<table BORDER WIDTH="100%" >
<tr BGCOLOR="#C0C0C0">
<td>
<pre>section = section<i> name
</i>.
.
.
end</pre>
</td>
</tr>
</table>

<p>Na dzień dzisiejszy istnieje tylko jedna aplikacja, więc potrzebujesz
tylko jednej sekcji: jej nazwa to <b>movieplayer</b> (odtwarzacz filmów)
<p>W tej sekcji każde z okien jest opisane poprzez dany blok w taki sposób:
<table BORDER WIDTH="100%" >
<tr BGCOLOR="#C0C0C0">
<td>
<pre>window = <i>window name
</i>.
.
.
end</pre>
</td>
</tr>
</table>
gdzie<i> window name </i>może być jednym z następujących bloków:
<ul>
<li>
<b>main</b> - dla głównego okna</li>

<li>
<b>sub</b> - dla okna ekranu</li>

<li>
<b>menu</b> - dla menu skóry.</li>
</ul>
(Blok sub i menu są opcjonalne-nie musisz tworzyć menu, ani dekorować okna
ekranu jeżeli nie chcesz.)
<p>W każdym z bloków możesz zdefiniować poszczególne elementy (items) dla
danego okna w sposób przedstawiony poniżej:
<blockquote>
<pre>item = parameter</pre>
</blockquote>
Gdzie <i>item </i>jest blokiem identyfikującym typ danego elementu GUI,
<i>parametr</i>
jest numeryczną, lub tekstową wartością (lub lstą wartości oddzieloną przecinkami).
<p>Łącząc to wszystko ze sobą, uzyskujemy plik wyglądający mniej więcej
tak:
<table BORDER WIDTH="100%" >
<tr BGCOLOR="#C0C0C0">
<td>
<pre>section = movieplayer
&nbsp; window = main
&nbsp; ; ... elementy dla okna głównego ...
&nbsp; end
&nbsp;&nbsp;
&nbsp; window = sub
&nbsp; ; ... elementy dla okna ekranu ...
&nbsp; end
&nbsp;&nbsp;
&nbsp; window = menu
&nbsp; ; ... elementy dla menu skóry ...
&nbsp; end
end</pre>
</td>
</tr>
</table>

<p>Na koniec kila słów o specyfice obrazków dla różnych elementów.
<br>Nazwa obrazk musi być podana bez żadnych głównych katalogów---obrazki
są poszukiwane w katalogu ze skórką. Możesz (ale nie musisz) podać rozszerzenie
plików. Jeżeli plik nie istnieje, MPlayer próbuje załadować plik <i>&lt;nazwa
pliku>.&lt;rozszerzenie></i> gdzie <i>tga, TGA, bmp, BMP, png i PNG</i>
są próbowane jako <i>&lt;rozszerzenie></i> (w tej kolejności)
<br>Wykorzystany zostanie pierwszy pasujący plik.
<table BORDER CELLPADDING=5 WIDTH="100%" >
<tr BGCOLOR="#FFFFCC">
<td>Tutaj jest przykład, który powinien to wyjaśnić. Przypuśćmy, że masz
obrazek o nazwie <i>main.png</i>, który używasz do głównego okna:
<blockquote>
<pre>&nbsp;&nbsp;&nbsp; base = main, -1, -1</pre>
</blockquote>
MPlayer próbuje załadować <i>main, main.tga, main.TGA, main.BMP</i>, itd.,
więc <i>main.png</i> zostanie znaleziony.
<br>Jeżeli (przez przypadek) napiszesz:
<blockquote>
<pre>&nbsp;&nbsp;&nbsp; base = main.bmp, -1, -1</pre>
</blockquote>
wtedy <i>main.bmp</i>, <i>main.bmp.tga</i>, <i>main.bmp.TGA</i>,
<i>main.bmp.bmp</i>
będą wyszukiwane i MPlayer w końcu się podda, ponieważ nie ma pliku <b>main.bmp</b>
w katalogu, ale <i>main.png.</i></td>
</tr>
</table>

<h3>
<a NAME="mainwin"></a>3.1 Główne okno</h3>
Poniżej możesz zobaczyć listę elementów, które mogą być użyte w bloku '<tt>window
= main</tt>' . . . '<tt>end</tt>'.
<dl>
<dt>
<a NAME="main.base"></a><b>base = <i>obrazek, x, y</i></b></dt>

<dd>
Pozwala ci określić obrazek tła, który ma zostać użyty w głównym oknie.
Okno to pojawi się w określonej przez <i>x,y</i> pozycji na ekranie (0,0
to lewy górny róg). Możesz tu użyć także następujących wartości: 1-dla
wyśrodkowania, 2 dla wyrównania do prawej (dla wartości x) i do dołu (dla
wartości y). Okno to będzie rozmiarów obrazka tła.</dd>

<p><i><b>Uwaga: </b>przeźroczyste obszary w obrazku (kolor #FF00FF) pojawiają
się jako czarny kolor w X serwerach, które nie obsługują rozszerzenia XShape.</i></dl>

<dl>
<dt>
<a NAME="main.button"></a><b>button = <i>obrazek, x, y, szerokość, wysokość,
sygnał</i></b></dt>

<dd>
Umieszcza przycisk o rozmiarze <i>szerokość * wysokość</i> na pozycji <i>x,y</i>.
Określony sygnał jest generowany, kiedy przycisk zostanie kliknięty. Obrazek
określony jako <i>obrazek</i> musi być podzielony na trzy części umieszczone
jedna pod drugą (podzielony według możliwych faz przycisku), w ten sposób:</dd>

<br>&nbsp;
<center><table>
<tr>
<td>
<pre><font size=-1>+------------+
| wciśnięty&nbsp; |
+------------+
|&nbsp; uwolniony |
+------------+
| nieaktywny |
+------------+</font></pre>
</td>
</tr>
</table></center>
</dl>

<dl>
<dt>
<a NAME="main.decoration"></a><b>decoration = enable|disable</b></dt>

<dd>
Włącza, lub wyłącza dekoracje okna (pasek tytułowy) twojego menadżera okien.
Domyślnie jest to <b>wyłączone</b>.</dd>
</dl>

<dl>
<dt>
<a NAME="main.hpotmeter"></a><b>hpotmeter = <i>suwak, szs,ws, fazy, liczbafaz,
domyślna, x, y, sz, w, sygnał</i></b></dt>

<dd>
Umieszcza poziomo potencjometr o rozmiarach <i>sz*w</i> na pozycji <i>x,y</i>.
Obrazek może być podzielony na różne części dla różnych faz potencjometru
(np. możesz mieć potencjometr głośności, który zmienia się z zielonego
na czerwony podczas zmiany głośności z minimalnej do maksymalnej). hpotencjometr
może mieć przycisk który jest przesuwany w poziomie. Jego parametry to:</dd>

<ul>
<li>
<i>suwak</i> - obrazek który ma być użyty jako suwak (musi mieć trzy części
umieszczone jedna pod drugą, tak jak w przypadku <a href="#main.button">przycisku</a>)</li>

<li>
szs, ws - rozmiar suwaka</li>

<li>
<i>fazy</i> - obrazek który ma być użyty&nbsp; dla różnych faz hpotencjometru.
Obrazek musi być podzielony w pionie na <i>liczbęfaz</i> (zobacz poniżej).
Specjalna wartość <font size=-1>NULL</font> może być użyta jeżeli nie chcesz
żadnego obrazka.</li>

<li>
<i>liczbafaz</i> - liczba faz znajdująca się w obrazku z <i>fazami</i>.</li>

<li>
<i>domyślna</i> - domyślna wartość dla hpotencjometru (w przedziale od
0 do 100)</li>

<li>
<i>x</i>, <i>y</i> - pozycja hpotencjometru</li>

<li>
<i>sz, w</i> - szerokość i wysokość obszaru po którym może poruszać się
suwak.</li>

<li>
<i>sygnał</i> - sygnał który ma być wywołany, kiedy zmienia się wartość
hpotnecjometru</li>

<p>Obrazek określający poszczególne fazy musi wyglądać w ten sposób:
<br>&nbsp;</ul>

<center><table BORDER=0 >
<tr>
<td>
<pre><font size=-1>+------------+
|&nbsp;&nbsp; faza #1&nbsp; |
+------------+
|&nbsp;&nbsp; faza #2&nbsp; |
+------------+
&nbsp;&nbsp;&nbsp;&nbsp; ...
+------------+
|&nbsp;&nbsp; faza #n&nbsp; |
+------------+</font></pre>
</td>
</tr>
</table></center>
<i><b>Uwaga: </b>w przyszłości będzie teć vpotencjometr, ale nie został
on jeszcze zaimpletowany.</i></dl>

<dl>
<dt>
<a NAME="main.potmeter"></a><b>potmeter = <i>fazy, liczbafaz, domyślna,
x, y, sz, w, sygnał</i></b></dt>

<dd>
Potencjometr bez suwaka. (Myślę, że chodzi tu o to żeby nim kręcić, ale
reaguje on tylko na poziome przesuwanie.) Aby zobaczyć opis parametrów
zobacz <a href="#main.hpotmeter">hpotmeter</a>. <i>fazy</i> mogą mieć wartość
<font size=-1>NULL</font>
(nic), ale jest to bezużyteczne, jeżeli nie możesz zobaczyć gdzie znajduje
się potencjometr.</dd>
</dl>

<dl>
<dt>
<a NAME="main.font"></a><b>font = <i>plikfontów, fontid</i></b></dt>

<dd>
Definiuje fonty. <i>plikfontów</i> jest nazwą <i>pliku opisującego fonty</i>
z rozszerzeniem .fnt (<b>nie trzeba</b> tu określać rozszerzenia). <i>fontid</i>
jest używany do odsyłania do fontów (kiepskie tłumaczenie-przyp. tłumacz)
(zobacz <a href="#main.dlabel">dlabel</a> i <a href="#main.slabel">slabel</a>).
Możesz określić ponad 25 znaków.</dd>
</dl>

<dl>
<dt>
<a NAME="main.dlabel"></a><b>dlabel = <i>x, y, długość, align, fontid,
"text"</i></b></dt>

<dd>
Umieszcza dynamiczne etykiety na pozycji x,y. Etykieta nazywana jest dynamiczną,
ponieważ tekst w niej jest regularnie odświeżany (coś jak okno z tytułem
utworu w Winampie-przyp. tłumacz). Maksymalna długość etykiety jest ustalona
przez <i>długość</i> (jej wysokość jest wysokością fontów). Jeżeli tekst
który ma być wyświetlony jest dłuższy od tej wartości, wtedy będzie on
skrolowany (przesuwany-tak jak w XMMS/Winamp-przyp.tłumacz), w innym przypadku
będzie on wyrównany do określonej przez <i>align</i> (wyrównanie) przestrzeni.0
dla wyrównania do prawej, 1 dla wyśrodkowania, 2 dla wyrównania do lewej.</dd>

<p>Tekst, który ma zostać wyświetlony jest określony przez <i>text</i>:
musi być on opisany w cudzysłowiu (") (ale " nie może być częścią tekstu).
Etykieta jest wyświetlana używając <i>fontid</i>. Możesz użyć poniższych
zmiennych w tekście:
<br>&nbsp;
<center><table BORDER valign="top" >
<tr ALIGN=CENTER>
<th>Zmienna</th>

<th ALIGN=LEFT>Znaczenie</th>
</tr>

<tr>
<td ALIGN=CENTER><tt>$1</tt></td>

<td>odtwarza czas w formacie <i>hh:mm:ss</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$2</tt></td>

<td>odtwarza czas w formacie <i>mmmm:ss</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$3</tt></td>

<td>odtwarza czas w formacie <i>hh</i> (godziny)</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$4</tt></td>

<td>odtwarza czas w formacie <i>mm</i> (minuty)</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$5</tt></td>

<td>odtwarza czas w formacie <i>ss</i> (sekundy)</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$6</tt></td>

<td>wyświetla długość filmu w formacie <i>hh:mm:ss</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$7</tt></td>

<td>wyświetla długość filmu w formacie <i>mmmm:ss</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$8</tt></td>

<td>odtwarza czas w formacie <i>h:mm:ss</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$v</tt></td>

<td>głośność w formacie <i>xxx.xx%</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$V</tt></td>

<td>głośność w formacie <i>xxx.x</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$b</tt></td>

<td>balans w formacie <i>xxx.xx%</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$B</tt></td>

<td>balans w formacie <i>xxx.x</i></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$$</tt></td>

<td>znaczek <tt>$</tt></td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$a</tt></td>

<td>znak określający typ dźwięku (żaden: <tt>n</tt>, mono: <tt>m</tt>,
stereo: <tt>t</tt>)</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$t</tt></td>

<td>Numer ścieżki (w playliście)</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$o</tt></td>

<td>nazwa pliku</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$f</tt></td>

<td>nazwa pliku małymi literami</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$F</tt></td>

<td>nazwa pliku drukowanymi literami</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$T</tt></td>

<td>znak określający typ strumienia (plik: <tt>f</tt>, video CD:
<tt>v</tt>,
DVD: <tt>d</tt>, URL: <tt>u</tt>)&nbsp;</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$p</tt></td>

<td>znak "p" (jeżeli film jest odgrywany i font ma określony symbol "p")&nbsp;</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$s</tt></td>

<td>znak "s" (jeżeli film jest zatrzymany i font ma określony symbol "s")&nbsp;</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>$e</tt></td>

<td>znak "e" (jeżeli włączona jest pauza i font ma określony symbol "e")&nbsp;</td>
</tr>
</table></center>
<b>Uwaga: </b>Zmienne <font size=-1>$a, $T, $p, $s i $e</font> mają znaki
które powinny być wyświetlane jako znaki specjalne (np. "e" jest symbolem
pauzy wyglądającym zazwyczaj tak <b><tt>||</tt></b> ). Powinieneś mieć
fonty dla normalnych znaczków i osobne dla znaków specjalnych. Zobacz sekcję
<a href="#symbols">symbols</a>
, aby dowiedzieć się więcej.</dl>

<dl>
<dt>
<a NAME="main.slabel"></a><b>slabel = <i>x, y, fontid, text</i></b></dt>

<dd>
Umieszcza statyczną etykietę na pozycji <i>x,y</i>. <i>text</i> jest wyświetlany
używając <i>fontid</i>. Text jest po prostu ciągiem (zmienne $x nie działają)
który musi znajdować się w cudzysłowiu (" nie może być częścią tekstu).
Etykieta jest wyświetlana używając&nbsp; <i>fontid</i>.</dd>
</dl>

<h3>
<a NAME="subwindow"></a>3.2 Okno ekranu</h3>
Poniżej możesz zobaczyć listę elementów, które mogą być użyte w bloku '<tt>window
= sub</tt>' . . . '<tt>end</tt>'.
<dl>
<dt>
<a NAME="sub.base"></a><b>base = <i>image, x, y, szerokość, wysokość</i></b></dt>

<dd>
Obrazek który ma być wyświetlony w tym oknie. Okno pojawi się w określonej
przez ciebie pozycji <i>x,y</i> na ekranie (0,0 umieszcza obrazek w lewym
górnym rogu). Możesz tu użyć także następujących wartości: 1-dla wyśrodkowania,
2 dla wyrównania do prawej (dla wartości x) i do dołu (dla wartości y).
Okno to będzie rozmiarów obrazka. <i>szerokość</i> i <i>wysokość</i> określa
rozmiar okna. Te zmienne są opcjonalne (jeżeli ich nie będzie, okno będzie
takich samych rozmiarów jak obrazek)</dd>
</dl>

<dl>
<dt>
<a NAME="sub.background"></a><b>background = <i>r, g, b</i></b></dt>

<dd>
Pozwala ci ustalić kolor tła. Jest to przydatne jeżeli obrazek jest mniejszy
od okna (będzie on także wyświetlany dookoła okna ekranu w trybie pełnoekranowym-przyp.
tłumacz). r, g i b określają czerwoną, zieloną i niebieską wartość koloru
(każda z nich jest określona w przedziale od 0 do 255).</dd>
</dl>

<h3>
<a NAME="skinmenu"></a>3.3 Menu Skóry</h3>
Jak wspomnianow wcześniej, menu jest wyświtlane przy użyciu dwóch obrazków.
"Normalny" stan menu jest brany z obrazka określonego jako <i>base</i>,
podczas gdy zaznaczony obszar jest brany z obrazka określonego jako <i>selected</i>.
Musisz zdefiniować pozycję i rozmiar każdego z elementów menu poprzez element
<i>menu</i>.
<p>Te elementy mogą zostać wykorzystane w bloku '<tt>window = menu</tt>'
. . . '<tt>end</tt>':
<dl>
<dt>
<a NAME="menu.base"></a><b>base = <i>obrazek</i></b></dt>

<dd>
Obrazek pokazujący normalny stan menu</dd>
</dl>

<dl>
<dt>
<a NAME="menu.selected"></a><b>selected = <i>obrazek</i></b></dt>

<dd>
Obrazek pokazujący zaznaczony stan menu.</dd>
</dl>

<dl>
<dt>
<a NAME="menu.menu"></a><b>menu = <i>x, y, szerokość, wysokość, sygnał</i></b></dt>

<dd>
Definiuje pozycję <i>x,y</i> i rozmiar poszczególnych elementów menu w
obrazku. <i>sygnał</i> jest sygnałem, który ma być uaktywniony, kiedy klikniesz
tą pozycję.</dd>
</dl>

<h2>
<a NAME="fonts"></a>4 Fonty</h2>
Tak jak wspomniano w sekcji o częściach skóry, fonty są zdefiniowane przez
obrazek i <i>plik opisujący fonty</i>. Możesz umieścić znaki w dowolnym
miejscu obrazka, ale upewnij się, że ich pozycja i rozmiar są dokładnie
określone w <i>pliku opisującym fonty</i>.
<p><i>Plik opisujący fonty</i> (z rozszerzeniem .fnt) może mieć linie komentarza
rozpoczęte średnikiem '<tt>;</tt>'. Plik musi mieć tę linię:
<blockquote>
<pre>image = <i>obrazek</i></pre>
</blockquote>
gdzie <i>obrazek</i> jest nazwą pliku w którym znajdują się fonty (nie
musisz podawać rozszerzenia).&nbsp; Po tej lini następuje opisanie poszczególnych
znaków:
<blockquote>
<pre>"znak" = <i>x, y, sz, w</i></pre>
</blockquote>
Tutaj x i y określają pozycję <i>znaku</i> w obrazku (0,0 to lewy górny
róg). sz i w to szerokość i wysokość znaku (oczywiście w pikselach).
<p>Poniżej możesz zobaczyć przykład definiujący znaki A, B, C znajdujące
się w pliku font.png:
<table BORDER WIDTH="100%" >
<tr BGCOLOR="#C0C0C0">
<td>
<pre>; może być "font" zamiast "font.png"
image = font.png

; Trzy znaki są wystarczające, aby zademonstrować jak to działa. :-)
"A" =&nbsp; 0,0, 7,13
"B" =&nbsp; 7,0, 7,13
"C" = 14,0, 7,13</pre>
</td>
</tr>
</table>

<h3>
<a NAME="symbols"></a>4.1 Symbole</h3>
Niektóre znaki mają specjalne znaczenia kiedy są zmiennymi używanymi w
<a href="#main.dlabel">dlabel</a>;
te znaki są wyświetlane jako symbole. (np. kiedy odgrywasz strumień DVD,
możesz wyświetlić fajne logo DVD zdefiniowane pod znakiem 'd'.)
<p>Poniższa tabelka zawiera wszystkie znaki, które mogą być wykorzystane
do wyświetlania symboli (i wymagają one osobnych fontów).
<center><table>
<tr>
<th ALIGN=CENTER>Znak&nbsp;</th>

<th ALIGN=LEFT>Symbol</th>
</tr>

<tr>
<td ALIGN=CENTER><tt>p</tt></td>

<td ALIGN=LEFT>odtwarzanie</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>s</tt></td>

<td ALIGN=LEFT>stop</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>e</tt></td>

<td ALIGN=LEFT>pauza</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>n</tt></td>

<td ALIGN=LEFT>bez dźwięku</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>m</tt></td>

<td ALIGN=LEFT>dźwięk mono</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>t</tt></td>

<td ALIGN=LEFT>dźwięk mono</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>f</tt></td>

<td ALIGN=LEFT>strumień jest plikiem</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>v</tt></td>

<td ALIGN=LEFT>strumień to VideoCD</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>d</tt></td>

<td ALIGN=LEFT>strumień to DVD</td>
</tr>

<tr>
<td ALIGN=CENTER><tt>u</tt></td>

<td ALIGN=LEFT>strumień to URL</td>
</tr>
</table></center>
<b>Uwaga: </b>obecnie tylko 'p', 's', 'e', 'n', 'm' i 't' są wykorzystywane
(W chwili gdy tłumaczona jest ta dokumentacja pozostałe opcje są już dostępne-przyp.
tłumacz)
<h2>
<a NAME="guimsg"></a>Dodatek A: sygnały GUI</h2>
These are the messages that can be generated by buttons, potmeters and
menu entries.
<br>Tutaj znajdują się sygnały które mogą zostać wywołane przez przyciski,
potencjometry i elementy menu.
<p><i><b>Uwaga:</b> niektóre z sygnałów mogą działać nieprawidłowo (albo
w ogóle nie działać). Jak wiesz, GUI jest ciągle w fazie rozwoju.</i>
<p><i>Opcje odgrywania:</i>
<blockquote>
<dl>
<dt>
<b>evNext</b></dt>

<dd>
Przeskakuje do następnej ścieżki z playlisty</dd>

<dt>
<b>evPause</b></dt>

<dd>
wstrzymuje odgrywanie.</dd>

<dt>
<b>evPauseSwitchToPlay</b></dt>

<dd>
Przełącza między sobą użuwając <i>evPlaySwitchToPause </i>(to niezbyt udane
tłumaczenie-przyp. tłumacz). Może to zostać wykorzystane aby utworzyć jeden
przycisk spełniający równocześnie funkcje odgrywania i pauzy. Oba sygnały
powinny być przydzielone do przycisków wyświetlanych w tym samym miejscu
w oknie. Ten sygnał wstrzymuje odtwarzanie i wyświetlany jest obrazek dla
przycisku <i>evPlaySwitchToPause</i> (aby zaznaczyć, że ten przycisk może
być wciśnięty, aby kontynuować odgrywanie).</dd>

<dt>
<b>evPlay</b></dt>

<dd>
Rozpoczyna odgrywanie.</dd>

<dt>
<b>evPlaySwitchToPause</b></dt>

<dd>
Przeciwieństwo <i>evPauseSwitchToPlay</i>. Ten sygnał rozpoczyna odgrywanie
i wyświetlany jest obrazek dla przycisku <i>evPauseSwitchToPlay</i> (aby
zaznaczyć, że ten przycisk może być wciśnięty, aby wstrzymać odgrywanie).</dd>

<dt>
<b>evPrev</b></dt>

<dd>
Przeskakuje do poprzedniej ścieżki z playlisty.</dd>

<dt>
<b>evStop</b></dt>

<dd>
Zatrzymuje odgrywanie.</dd>
</dl>
</blockquote>
<i>Przemieszczanie się w strumieniu:</i>
<blockquote>
<dl>
<dt>
<b>evBackward10sec</b></dt>

<dt>
<b>evBackward1min</b></dt>

<dt>
<b>evBackward10min</b></dt>

<dd>
przesuwa w tył o 10 sekund / 1 minutę / 10 minut.</dd>

<dt>
<b>evForward10sec</b></dt>

<dt>
<b>evForward1min</b></dt>

<dt>
<b>evForward10min</b></dt>

<dd>
przesuwa w przód o 10 sekund / 1 minutę / 10 minut.</dd>

<dt>
<b>evSetMoviePosition</b></dt>

<dd>
ustawia pozycję (może być zmieniane za pomocą suwaka; wykorzystywane są
relatywne (0-100%) wartości potencjometru).</dd>
</dl>
</blockquote>
<i>Kontrola obrazu:</i>
<blockquote>
<dl>
<dt>
<b>evDoubleSize</b></dt>

<dd>
Ustawia podwójny rozmiar okna z filmem.</dd>

<dt>
<b>evFullScreen</b></dt>

<dd>
Włącza/wyłącza tryb pełnoekranowy.</dd>

<dt>
<b>evNormalSize</b></dt>

<dd>
Ustawia oryginalny rozmiar okna z filmem.</dd>
</dl>
</blockquote>
<i>Kontrola Dźwięku:</i>
<blockquote>
<dl>
<dt>
<b>evDecAudioBufDelay</b></dt>

<dd>
Zmniejsza opóźnienie buffera dźwięku.</dd>

<dt>
<b>evDecBalance</b></dt>

<dd>
zmniejsza balans.</dd>

<dt>
<b>evDecVolume</b></dt>

<dd>
zmniejsza głośność.</dd>

<dt>
<b>evIncAudioBufDelay</b></dt>

<dd>
Zmniejsza opóźnienie buffera dźwięku.</dd>

<dt>
<b>evIncBalance</b></dt>

<dd>
zwiększa balans.</dd>

<dt>
<b>evIncVolume</b></dt>

<dd>
zwiększa głośność.</dd>

<dt>
<b>evMute</b></dt>

<dd>
Wycisza/włącza dźwięk..</dd>

<dt>
<b>evSetBalance</b></dt>

<dd>
Ustawia balans (może być używane przez suwak; wykorzystywane są relatywne
(0-100%) wartości potencjometru).</dd>

<dt>
<b>evSetVolume</b></dt>

<dd>
Ustawia głośność (może być używane przez suwak; wykorzystywane są relatywne
(0-100%) wartości potencjometru).</dd>
</dl>
</blockquote>
<i>Różne:</i>
<blockquote>
<dl>
<dt>
<b>evAbout</b></dt>

<dd>
Otwiera okno "o programie".</dd>

<dt>
<b>evEqualizer</b></dt>

<dd>
włącza/wyłącza equalizer.</dd>

<dt>
<b>evExit</b></dt>

<dd>
Zamyka program.</dd>

<dt>
<b>evIconify</b></dt>

<dd>
Minimalizuje okno.</dd>

<dt>
<b>evLoad</b></dt>

<dd>
Wczytuje plik (poprzez otwarcie przeglądarki plików, w której możesz wybrać
plik).</dd>

<dt>
<b>evLoadPlay</b></dt>

<dd>
Robi dokładnie to samo co <i>evLoad</i> z tym, że po wczytaniu pliku automatycznie
rozpoczyna jego odtwarzanie.</dd>

<dt>
<b>evNone</b></dt>

<dd>
Pusty sygnał, nic nie robi. (No może nie dotyczy to wersji CVS&nbsp; :-))</dd>

<dt>
<b>evPlayList</b></dt>

<dd>
Otwiera/zamyka okno playlisty.</dd>

<dt>
<b>evPreferences</b></dt>

<dd>
Otwiera okno preferencji.</dd>

<dt>
<b>evSkinBrowser</b></dt>

<dd>
Otwiera okno z przeglądarką skórek..</dd>
</dl>
</blockquote>

</body>
</html>