Avancerade funktioner i Amarok Snabbtangenter &amarok; använder snabbtangenter som de flesta andra program. Nedan finns en lista över dessa snabbtangenter och deras olika funktioner. De globala snabbtangenterna kan ställas in genom att högerklicka i spelarfönstret och välja Anpassa globala genvägar... Snabbtangenterna i &amarok; kan anpassas genom att högerklicka i spelarfönstret och välja Anpassa genvägar... Du kan tilldela multimediatangenter att fungera som snabbtangenter i &amarok;, för att låta tangentbordet styra &amarok;. De globala genvägarna är: Tangentkombination Åtgärd WinX Spela WinC Paus WinV Stanna WinB Nästa spår WinZ Föregående spår WinNumeriskt tangentbord + Öka volym WinNumeriskt tangentbord - Minska volym WinSkiftnumeriskt + Sök framåt WinSkiftnumeriskt - Sök bakåt WinA Lägg till media WinP Växla spellista WinO Aktivera skärmvisning WinM Tysta volym Genvägarna i &amarok; är: Tangentkombination Åtgärd CtrlC Kopiera CtrlNumeriskt tangentbord Enter Gå till nuvarande CtrlD Köa markerade spår CtrlQ Avsluta CtrlSkiftZ Gör om CtrlS Spara spellista CtrlA Markera alla CtrlM Visa menyrad CtrlH Blanda CtrlZ Ångra Spellistebläddrarens genvägar är: Tangentkombination Åtgärd Mellanslag Ladda spellista F2 Byt namn på spellista Backsteg Ta bort spellista DCOP-gränssnittet Amaroks DCOP-gränssnitt tillhandahåller ett enkelt sätt att styra Amarok med dina egna skript. DCOP-gränssnittet i Amarok har många generella funktioner som också finns i andra KDE-program. Det här avsnittet är uppdelat i sex tabeller och är avsett att beskriva DCOP-anrop för samlingen, sammanhangsbläddraren, spelaren, spellistan, spellistebläddraren och skript. Ett exempel på DCOP-funktionen pause skulle se ut så här: %dcop amarok player pause dcop amarok collection DCOP-anrop Åtgärd int totalAlbums() Returnerar det totala antalet album i samlingen. int totalArtists() Returnerar det totala antalet artister i samlingen. int totalCompilations() Returnerar det totala antalet samlingsalbum i samlingen. int totalGenres() Returnerar det totala antalet genrer i samlingen. int totalTracks() Returnerar det totala antalet spår i samlingen. QString query( QString sql) Skickar en fråga till databasen via SQL. QStringList similarArtists( int artister ) Returnera liknande artister som det nuvarande spåret, begränsat till antal givet av artister. void migrateFile( QString gammal_webbadress, QString ny_webbadress ) Flytta en fil i samlingen, och behåll statistiken intakt. void scanCollection() Sök igenom samlingen. void scanCollectionChanges() Sök enbart igenom samlingen efter ändringar. dcop amarok contextbrowser DCOP-anrop Åtgärd void showCurrentTrack() Visa det nuvarande spåret i sammanhangsbläddraren. void showLyrics() Visa sångtextfliken i sammanhangsbläddraren. void showWiki() Visa Wikipedia-fliken i sammanhangsbläddraren. dcop amarok player DCOP-anrop Åtgärd bool dynamicModeStatus() Returnera status för dynamiskt läge. bool equalizerEnabled() Returnera status för equalizern. bool isPlaying() Returnera sant om något spelas nu. bool randomModeStatus() Returnera status för slumpmässigt läge bool repeatPlaylistStatus() Returnera status för upprepning av spellistan. bool repeatTrackStatus() Returnera status för upprepning av spår. int getVolume() Returnera volymen i intervallet 0 - 100 %. int sampleRate() Returnera samplingsfrekvensen för spåret som för närvarande spelas. int score() Returnera poängen för spåret som för närvarande spelas. int status() Returnera uppspelningsstatus: 0 - stoppad, 1 - paus, 2 - spelar. int trackCurrentTime() Returnerar nuvarande uppspelningsposition i sekunder. int trackPlayCounter() Returnerar uppspelningsräknaren för nuvarande sång. int trackTotalTime() Returnerar spårlängden i sekunder. QString album() Returnera albumet för spåret som för närvarande spelas. QString artist() Returnera artisten för spåret som för närvarande spelas. QString bitrate() Returnera bithastigheten för spåret som för närvarande spelas (i kilobit per sekund). QString comment() Returnera kommentaren för spåret som för närvarande spelas. QString coverImage() Returnera den kodade webbadressen till nuvarande spårs skivomslag QString currentTime() Returnera positionen för spåret som för närvarande spelas (på formatet [t:]mm:ss). QString encodedURL() Returnera den kodade webbadressen för spåret som för närvarande spelas. QString engine() Returnera nuvarande ljudgränssnitt. QString genre() Returnera genren för spåret som för närvarande spelas. QString lyrics() Returnera sångtexten för spåret som för närvarande spelas. QString lyricsByPath( QString sökväg ) Returnera sångtext för ett spår enligt sökväg. QString nowPlaying() Titeln på det medium som nu spelas. QString path() Returnera den okodade sökvägen för spåret som för närvarande spelas. QString setContextStyle( QString ) Ställ in CSS-stilen för sammanhangsbläddraren. QString title() Returnera titeln för spåret som för närvarande spelas. QString totalTime() Returnera totala längden för spåret som för närvarande spelas (på formatet [t:]mm:ss). QString track() Returnera spårnumret. QString type() Returnera filtypen. QString year() Returnera året för spåret som för närvarande spelas. void configEqualizer() Växla equalizerns inställningsdialogruta. void enableDynamicMode(bool aktivera) Sätt på eller stäng av dynamiskt läge. void enableOSD(bool aktivera) Sätt på eller stäng av skärmmeddelanden. void enableRandomMode(bool aktivera) Sätt på eller stäng av slumpmässigt läge. void enableRepeatPlaylist(bool aktivera) Sätt på eller stäng av upprepa spellista. void enableRepeatTrack(bool aktivera) Sätt på eller stäng av upprepa spår. void mediaDeviceMount() Ställer in kommandot som används för att montera mediaenheter. void mediaDeviceUmount() Ställer in kommandot som används för att avmontera mediaenheter. void mute() Växla tyst. void next() Motsvarar att klicka på knappen "Nästa". void pause() Motsvarar att klicka på knappen "Paus". void play() Motsvarar att klicka på knappen "Spela". void playPause() Växla tillstånd mellan spela och paus (bra för användare av multimediatangentbord) void prev() Motsvarar att klicka på knappen "Föregående". void queueForTransfer( KURL webbadress ) Köa filer för överföring till mediaenheten. void seek(int s) Sök i spåret till positionen i sekunder. void seekRelative(int s) Sök till en position i förhållande till spårets nuvarande position. void setEqualizer(int, int, int, int, int, int, int, int, int, int, int) Ställ in equalizerns band void setEqualizerEnabled( bool active ) Växla equalizern. void setEqualizerPreset( QString namn ) Ställ in equalizerns förinställning void setLyricsByPath( QString webbadress, QString sångtext ) Ställ in sångtext för ett spår enligt dess sökväg. void setScore( int poäng ) Ställ in poäng för spåret som för närvarande spelas. void setScoreByPath( QString webbadress, int poäng ) Ställ in poäng för ett spår enligt dess sökväg. void setVolume(int volym) Ställ in volymen i intervallet 0 - 100 % void showBrowser( QString bläddrare ) Visar bläddrarna i spellistans fönster. void showOSD() Visa skärmmeddelanden på skärmen. void stop() Motsvarar att klicka på knappen "Stopp". void transferDeviceFiles() Överför filer till mediaenheten. void volumeDown() Minska volymen med ett rimligt steg. void volumeUp() Öka volymen med ett rimligt steg. dcop amarok playlist DCOP-anrop Åtgärd int getActiveIndex() Returnera index för spåret som för närvarande är aktivt. -1 om inget. int getTotalTrackCount() Returnera antal spår i spellistan. 0 om inga. QString saveCurrentPlaylist() Sparar den nuvarande spellistan i nuvarande.xml och och returnerar dess sökväg. void addMedia( KURL ) Lägg till ljudmedium angivet av webbadressen. void addMediaList( KURL::List ) Lägg till några ljudmedia angivna av webbadressen. void clearPlaylist() Rensar spellistan. void playByIndex(int) Börjar spela spåret vid angivet index. void playMedia( KURL ) Lägg till ljudmedium angivet av webbadressen. void popupMessage( QString) Visar ett tillfälligt skärmmeddelande. void removeCurrentTrack() Tar bort nuvarande spår från spellistan. void repopulate() Fyll i spellistan igen med slumpmässiga spår. void saveM3u( QString sökväg, bool relativ_sökväg) Sparar nuvarande spellista som m3u. void setStopAfterCurrent( bool ) Aktiverar eller inaktiverar funktionen "Stoppa efter aktuellt spår". void shortStatusMessage( QString) Visar ett tillfälligt meddelande på statusraden. void shufflePlaylist() Blandar spellistan. void togglePlaylist() Växla spellistans fönster. dcop amarok playlistbrowser DCOP-anrop Åtgärd void addPodcast( QString ) Lägg till en podradiosändning i spellistebläddraren. void scanPodcasts() Sök igenom alla podradiosändningar efter uppdateringar. void addPlaylist( QString ) Lägg till en spellista i spellistebläddraren. dcop amarok script DCOP-anrop Åtgärd bool runScript( QString namn) Startar skriptet med angivet namn. Returnerar sant om det lyckas. bool stopScript( QString namn) Stoppar skriptet med angivet namn. Returnerar sant om det lyckas. QStringList listRunningScripts() Returnerar en lista med skript som för närvarande kör. void addCustomMenuItem(QString undermeny, QString objekttitel ) Aktiverar och ställer in titeln för eget menyalternativ. void removeCustomMenuItem(QString undermeny, QString objekttitel ) Tar bort det egna menyalternativet. QString readConfig( QString nyckel) Returnerar värdet av en inställningspost från AmarokConfig för angiven nyckel. Kommandoradsalternativ Amarok stöder användning av de vanliga Qt- och KDE-kommandoradsväljarna. Amarok har också sina egna programspecifika väljare. Väljarna för Qt och KDE: Väljare Åtgärd --help Visa hjälp om väljare. --help-qt Visa Qt-specifika väljare. --help-kde Visa KDE-specifika väljare. --help-all Visa alla väljare. --author Visa information om upphovsman. -v, --version Visa versionsinformation. --license Visa licensinformation. Amarok-väljare: &amarok;-väljarna är avsedda att användas medan &amarok; kör. Väljare Åtgärd -r, --previous Gå till föregående spår i spellistan. -p, --play Börja spela nuvarande spellista. -s, --stop Stoppa uppspelning. --pause Gör paus i uppspelning. -f, --next Gå till nästa spår i spellistan. -a, --append Lägg till filer eller webbadresser sist i spellistan. -e, --enqueue Se append, tillgänglig för att fungera ihop med tidigare versioner. --queue Köa filer eller webbadresser efter spåret som för närvarande spelas. -m, --toggle-playlist-window Växla spellistans fönster. --wizard Kör startguiden. --engine "namn" Starta &amarok; med gränssnittet "namn". Skriva skript Att skriva skript låter dig enkelt utöka &amarok; utan att ändra den huvudsakliga kodbasen. Skript liknar insticksprogram, men istället för ett särskilt programmeringsgränssnitt använder de &amarok;s DCOP-gränssnitt för kommunikation. Det gör det möjligt att skriva skript i nästan vilket programspråk som helst, som Ruby, Python eller PHP. Du kan inte bara skapa skript med klassiska skriptspråk, utan också med kompilerade språk som C++ eller vanlig C. Dessutom kan &amarok; underrätta skript om särskilda händelser och få dem att reagera i enlighet med dem. Systemet med underrättelser förklaras senare i avsnittet. Kopplingar Det är möjligt att skriva enkla skript som inte kräver inblandning av användaren, och det är också möjligt att skapa skript med bekväma grafiska gränssnitt som fungerar som små program i sig själv. För programmering av det grafiska gränssnittet kan en av de många kopplingarna som KDE tillhandahåller användas, till exempel RubyQt, en koppling till Qt-biblioteket för Ruby. Det är dock värt att notera att inte alla användare har installerat alla tillgängliga kopplingar. Om du bestämmer dig för att använda en koppling, försök att använda någon av dem som är relativt spridda (t.ex. RubyQt eller PyQt). För att ge något gensvar när ett skript misslyckas köra på grund av ett beroende som saknas, kontrollera i skriptet om modulen du vill inkludera verkligen finns. Om beroendet saknas, bör du fånga felet och visa en informationsdialogruta med kommandoradverktyget "kdialog", så att användaren får reda på varför skriptet misslyckas med att köra. Följande exempel visar hur ett beroende som saknas kan fångas i Ruby: begin require 'Korundum' rescue LoadError error = 'Korundum (KDE-kopplingar för Ruby) från tdebindings v3.4 krävs för det här skriptet.' `kdialog --sorry '#{error}'` exit end Komma igång: Mallarna &amarok; tillhandahåller mallskript för flera språk i katalogen scripts/templates/. Du kan använda dessa skript som en bas för dina egna, och utöka dem med funktioner du behöver. Du kommer att märka att det i själva verket är ganska rättframt att skriva skript. Om du till exempel vet en del om hur man programmerar i Python, tar det inte lång tid att skapa ditt eget skript. Styra &amarok; med DCOP Skript kan styra Amarok genom att anropa vissa av dess DCOP-funktioner. Det enklaste sättet att utföra en DCOP-funktion är genom att använda kommandoradsverktyget "dcop", som ingår i alla distributioner av KDE. Här är ett exempel på hur huvudvolymen ökas: dcop amarok player volumeUp De flesta skriptspråk tillåter att yttre program körs, med en funktion som exec(). På så sätt kan verktyget "dcop" enkelt anropas. Här är ett enkelt exempel i Python: import os os.system("dcop amarok player volumeDown") Underrättelser &amarok; skickar underrättelser till alla skript som kör genom att skriva strängar till deras standardinmatning. Skripten bör därför hela tiden bevaka standardinmatningen och reagera på lämpligt sätt på var och en av de möjliga händelserna. Skript kan också välja att ignorera alla händelser de inte har någon nytta av. Följande underrättelser skickas av &amarok;: configure Talar om för skriptet att dess inställningsdialogruta ska visas. Skriptet måste hantera lagring och inläsning av inställningsalternativ självt. När ett skript startas, ställer Amarok in dess arbetskatalog till katalogen där all data ska lagras. engineStateChange:empty|idle|paused|playing Signalerar en ändring i gränssnittets tillstånd. trackChange Signalerar start av ett nytt spår. Skriptet kan därefter använda DCOP-funktioner för att fråga efter ytterligare information om spåret, t.ex. metadata och längd. volumeChangeny-volym Signalerar en ändring av huvudvolymen. Volymen är ett heltal med intervallet 0 - 100. customMenuClicked:undermeny objektnamn sökvägar Returnerar sökvägar till markerade filer i spellistan när det egna alternativet i spellistans sammanhangsberoende meny klickas. Undermenyn och objektnamnet returneras också i identifieringssyfte i fallet då ett skript lyssnar på flera underrättelser. Använd DCOP-anropet 'dcop amarok script addCustomMenuItem( undermeny objektnamn )' för att infoga ett objekt i den sammanhangsberoende menyn. Använd DCOP-anropet 'dcop amarok script removeCustomMenuItem( undermeny objektnamn )' för att ta bort ett objekt från den sammanhangsberoende menyn. Avslutning av skript Innan &amarok; avslutas, eller när användaren stoppar ett skript i skripthanteringen, skickar &amarok; signalen SIGTERM till skriptet. Signalen kan fångas för att utföra upprensningsarbete, som att spara data eller inställningar. Paketering Skripthanteringen i &amarok; kan installera skriptpaket som användaren har laddat ner från en webbserver. Paketen är bara normala arkiv (.tar), valfritt komprimerade med bzip2 (.bz2). Vi rekommenderar starkt att använda ett filnamn som mitt-skript.amarotdescript.tar.bz2, så att användaren lätt kan identifiera paketet som ett skript för Amarok. &amarok; 1.3 accepterar bara skriptpaket med filändelsen amarotdescript, det är alltså bättre att använda det ända från början. Arkivets innehåll måste vara organiserat på följande sätt: mitt-skript/ README mitt-skript.py (körbar fil) en-modul.py fil.data ... Filrättigheter Huvudskriptet måste har körrättigheter (+x) inställda,medan ytterligare moduler som skriptet laddar inte ska ha körrättigheter. För att bevara filrättigheter i arkivet, ska du använda tar med väljaren -p. tar -cf mitt-skript.amarotdescript.tar -p mitt-skript &amarok; kan inte installera skriptet om inte filrättigheterna är riktigt inställda. Distribution När paketet är klart, kan du ladda upp det till www.kde-apps.org och lägga till länken på &amarok;s Wiki skriptsida. För posten kde-apps ska du använda kategorin &amarok; Scripts.