>&amarok-mianownik; tak jak większość programów, wykorzystuje skróty klawiszowe; poniżej znajduje się lista tych skrótów i opis ich działania. Aby skonfigurować skróty globalne, wystarczy kliknąć prawym przyciskiem myszy na oknie odtwarzacza i wybrać polecenie <guimenuitem
>Konfiguracja skrótów globalnych...</guimenuitem
>. Podobnie postępujemy chcąc ustalić skróty &amarok-dopelniacz;, tyle, że po kliknięciu wybieramy polecenie <guimenuitem
>Konfiguracja skrótów...</guimenuitem
></para>
<tip
><para
>Możesz przyporządkować swoim klawiszom multimedialnym skróty &amarok-dopelniacz;. W ten sposób zamienisz swoją klawiaturę w centrum sterowania programu &amarok-mianownik;.</para
></tip>
<para
>Skróty globalne:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Kombinacja klawiszy</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>X</keycap
></keycombo
></entry>
<entry
>Odtwarzaj</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>C</keycap
></keycombo
></entry>
<entry
>Pauza</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>V</keycap
></keycombo
></entry>
<entry
>Stop</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>B</keycap
></keycombo
></entry>
<entry
>Następny utwór</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>Z</keycap
></keycombo
></entry>
<entry
>Poprzedni utwór</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>KP_Add</keycap
></keycombo
></entry>
<entry
>Podgłośnij</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>KP_Subtract</keycap
></keycombo
></entry>
<entry
>Przycisz</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>Shift</keycap
><keycap
>KP_Add</keycap
></keycombo
></entry>
<entry
>Wyszukaj do przodu</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>Shift</keycap
><keycap
>KP_Subtract</keycap
></keycombo
></entry>
<entry
>Wyszukaj do tyłu</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>A</keycap
></keycombo
></entry>
<entry
>Dodaj media</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>P</keycap
></keycombo
></entry>
<entry
>Przełącz listę odtwarzania</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>O</keycap
></keycombo
></entry>
<entry
>Pokaż OSD</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Win</keycap
><keycap
>M</keycap
></keycombo
></entry>
<entry
>Wycisz</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para
>Skróty programu &amarok-mianownik;:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Kombinacja klawiszy</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>C</keycap
></keycombo
></entry>
<entry
>Kopiuj</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>KP_Enter</keycap
></keycombo
></entry>
<entry
>Idź do bieżącego utworu</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>D</keycap
></keycombo
></entry>
<entry
>Kolejkuj wybrane utwory</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>Q</keycap
></keycombo
></entry>
<entry
>Zakończ</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>Shift</keycap
><keycap
>Z</keycap
></keycombo
></entry>
<entry
>Przywróć</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>S</keycap
></keycombo
></entry>
<entry
>Zapisz listę odtwarzania jako...</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>A</keycap
></keycombo
></entry>
<entry
>Zaznacz wszystko</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>M</keycap
></keycombo
></entry>
<entry
>Pokaż pasek menu</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>H</keycap
></keycombo
></entry>
<entry
>Tasuj</entry>
</row>
<row>
<entry
><keycombo
><keycap
>Ctrl</keycap
><keycap
>Z</keycap
></keycombo
></entry>
<entry
>Cofnij</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para
>Skróty przeglądarki listy odtwarzania:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Kombinacja klawiszy</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
><keycap
>Spacja</keycap
></entry>
<entry
>Wczytaj listę odtwarzania</entry>
</row>
<row>
<entry
><keycap
>F2</keycap
></entry>
<entry
>Zmień nazwę listy odtwarzania</entry>
</row>
<row>
<entry
><keycap
>Backspace</keycap
></entry>
<entry
>Usuń listę odtwarzania</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
<sect1 id="the-dcop-interface">
<title
>Interfejs DCOP</title>
<para
>Interfejs DCOP umożliwia łatwe zarządzanie programem Amarok, za pomocą samodzielnie stworzonych skryptów.</para>
<para
>Interfejs DCOP programu Amarok posiada wiele standardowych funkcji, występujących również w innych programach KDE. Sekcja ta jest podzielona na sześć tabeli i opisuje funkcje interfejsu DCOP odpowiedzialne za kolekcję, przeglądarkę kontekstową, odtwarzacz, listę odtwarzania, przeglądarkę list odtwarzania oraz skrypty. Przykładowe wywołanie funkcji dcop <quote
>pause</quote
> będzie miało następującą postać:</para>
<para
><prompt
>%</prompt
>dcop amarok player pause</para>
<sect2 id="dcop-collection">
<title
>dcop amarok collection</title>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Funkcja DCOP</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
>int totalAlbums()</entry>
<entry
>Zwraca całkowitą liczbę albumów w kolekcji.</entry>
</row>
<row>
<entry
>int totalArtists()</entry>
<entry
>Zwraca całkowitą liczbę wykonawców w kolekcji.</entry>
</row>
<row>
<entry
>int totalCompilations()</entry>
<entry
>Zwraca całkowitą liczbę kompilacji w kolekcji.</entry>
</row>
<row>
<entry
>int totalGenres()</entry>
<entry
>Zwraca całkowitą liczbę gatunków w kolekcji.</entry>
</row>
<row>
<entry
>int totalTracks()</entry>
<entry
>Zwraca całkowitą liczbę utworów w kolekcji.</entry>
</row>
<row>
<entry
>QString query( QString sql)</entry>
<entry
>Zapytuje bazę danych poprzez SQL</entry>
</row>
<row>
<entry
>QStringList similarArtists( int wykonawcy )</entry>
<entry
>Zwraca wykonawców zbliżonych do wykonawcy bieżącego utworu; ograniczone do wykonawców.</entry>
>Zwraca wartość konfiguracyjną AmarokConfig z podanego klucza.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
<sect1 id="cmd-line-options">
<title
>Opcje wiersza poleceń</title>
<para
>Amarok obsługuje standardowe funkcje wiersza poleceń Qt oraz kde, posiada także opcje wykorzystywane tylko przez niego samego.</para>
<para
>Opcje Qt i kde:</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Opcja</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
>--help</entry>
<entry
>Wyświetla pomoc na temat opcji.</entry>
</row>
<row>
<entry
>--help-qt</entry>
<entry
>Wyświetla opcje właściwe QT.</entry>
</row>
<row>
<entry
>--help-kde</entry>
<entry
>Wyświetla opcje właściwe KDE.</entry>
</row>
<row>
<entry
>--help-all</entry>
<entry
>Wyświetla wszystkie opcje.</entry>
</row>
<row>
<entry
>--author</entry>
<entry
>Wyświetla informacje na temat autora.</entry>
</row>
<row>
<entry
>-v, --version</entry>
<entry
>Pokazuje informacje o wersji.</entry>
</row>
<row>
<entry
>--license</entry>
<entry
>Wyświetla informacje na temat licencji.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para
>Opcje Amarok:</para>
<note
><para
>Opcje &amarok-dopelniacz; są zaprojektowane do korzystania z nich podczas działania programu.</para
></note>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry
>Opcja</entry>
<entry
>Działanie</entry>
</row>
</thead>
<tbody>
<row>
<entry
>-r, --previous</entry>
<entry
>Przechodzi do poprzedniego utworu na liście odtwarzania.</entry>
</row>
<row>
<entry
>-p, --play</entry>
<entry
>Rozpoczyna odtwarzanie bieżącej listy odtwarzania.</entry>
</row>
<row>
<entry
>-s, --stop</entry>
<entry
>Zatrzymanie odtwarzania.</entry>
</row>
<row>
<entry
>--pause</entry>
<entry
>Pauzuje odtwarzanie.</entry>
</row>
<row>
<entry
>-f, --next</entry>
<entry
>Przechodzi do następnego utworu na liście odtwarzania.</entry>
</row>
<row>
<entry
>-a, --append</entry>
<entry
>Dołącza pliki/adresy URL do listy odtwarzania.</entry>
</row>
<row>
<entry
>-e, --enqueue</entry>
<entry
>Zobacz append, dostępny na potrzeby wstecznej kompatybilności</entry>
</row>
<row>
<entry
>--queue</entry>
<entry
>Kolejkuj pliki/adresu URL po aktualnie odtwarzanym utworze.</entry>
</row>
<row>
<entry
>-m, --toggle-playlist-window</entry>
<entry
>Włącza/wyłącza okno listy odtwarzania.</entry>
</row>
<row>
<entry
>--wizard</entry>
<entry
>Uruchamia asystenta pierwszego uruchamiania.</entry>
</row>
<row>
<entry
>--engine "name"</entry>
<entry
>Uruchamia program &amarok-mianownik; z silnikiem o nazwie...</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect1>
<sect1 id="script-writing">
<title
>Pisanie skryptów</title>
<para
>Skrypty pozwalają na poszerzenie możliwości &amarok-dopelniacz; bez zmiany głównego kodu. Skrypty przypominają wtyczki, ale zamiast dedykowanej wtyczki API, wykorzystują one do komunikacji interfejs DCOP &amarok-dopelniacz;. Umożliwia to pisanie skryptów w prawie każdym języku programowania, jak np. Ruby, Python lub PHP. Każdy może tworzyć skrypty, nie tylko w klasycznych językach skryptowych, ale również w językach programowania jak C++ lub C. Dodatkowo, &amarok-mianownik; może powiadamiać skrypty o specjalnych zdarzeniach i sprawiać, że będą działać w odpowiedni sposób. Ten system powiadamiania będzie wyjaśniony w dalszej części tej sekcji.</para>
<sect2 id="script-bindings">
<title
>Powiązania dla języków skryptowych</title>
<para
>Możliwe jest tworzenie prostych skryptów, które nie wymagają interakcji z użytkownikiem, można także tworzyć skrypty z przyjaznym interfejsem, które zachowują się jak samodzielne programy. Przy programowaniu interfejsu może być wykorzystane jedno lub więcej powiązań dostarczonych przez KDE, np. RubyQt, biblioteka powiązania dla języka Ruby. Traci to jednak jakąkolwiek wartość, jeśli nie każdy z użytkowników ma zainstalowane wszystkie dostępne powiązania. Jeśli zdecydujesz się na użycie powiązania, wybierz jedno z bardziej rozpowszechnionych (np. RubyQt lub PyQt).</para>
<para
>Aby otrzymywana była informacja zwrotna, w sytuacji gdy jakiś skrypt nie działa z powodu brakującej zależności, musisz sprawdzić w skrypcie czy moduł, który chcesz dołączyć rzeczywiście istnieje. Jeśli brak jest zależności, powinieneś wychwycić błąd i wyświetlić okno informacyjne za pomocą programu "kdialog". Dzięki temu użytkownik dowie się, czemu jego skrypt nie działa.</para>
<para
>Ten przykład pokazuje jak wychwycić brakującą zależność w języku Ruby:</para>
>&amarok-mianownik; udostępnia szablony skryptów dla wielu języków w katalogu <filename class="directory"
>scripts/templates/</filename
>. Możesz użyć tych skryptów jako podstawy Twoich własnych skryptów i poszerzyć je o pożądane funkcje. Przekonasz się, że tworzenie skryptów jest teraz rzeczywiście łatwe. Np. jeśli znasz nieco język Python; stworzenie skryptu nie zajmie Ci wiele czasu.</para>
</sect2>
<sect2 id="script-controlling-amarok">
<title
>Zarządzanie &amarok-narzednik; za pomocą interfejsu DCOP</title>
<para
>Poprzez odwołania do niektórych funkcji DCOP, skrypty mogą zarządzać programem Amarok. Najprostszym sposobem wywołania funkcji DCOP jest użycie linii poleceń "dcop", która jest częścią każdej dystrybucji KDE.</para>
<para
>Oto przykład jak zwiększyć głośność:</para>
<programlisting
>dcop amarok player volumeUp</programlisting>
<para
>Większość języków skryptowych zezwala na wykonywanie zewnętrznych programów, z funkcją typu exec(). W ten sposób narzędzie "dcop" może być łatwo wywołane. Oto prosty przykład z języka Python:</para>
<programlisting
>import os
os.system("dcop amarok player volumeDown")
</programlisting>
</sect2>
<sect2 id="script-notifications">
<title
>Powiadomienia</title>
<para
>&amarok-mianownik; wysyła powiadomienia do wszystkich uruchomionych skryptów poprzez wprowadzenie napisów do kanału stdin. Skrypt powinien zatem nieustannie monitorować stdin i odpowiednio reagować na każde z możliwych zdarzeń. Skrypty mogą również zignorować każde, nieistotne dla nich zdarzenie.</para>
>Zanim &amarok-mianownik; zostanie zamknięty lub kiedy użytkownik zatrzyma skrypt w menedżerze skryptów, &amarok-mianownik; wysyła do skryptu sygnał SIGTERM. Sygnał może być zatrzymany w celu wykonania prac porządkowych, typu zapisanie danych czy opcji konfiguracyjnych.</para>
</sect2>
<sect2 id="script-packaging">
<title
>Pakowanie</title>
<para
>Menedżer skryptów &amarok-dopelniacz; potrafi instalować paczki skryptów, które użytkownik pobrał z serwera WWW. Paczki to zwykłe tarball (.tar), opcjonalnie skompresowane za pomocą bzip2 (.bz2). Gorąco zachęcamy do używania nazw takich jak myscript.amarokscript.tar.bz2, tak aby użytkownik zidentyfikował paczkę jako skrypt programu Amarok.</para>
<note
><para
>&amarok-mianownik; 1.3 zaakceptuje jedynie paczki z rozszerzeniem amarokscript, więc lepiej używać tego rozszerzenia już teraz.</para
></note>
<para
>Zawartość tarball musi być zorganizowana w sposób następujący:</para>
<programlisting
>myscript/
README
mojskrypt.py (program wykonywalny)
modul.py
foo.data
...
</programlisting>
</sect2>
<sect2 id="script-permissions">
<title
>Zezwolenia pliku</title>
<para
>Główny skrypt musi posiadać zestaw zezwoleń wykonawczych (+x), podczas gdy dodatkowe moduły wczytywane przez skrypt nie powinny być wykonawcze. Aby chronić zezwolenia pliku w tarball, powinieneś użyć tar z -p flag:</para>