Uitgebreide functies van Amarok
Sneltoetsen
&amarok; maakt, net als vele andere programma's, gebruik van sneltoetsen. Hier onder ziet u een lijst met sneltoetsen en de bijhorende acties. De globale sneltoetsen kunnen worden ingesteld door met de rechter muisknop op het afspelervenster te klikken en Globale sneltoetsen instellen... te selecteren. De sneltoetsen van &amarok; kunt u instellen door met de rechter muisknop op het afspelervenster te klikken en Sneltoetsen instellen... te selecteren.
U kunt uw multimediatoetsen van uw toetsenbord gebruiken om &amarok; te bedienen.
De globale sneltoetsen zijn:
Toetsencombinatie
Actie
WinX
Afspelen
WinC
Pauze
WinV
Stoppen
WinB
Volgende track
WinZ
Vorige track
WinKP_Add
Volume verhogen
WinKP_Subtract
Volume verlagen
WinShiftKP_Add
Vooruit zoeken
WinShiftKP_Subtract
Achteruit zoeken
WinA
Medium toevoegen
WinP
Afspeellijst aan/uit
WinO
On Screen Display tonen
WinM
Volume dempen
De &amarok;-sneltoetsen zijn:
Toetsencombinatie
Actie
CtrlC
Kopiëren
CtrlKP_Enter
Ga naar huidige
CtrlD
Geselecteerde tracks in een wachtrij plaatsen
CtrlQ
Afsluiten
CtrlShiftZ
Opnieuw
CtrlS
Afspeellijst opslaan
CtrlA
Alles selecteren
CtrlM
Menubalk tonen
CtrlH
Schudden (tracks in de afspeellijst door elkaar husselen)
CtrlZ
Ongedaan maken
De sneltoetsen voor de afspeellijstbrowser zijn:
Toetsencombinatie
Actie
Spatie
Afspeellijst laden
F2
Afspeellijst hernoemen
Backspace
Afspeellijst verwijderen
De DCOP-interface
De DCOP-interface van Amarok biedt u een eenvoudige manier om Amarok met behulp van uw eigen aangepaste scripts te besturen.
De DCOP-interface van Amarok heeft vele algemene aanroepen die ook in andere KDE-programma's gevonden kunnen worden. Deze sectie is opgedeeld in zes tabellen en bedoeld om de DCOP-aanroepen van de collectie, contextbrowser, speler, afspeellijst, afspeellijstbrowser en scripts te beschrijven. Een voorbeeld van de DCOP-aanroep voor pauzeren
ziet er als volgt uit:
%dcop amarok player pause
dcop amarok collection
DCOP-aanroep
Actie
int totalAlbums()
Geeft het totaal aantal albums in de collectie terug.
int totalArtists()
Geeft het totaal aantal artiesten in de collectie terug.
int totalCompilations()
Geeft het totaal aantal verzamelalbums in de collectie terug.
int totalGenres()
Geeft het totaal aantal genres in de collectie terug.
int totalTracks()
Geeft het totaal aantal tracks in de collectie terug.
TQString query( TQString sql)
Voert een query op de database uit via SQL.
QStringList similarArtists( int artists )
Geeft vergelijkbare artiesten terug voor de huidige tracks, beperkt tot int artists.
void migrateFile( TQString oldURL, TQString newURL )
Verplaatst een bestand binnen de collectie, waarbij de statistieken intact blijven.
void scanCollection()
Doorzoekt de collectie.
void scanCollectionChanges()
Doorzoekt de collectie alleen op wijzigingen.
dcop amarok contextbrowser
DCOP-aanroep
Actie
void showCurrentTrack()
Toont de huidige track in de contextbrowser.
void showLyrics()
Toont tabblad 'Liedteksten' in de contextbrowser.
void showWiki()
Toont tabblad 'Artiest' in de contextbrowser.
dcop amarok player
DCOP-aanroep
Actie
bool dynamicModeStatus()
Geeft de status terug van de dynamische modus.
bool equalizerEnabled()
Geeft de status van de equalizer terug.
bool isPlaying()
Geeft 'true' terug als er nu iets wordt afgespeeld.
bool randomModeStatus()
Geeft de status van willekeurige modus terug.
bool repeatPlaylistStatus()
Geeft de status van afspeellijst herhalen terug.
bool repeatTrackStatus()
Geeft de status van track herhalen terug.
int getVolume()
Geeft het volume terug in de waarde 0-100%.
int sampleRate()
Geeft de sample rate terug van de track die momenteel wordt afgespeeld.
int score()
Geeft de score terug van de track die momenteel wordt afgespeeld.
int status()
Geeft de status van het afspelen terug: 0 - gestopt, 1 - gepauzeerd, 2 - speelt af.
int trackCurrentTime()
Geeft de huidige afspeelpositie in seconden terug.
int trackPlayCounter()
Geeft de afspeelteller voor de huidige track terug.
int trackTotalTime()
Geeft de tracklengte in seconden terug.
TQString album()
Geeft het album van de momenteel afgespeelde track terug.
TQString artist()
Geeft de artiest terug van de momenteel afgespeelde track.
TQString bitrate()
Geeft de bitrate van de momenteel afgespeelde track terug (XX kbps).
TQString comment()
Geeft het commentaar van de momenteel afgespeelde track terug.
TQString coverImage()
Geeft het URL-adres van de hoesafbeelding van de huidige track terug
TQString currentTime()
Geeft de positie ([u]mm:ss) van de momenteel afgespeelde track terug.
TQString encodedURL()
Geeft het gecodeerde URL-adres van de momenteel afgespeelde track terug.
TQString engine()
Geeft huidige geluidsengine terug.
TQString genre()
Geeft het genre van de momenteel afgespeelde track terug.
TQString lyrics()
Geeft de liedteksten van de momenteel afgespeelde track terug.
TQString lyricsByPath( TQString path )
Geeft de liedteksten van een track terug op het pad.
TQString nowPlaying()
De titel van de nu afgespeelde media.
TQString path()
Geeft het niet-gecodeerde pad terug van de momenteel afgespeelde track.
TQString setContextStyle( TQString )
Zet de CSS-stijl van de contextbrowser.
TQString title()
Geeft de titel van de momenteel afgespeelde track terug.
TQString totalTime()
Geeft de totale lengte van de momenteel afgespeelde track terug (in de opmaak [u:]mm:ss).
TQString track()
Geeft het tracknummer terug.
TQString type()
Geeft het bestandstype terug.
TQString year()
Geeft het jaar van de momenteel afgespeelde track terug.
void configEqualizer()
Opent/sluit de configuratiedialoog van de equalizer.
void enableDynamicMode(bool enable)
Zet de dynamische modus aan of uit.
void enableOSD(bool enable)
Zet de OSD-weergave aan of uit.
void enableRandomMode(bool enable)
Zet de willekeurige modus aan of uit.
void enableRepeatPlaylist(bool enable)
Zet het herhalen van de afspeellijst aan of uit.
void enableRepeatTrack(bool enable)
Zet herhalen van de track aan of uit.
void mediaDeviceMount()
Zet het commando voor het aankoppelen (mounten) van een media-apparaat.
void mediaDeviceUmount()
Zet het commando voor het afkoppelen (unmount) van een media-apparaat.
void mute()
Zet het dempen aan of uit.
void next()
Staat gelijk aan het drukken op de knop "Volgende".
void pause()
Staat gelijk aan het drukken op de knop "Pauze".
void play()
Staat gelijk aan het drukken op de knop "Afspelen".
void playPause()
Schakelt de status voor afspelen/pauze om (bedoeld voor gebruikers van multimediatoetsenborden)
void prev()
Staat gelijk aan het drukken op de knop "Vorige".
void queueForTransfer( KURL url )
Plaats bestand in de wachtrij voor overdracht naar media-apparaat.
void seek(int s)
Spoel door de track tot de positie in seconden.
void seekRelative(int s)
Spoel door een track tot een positie die relatief is aan de huidige trackpositie.
void setEqualizer(int, int, int, int, int, int, int, int, int, int, int)
Zet de equalizerkanalen
void setEqualizerEnabled( bool active )
Equalizer aan/uit.
void setEqualizerPreset( TQString name )
Zet de voorinstelling van de equalizer
void setLyricsByPath( TQString url, TQString lyrics )
Zet de liedteksten van een track aan de hand van diens pad.
void setScore( int score )
Zet de score van de momenteel afgespeelde track.
void setScoreByPath( TQString url, int score )
Zet de score van een track aan de hand van diens pad.
void setVolume(int volume)
Zet het volume in een bereik van 0-100%.
void showBrowser( TQString browser )
Toont browsers in het afspeellijstvenster
void showOSD()
Toont de onscreendisplay op het beeldscherm.
void stop()
Gelijk aan het klikken op de knop "Stop".
void transferDeviceFiles()
Schrijft bestanden naar het media-apparaat.
void volumeDown()
Verlaagt het volumeniveau met een acceptabele stap.
void volumeUp()
Verhoogt het volumeniveau met een acceptabele stap.
dcop amarok playlist
DCOP-aanroep
Actie
int getActiveIndex()
Geeft de index terug van de momenteel afgespeelde track. -1 indien geen.
int getTotalTrackCount()
Geeft het aantal tracks in de afspeellijst terug. 0 indien geen.
TQString saveCurrentPlaylist()
Slaat de huidige afspeellijst op naar current.xml en geeft het pad ervan terug.
void addMedia( KURL )
Voegt geluidsmedia toe, opgegeven bij het url-adres.
void addMediaList( KURL::List )
Voegt enkele geluidsmedia toe, opgegeven door het URL-adres.
void clearPlaylist()
Wist de afspeellijst.
void playByIndex(int)
Start het spelen van de track bij de opgegeven index.
void playMedia( KURL )
Voegt geluidsmedia toe, opgegeven bij het url-adres.
void popupMessage( TQString)
Toont een tijdelijk bericht.
void removeCurrentTrack()
Verwijdert de huidige track uit de afspeellijst.
void repopulate()
Vult de afspeellijst opnieuw met willekeurige tracks.
void saveM3u( TQString path, bool relativePaths)
Slaat de huidige afspeellijst op als m3u.
void setStopAfterCurrent( bool )
Activeert/deactiveert de functie "Stoppen na huidige track".
void shortStatusMessage( TQString)
Toont een tijdelijk bericht op de statusbalk.
void shufflePlaylist()
Haalt de afspeellijst door elkaar.
void togglePlaylist()
Opent/sluit het afspeellijstvenster.
dcop amarok playlistbrowser
DCOP-aanroep
Actie
void addPodcast( TQString )
Voegt een podcast-item toe aan de afspeellijstbrowser.
void scanPodcasts()
Doorzoekt alle podcasts voor nieuwe versies.
void addPlaylist( TQString )
Voegt een afspeellijst toe aan de afspeellijstbrowser.
dcop amarok script
DCOP-aanroep
Actie
bool runScript( TQString name)
Start het script met de opgegeven naam. Geeft 'true' terug bij succes.
bool stopScript( TQString name)
Stopt het script met de opgegeven naam. Geeft 'true' terug bij succes.
QStringList listRunningScripts()
Geeft een lijst terug van alle momenteel draaiende scripts.
void addCustomMenuItem(TQString submenu, TQString itemTitle )
Activeert een aangepast menuoptie en stelt de titel ervan in.
void removeCustomMenuItem(TQString submenu, TQString itemTitle )
Verwijdert een aangepaste menuoptie.
TQString readConfig( TQString key)
Geeft de waarde van een AmarokConfig configuratie-item terug van de opgegeven toets.
Commandoprompt-opties
Naast de standaard-commando's van TQt en TDE heeft Amarok ook zijn eigen opties.
Opties van TQt en TDE:
Optie
Actie
--help
Toont een samenvatting van opties die vanaf de prompt kunnen worden meegegeven aan het commando.
--help-tqt
Toont een lijst met TQt-specifieke opties.
--help-kde
Toont een lijst met KDE-specifieke opties.
--help-all
Toont een lijst met alle opties.
--author
Toont informatie over de auteur.
-v, --version
Toont versie-informatie.
--license
Toont informatie over de licentie.
De opties van Amarok:
De &amarok;-opties kunnen ook worden gebruikt als &amarok; al draait.
Optie
Actie
-r, --previous
Gaat naar de vorige track in de afspeellijst.
-p, --play
Start het afspelen van de huidige afspeellijst.
-s, --stop
Stopt het afspelen.
--pause
Pauzeert het afspelen.
-f, --next
Gaat naar de volgende track in de afspeellijst.
-a, --append
Voegt bestanden/URL-adressen toe aan de afspeellijst.
-e, --enqueue
Zie append, beschikbaar voor neerwaartse compatibiliteit.
--queue
Plaatst bestanden/URL-adressen in de wachtrij achter de huidige afgespeelde track.
-m, --toggle-playlist-window
Opent/sluit het afspeellijstvenster.
--wizard
Start de Configuratie-assistent.
--engine "naam"
Start &amarok; met de engine "naam".
Scripts schrijven
Met scripting kunt u &amarok; op eenvoudige wijze uitbreiden zonder dat u de broncode van het programma zelf hoeft te wijzigen. Scripts kunt u vergelijken met plugins, met als verschil dat er geen gebruik wordt gemaakt van een 'dedicated plugin API', maar van &amarok;'s DCOP-interface voor de communicatie. Dit maakt het mogelijk om scripts te schrijven in vrijwel elke programmeertaal, zoals Ruby, Python of PHP. U kunt niet alleen scripts schrijven in klassieke scripttalen, maar ook in gecompileerde talen zoals C++ of C. Aanvullend kan &amarok; de scripts waarschuwen bij speciale gebeurtenissen en ze hierop laten reageren. Dit waarschuwingssysteem zal later in deze sectie worden uitgelegd.
Bindingen
U kunt eenvoudige scripts schrijven die geen interactie van de gebruiker nodig hebben, en scripts schrijven met comfortabele GUI's die zelf als een volwaardig programma reageren. Voor het programmeren van een GUI kunt u gebruik maken van één van de vele bindingen die TDE levert, zoals RubyQt, een TQt-bibliotheekbinding voor Ruby. Een nadeel van bindingen is dat niet iedere gebruiker ze allemaal hebben geïnstalleerd. Als u dus een binding wilt gebruiken, kies er dan een die vrij goed verspreid is, zoals RubyQt of PyQt.
Om enige informatie te ontvangen als een script niet kan draaien vanwege een ontbrekende afhankelijkheid, laat uw script controleren of de module die u wilt insluiten echt bestaat. Als de afhankelijkheid ontbreekt, dan moet u de foutmelding opvangen en met behulp van het commandoregelprogramma "kdialog" in een informatiedialoog laten weergeven. De gebruiker kan dan zien waarom het script niet wil draaien.
Dit voorbeeld laat zien hoe u een ontbrekende afhankelijkheid in Ruby kunt opvangen:
begin
require 'Korundum'
rescue LoadError
error = 'Korundum (KDE bindings for ruby) from tdebindings v3.4 is required for this script.'
`kdialog --sorry '#{error}'`
exit
end
Het begin: de sjablonen
In de map scripts/templates/ van &amarok; vindt u enkele scriptsjablonen voor diverse talen. U kunt deze scripts gebruiken als basis voor uw eigen scripts en ze uitbreiden met de functionaliteit die u nodig hebt. U zult merken dat het schrijven van scripts vrij eenvoudig is. Bijvoorbeeld als u een beetje weet van programmeren in Python, dan zal het schrijven van uw eigen script niet veel moeite kosten.
&amarok; besturen met DCOP
Scripts kunnen Amarok besturen door enkel van zijn DCOP-functies aan te roepen. De eenvoudigste manier om een DCOP-functie aan te roepen is met behulp van het commandoregelprogramma "dcop". Dit programma is onderdeel van elke KDE-distributie.
Hier is een voorbeeld voor het verhogen van het hoofdvolume:
dcop amarok player volumeUp
Met de meeste scripttalen kunt u externe programma's uitvoeren met een functie als exec(). Op deze manier kan het programma "dcop" eenvoudig worden aangeroepen. Hier is een klein voorbeeld in Python:
import os
os.system("dcop amarok player volumeDown")
Waarschuwingen
&amarok; stuurt waarschuwingen naar alle draaiende scripts door tekenreeksen naar hun stdin-kanaal te schrijven. Het script moet daarom constant stdin volgen, en reageren op elke mogelijke gebeurtenis. Scripts kunnen er ook voor kiezen om gebeurtenissen die ze niet kunnen gebruiken te negeren.
De volgende waarschuwingen worden door &amarok; verzonden:
configure
vertelt het script om zijn configuratiedialoog te tonen. Het script moet
de configuratie-opties zelf opslaan en laden. Als een script wordt gestart
zet Amarok de werkmap ervan op de map waarin alle gegevens moeten
worden opgeslagen.
engineStateChange:empty|idle|paused|playing
signaleert een wijziging in de status van de engine.
trackChange
signaleert de start van een nieuwe track. Het script kan dan de DCOP-functies
gebruiken om verdere informatie over de track op te vragen, zoals metadata
en de lengte.
volumeChangenewVolume
signaleert een wijziging in het niveau van het hoofdvolume. Het volume is een heel getal in het bereik
van 0-100.
customMenuClicked:submenu itemTitle paths
geeft het pad naar de geselecteerde bestanden in de afspeellijst als de
aangepaste optie in het contextmenu van de afspeellijst wordt aangeklikt. Het submenu
en item-titel worden ook gegeven voor identificatiedoeleinden in het geval een script naar
meerdere notificaties luistert.
Om een aangepaste optie toe te voegen aan het contextmenu gebruikt u de DCOP-aanroep
'dcop amarok script addCustomMenuItem( submenu itemTitle ). Om een optie uit het contextmenu
te verwijderen gebruikt u de DCOP-aanroep
'dcop amarok script removeCustomMenuItem( submenu itemTitle )'.
Scriptterminatie
Voordat &amarok; afsluit, of als de gebruiker een script stopt met de Scriptbeheerder, stuurt &amarok; het signaal SIGTERM naar het script. Dit signaal kan worden opgevangen om wat schoonmaakwerk uit te voeren, zoals het opslaan van gegevens of configuratie-instellingen.
Packaging
&amarok;'s Scriptbeheerder kan scriptpakketten installeren die de gebruiker heeft gedownload van een webserver. Pakketten zijn gewoon normale tar-archieven (.tar), optioneel gecomprimeerd met bzip2 (.bz2). Wij adviseren het gebruik van bestandsnamen als myscript.amarokscript.tar.bz2, zodat de gebruiker het pakket meteen kan identificeren als een amarok-script.
&amarok; 1.3 zal alleen scriptpakketten accepteren met de amarokscript-extensie.
De inhoud van de tar-archieven moet als volgt zijn georganiseerd:
myscript/
README
myscript.py (executable)
somemodule.py
foo.data
...
Bestandstoegangsrechten
Het hoofdscript moet de uitvoerrechten ingesteld hebben (+x), terwijl aanvullende modules die het script laat niet uitvoerbaar moeten zijn. Om de bestandstoegangsrechten in het tar-archieven te behouden gebruikt u tar met de vlag '-p':
tar -cf myscript.amarokscript.tar -p myscript
&amarok; kan het script niet installeren als de toegangsrechten niet correct zijn ingesteld.
Distribueren
Als het pakket klaar is kunt u het uploaden naar www.kde-apps.org en de hyperlink toevoegen aan &amarok;'s Wiki Scripts Page. Bij kde-apps.org toevoegt u het script toe aan de categorie &amarok; Scripts.