<div dir="ltr">Here's the current state of the Amarok Scripting API. :<br><br>
<div><div><font color="#999999">Amarok.Lyrics</font></div><div><font color="#999999">public slots:</font></div><div><font color="#999999"> void showLyrics( const QString& lyrics ) const;</font></div><div><font color="#999999"> void showLyricsHtml( const QString& lyrics ) const;</font></div>
<div><font color="#999999"> void showLyricsError( const QString& error ) const;</font></div><div><font color="#999999"> void showLyricsNotFound( const QString& msg ) const;</font></div><div>
<font color="#999999"> QString escape( const QString& str );</font></div>
<div><font color="#999999"> void setLyricsForTrack( const QString& trackUrl , const QString& lyrics ) const;</font></div><div><font color="#999999"> QString toUtf8( const QByteArray& lyrics, const QString& encoding = "UTF-8" );</font></div>
<div><font color="#999999"> QString QStringtoUtf8( const QString& lyrics, const QString& encoding = "UTF-8" );</font></div><div><font color="#999999"> QByteArray fromUtf8( const QString& str, const QString& encoding );</font></div>
<div><font color="#999999">signals:</font></div><div><font color="#999999"> void fetchLyrics( const QString& artist, const QString& title, const QString& );</font></div><div><font color="#999999"><br>
Amarok.Script<br></font></div><div><font color="#999999">public slots:</font></div><div><font color="#999999"> QVariant readConfig( const QString &name, const QVariant &defaultValue ) const;</font></div>
<div><font color="#999999"> QString readConfig( const QString &name, const QString &defaultValue ) const;</font></div><div><font color="#999999"> void writeConfig( const QString &name, const QVariant &content );</font></div>
<div><font color="#999999"> void writeConfig( const QString &name, const QString &content );<br></font></div><div><font color="#cccccc">ScriptableServiceScript</font></div><div><font color="#cccccc">public slots:</font></div>
<div><font color="#cccccc"> int insertItem( StreamItem* item );</font></div><div><font color="#cccccc"> void setCurrentInfo( const QString &infoHtml );</font></div><div><font color="#cccccc"> int donePopulating() const;</font></div>
<div><font color="#cccccc"> void setIcon( const QPixmap &icon );</font></div><div><font color="#cccccc"> void setEmblem( const QPixmap &icon );</font></div><div><font color="#cccccc"> void setScalableEmblem( const QString &emblemPath );</font></div>
<div><font color="#cccccc">signals:</font></div><div><font color="#cccccc"> void populate( int, QString, QString );</font></div><div><font color="#cccccc"> void fetchInfo( int, QString );</font></div>
<div><font color="#cccccc"> void customize();</font></div><div><br></div><div>Amarok.CollectionManager</div><div>public slots:</div><div><font color="#cccccc"> int totalAlbums() const;</font></div><div>
<font color="#cccccc"> int totalArtists() const;</font></div><div><font color="#cccccc"> int totalComposers() const;</font></div><div><font color="#cccccc"> int totalGenres() const;</font></div>
<div><font color="#cccccc"> int totalTracks() const;</font></div><div><font color="#cccccc"> QStringList collectionLocation() const;</font></div><div><font color="#cccccc"> QStringList query( const QString& sql ) const;</font></div>
<div><font color="#cccccc"> QString escape( const QString& sql ) const;</font></div><div><font color="#cccccc"> void scanCollection() const;</font></div><div><font color="#cccccc"> void scanCollectionChanges() const;</font></div>
<div> Collections::QueryMaker *queryMaker() const;</div><div> Collections::CollectionList queryableCollections() const;</div><div> Collections::CollectionList viewableCollections() const;</div>
<div> void dumpDatabaseContent() const;</div><div> //Playlists::PlaylistProvider* playlistProvider() const;</div><div>signals:</div><div> void collectionAdded( Collections::Collection *newCollection );</div>
<div> void collectionDataChanged( Collections::Collection *changedCollection );</div><div> void collectionRemoved( QString collectionId );</div><div><br></div><div><font color="#cccccc">Amarok.Window.OSD</font></div>
<div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> void showCurrentTrack();</font></div><div><font color="#cccccc"> * To show an OSD with the current settings, call show();</font></div>
<div><font color="#cccccc"> void show();</font></div><div><font color="#cccccc"> void setDuration( int ms );</font></div><div><font color="#cccccc"> void setTextColor( const QColor &color );</font></div>
<div><font color="#cccccc"> void setOffset( int y );</font></div><div><font color="#cccccc"> void setImage( const QImage &image );</font></div><div><font color="#cccccc"> void setScreen( int screen );</font></div>
<div><font color="#cccccc"> void setText( const QString &text );</font></div><div><font color="#cccccc"> void setRating( const short rating );</font></div><div><font color="#cccccc">Amarok</font></div>
<div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> void quitAmarok();</font></div><div><font color="#cccccc"> void debug( const QString& text ) const;</font></div><div>
<font color="#cccccc"> int alert( const QString& text, const QString& type = "information" ) const;</font></div><div><font color="#cccccc"> void end();</font></div><div><font color="#cccccc"> bool runScript( const QString& name ) const;</font></div>
<div><font color="#cccccc"> bool stopScript( const QString& name ) const;</font></div><div><font color="#cccccc"> QStringList listRunningScripts() const;</font></div><div><font color="#cccccc">signals:</font></div>
<div><font color="#cccccc"> void configured();<br><br></font></div><div><font color="#999999">Amarok.StreamItem</font></div><div><font color="#999999">QString itemName</font></div><div><font color="#999999">QString infoHtml</font></div>
<div><font color="#999999">QString playableUrl</font></div><div><font color="#999999">QString callbackData</font></div><div><font color="#999999">int level</font></div><div><font color="#999999">QString album</font></div>
<div><font color="#999999">QString artist</font></div><div><font color="#999999">QString genre</font></div><div><font color="#999999">QString composer</font></div><div><font color="#999999">int year</font></div><div><font color="#999999">QString coverUrl</font></div>
<div><font color="#999999">Amarok.Window.Statusbar</font></div><div><font color="#999999">public slots:</font></div><div><font color="#999999"> void longMessage( const QString &text );</font></div><div><font color="#999999"> void shortMessage( const QString &text );<br>
<br></font></div><div>Amarok.Bookmark</div><div>int id</div><div>BookmarkGroupPtr parent</div><div>QString command</div><div>QString name</div><div>QString path</div><div>QString description</div><div>bool isNull</div><div>
QString customValue</div><div>QString url</div><div>int id</div><div>BookmarkGroupPtr parent</div><div>QString name</div><div>QString description</div><div>int childCount</div><div>public slots:</div><div> AmarokUrlPtr contextView();</div>
<div> AmarokUrlPtr currentPlaylistView();</div><div> AmarokUrlPtr browserView();</div><div> AmarokUrlPtr createCurrentTrackBookmark();</div><div> // AmarokUrlPtr artist( Meta::AlbumPtr album );<br>
<br></div><div>Amarok.Engine.Equalizer</div><div>bool enabled</div><div>bool isSupported</div><div>QString selectedPreset</div><div>QStringList userPresets</div><div>QStringList translatedGlobalPresetList</div><div>QStringList globalPresetList</div>
<div>QStringList translatedDefaultPresetList</div><div>QStringList defaultPresetList</div><div>QList</div><div>int maxGain</div><div>QStringList bandFrequencies</div><div>public slots:</div><div> QList<int> getPresetGains( const QString &presetName );</div>
<div> bool deletePreset( const QString &presetName );</div><div> void savePreset( const QString &name, const QList<int> &presetGains );</div><div>signals:</div><div> void presetApplied( QString name );</div>
<div> void gainsChanged( QList<int> gains );</div><div> void presetsChanged( QString name );</div><div><br>Importer</div><div>public slots:</div><div> void loadAmarokBinding( const QString &name );</div>
<div><font color="#cccccc"> void loadExtension( const QString &src );</font></div><div><font color="#cccccc"> bool loadQtBinding( const QString &binding );</font></div><div><font color="#cccccc"> bool include( const QString &relativeFile );</font></div>
<div><br><font color="#cccccc">Amarok.Playlist</font></div><div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> int activeIndex();</font></div><div><font color="#cccccc"> int totalTrackCount();</font></div>
<div><font color="#cccccc"> QString saveCurrentPlaylist();</font></div><div><font color="#cccccc"> void addMedia( const QUrl &url );</font></div><div><font color="#cccccc"> void addMediaList( const QVariantList &urls );</font></div>
<div><font color="#cccccc"> void clearPlaylist();</font></div><div><font color="#cccccc"> void playByIndex( int index );</font></div><div><font color="#cccccc"> void playMedia( const QUrl &url );</font></div>
<div><font color="#cccccc"> void playMediaList( const QVariantList &urls );</font></div><div><font color="#cccccc"> void removeCurrentTrack();</font></div><div><font color="#cccccc"> void removeByIndex( int index );</font></div>
<div><font color="#cccccc"> void savePlaylist( const QString& path );</font></div><div><font color="#cccccc"> void setStopAfterCurrent( bool on );</font></div><div><font color="#cccccc"> bool stopAfterCurrent();</font></div>
<div><font color="#cccccc"> void togglePlaylist();</font></div><div><font color="#cccccc"> QStringList filenames();</font></div><div><font color="#cccccc"> Meta::TrackPtr trackAt( int row );</font></div>
<div><font color="#cccccc"> QList<int> selectedIndexes();</font></div><div><font color="#cccccc"> QStringList selectedFilenames();</font></div><div><font color="#cccccc">signals:</font></div><div>
<font color="#cccccc"> void trackInserted( int start, int end );</font></div><div><font color="#cccccc"> void trackRemoved( int start, int end );</font></div><div><font color="#cccccc">Amarok.Info</font></div>
<div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> QString scriptPath() const;</font></div><div><font color="#cccccc"> QString scriptConfigPath( const QString& name ) const;</font></div>
<div><font color="#cccccc"> QString iconPath( const QString& name, int size ) const;</font></div><div><font color="#cccccc"> QString version() const;</font></div><div><font color="#cccccc"><br>Amarok.Window.KNotify</font></div>
<div><font color="#cccccc">bool kNotifyEnabled</font></div><div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> void showCurrentTrack();</font></div><div><font color="#cccccc"> void show(const QString &title, const QString &body, const QPixmap &pixmap = QPixmap() );</font></div>
<div><font color="#cccccc">Amarok.Engine</font></div><div><font color="#cccccc">bool randomMode</font></div><div><font color="#cccccc">bool dynamicMode</font></div><div><font color="#cccccc">bool repeatPlaylist</font></div>
<div><font color="#cccccc">bool repeatTrack</font></div><div><font color="#cccccc">int volume</font></div><div><font color="#cccccc">int fadeoutLength</font></div><div><font color="#cccccc">public slots:</font></div><div>
<font color="#cccccc"> void Play() const;</font></div><div><font color="#cccccc"> void Stop( bool forceInstant = false ) const;</font></div><div><font color="#cccccc"> void Pause() const;</font></div>
<div><font color="#cccccc"> void Next() const;</font></div><div><font color="#cccccc"> void Prev() const;</font></div><div><font color="#cccccc"> void PlayPause() const;</font></div><div>
<font color="#cccccc"> void Seek( int ms ) const;</font></div>
<div><font color="#cccccc"> void SeekRelative( int ms ) const;</font></div><div><font color="#cccccc"> void SeekForward( int ms = 10000 ) const;</font></div><div><font color="#cccccc"> void SeekBackward( int ms = 10000 ) const;</font></div>
<div><font color="#cccccc"> int IncreaseVolume( int ticks = 100/25 );</font></div><div><font color="#cccccc"> int DecreaseVolume( int ticks = 100/25 );</font></div><div><font color="#cccccc"> void Mute();</font></div>
<div><font color="#cccccc"> int trackPosition() const;</font></div><div><font color="#cccccc"> int trackPositionMs() const;</font></div><div><font color="#cccccc"> int engineState() const;</font></div>
<div><font color="#cccccc"> Meta::TrackPtr currentTrack() const;</font></div><div><font color="#cccccc">signals:</font></div><div><font color="#cccccc"> void trackFinished();</font></div><div><font color="#cccccc"> void trackChanged();</font></div>
<div><font color="#cccccc"> void newMetaData( const QHash<qint64, QString> &metaData, bool newTrack );</font></div><div><font color="#cccccc"> void trackSeeked( int );</font></div><div><font color="#cccccc"> void volumeChanged( int );</font></div>
<div><font color="#cccccc"> void trackPlayPause( int state );<br><br></font><div>Amarok.PlaylistManager<br></div><div>QList<int> availableCategories</div><div>public slots:</div><div> Playlists::PlaylistList playlistsOfCategory( int playlistCategory );</div>
<div> Playlists::PlaylistProviderList providersForCategory( int playlistCategory );</div><div> //void setupSync( const Playlists::PlaylistPtr master, const Playlists::PlaylistPtr slave );</div><div>
Playlists::PlaylistProvider *playlistProvider( int category, QString name );</div>
<div> Playlists::PlaylistProvider *toProvider = 0 );</div><div> bool import( const QString &fromLocation );</div><div> bool rename( Playlists::PlaylistPtr playlist, const QString &newName );</div>
<div> bool deletePlaylists( Playlists::PlaylistList playlistList );</div><div> getProvidersForPlaylist( const Playlists::PlaylistPtr playlist );</div><div> bool isWritable( const Playlists::PlaylistPtr &playlist );</div>
<div>signals:</div><div> void updated( int category );</div><div> void categoryAdded( int category );</div><div> void providerAdded( Playlists::PlaylistProvider *provider, int category );</div>
<div> void providerRemoved( Playlists::PlaylistProvider *provider, int category );</div><div> void playlistAdded( Playlists::PlaylistPtr playlist, int category );</div><div> void playlistRemoved( Playlists::PlaylistPtr playlist, int category );</div>
<div> void playlistUpdated( Playlists::PlaylistPtr playlist, int category );</div><div> void renamePlaylist( Playlists::PlaylistPtr playlist );<br></div><font color="#cccccc"><br></font></div><div>Amarok.Window</div>
<div><font color="#cccccc">bool isTrayIconShown</font></div><div><font color="#cccccc">QString activeBrowserName</font></div><div>QMainWindow</div><div>QString styleSheet</div><div>public slots:</div><div><font color="#cccccc"> bool addToolsMenu( QString id, QString menuTitle, QString icon = "amarok" );</font></div>
<div><font color="#cccccc"> void addToolsSeparator();</font></div><div><font color="#cccccc"> bool addSettingsMenu( QString id, QString menuTitle, QString icon = "amarok" );</font></div><div>
<font color="#cccccc"> void addSettingsSeparator();</font></div><div> void showBrowser( QString browser ) const;</div><div> void showTrayIcon( bool show );</div><div> QPalette palette() const;</div>
<div> void setPalette( const QPalette & palette );</div><div>signals:</div><div><font color="#cccccc"> void prepareToQuit();</font></div><div> void newPalette( QPalette );<br><br></div>
<div><font color="#cccccc">Amarok.ServicePluginManager</font></div><div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> QStringList loadedServices();</font></div><div><font color="#cccccc"> QStringList loadedServiceNames();</font></div>
<div><font color="#cccccc"> QString serviceDescription( const QString &service );</font></div><div><font color="#cccccc"> QString serviceMessages( const QString &service );</font></div><div>
<font color="#cccccc"> QString sendMessage( const QString &service, const QString &message );<br>
<br></font></div><div>PlaylistProvider</div><div>bool isWritable</div><div>QString prettyName</div><div>bool isValid</div><div>QIcon icon</div><div>int category</div><div>int playlistCount</div><div>public slots:</div><div>
QString toString() const;</div><div> Playlists::PlaylistList playlists();</div><div> Playlists::PlaylistPtr addPlaylist( Playlists::PlaylistPtr playlist );</div><div> void renamePlaylist( Playlists::PlaylistPtr playlist, const QString &newName );</div>
<div> bool deletePlaylists( const Playlists::PlaylistList &playlistlist );</div><div> Playlists::PlaylistPtr save( const Meta::TrackList &tracks, const QString &name = QString() );</div>
<div>
signals:</div><div> void updated();</div><div> void playlistAdded( Playlists::PlaylistPtr playlist );</div><div> void playlistRemoved( Playlists::PlaylistPtr playlist );</div><div><br>BiasFactory<br>
ctors: new BiasFactory()</div><div>bool enabled</div><div>QString name</div><div>QString identifier</div><div>QString description</div><div>QScriptValue widget</div><div>QScriptValue fromXml</div><div>QScriptValue toXml</div>
<div>QScriptValue matchingTracks</div><div>QScriptValue trackMatches</div><div>QScriptValue toStringFunction</div><div>QScriptValue init</div><div>QScriptValue paintOperator</div><div>int count</div><div>bool isFull</div>
<div>bool isOutstanding</div><div>bool isEmpty</div><div><br></div><div><div>TrackSet (+script ctors )</div><div>int count<br></div><div>bool isFull</div><div>bool isOutstanding<br></div><div>bool isEmpty</div><div> public slots:</div>
<div> void reset( bool value );<br></div><div> bool contains( const QString& uid ) const;<br></div><div> bool contains( const Meta::TrackPtr track ) const;<br></div><div> Meta::TrackPtr getRandomTrack() const;<br>
</div><div> void uniteTrack( const Meta::TrackPtr &track );<br></div><div> void uniteTrackSet( const Dynamic::TrackSet &trackSet );<br></div><div> void uniteUids( const QStringList &uids );<br>
</div><div> void intersectTrackSet( const Dynamic::TrackSet &trackSet );<br></div><div> void intersectUids( const QStringList &uids );<br></div><div> void subtractTrack( const Meta::TrackPtr &track );<br>
</div><div> void subtractTrackSet( const Dynamic::TrackSet &trackSet );<br></div><div> void subtractUids( const QStringList &uids );<br></div></div><div><br></div><div>QueryMaker</div><div>bool isValid</div>
<div>QString filter</div><div>public slots:</div><div> void run();</div><div> void abort();</div><div> void addFilter( const QString &filter );</div><div>signals:</div><div> void newResultReady( Meta::TrackList );</div>
<div> void queryDone();</div><div><br></div><div>Collection</div><div>bool isOrganizable</div><div>bool isWritable</div><div>QString collectionId</div><div>QString prettyName</div><div>float usedCapacity</div><div>
float totalCapacity</div><div>bool isValid</div><div>QIcon icon</div><div>bool isQueryable</div><div>bool isViewable</div><div>bool supportsTranscode</div><div>QString prettyLocation</div><div>QStringList actualLocation</div>
<div>public slots:</div><div> void copyTracks( const Meta::TrackList &tracks, Collections::Collection *targetCollection );</div><div> void copyTracks( const Meta::TrackPtr track, Collections::Collection *targetCollection );</div>
<div> void queryAndCopyTracks( Collections::QueryMaker *queryMaker, Collections::Collection *targetCollection );</div><div> void moveTracks( const Meta::TrackList &tracks, Collections::Collection *targetCollection );</div>
<div> void moveTracks( const Meta::TrackPtr track, Collections::Collection *targetCollection );</div><div> void queryAndMoveTracks( Collections::QueryMaker *queryMaker, Collections::Collection *targetCollection );</div>
<div> void removeTracks( const Meta::TrackList &trackList );</div><div> void removeTracks( const Meta::TrackPtr track );</div><div> void queryAndRemoveTracks( Collections::QueryMaker *qm );</div>
<div> Collections::QueryMaker *queryMaker();</div><div>signals:</div><div> void updated();</div><div> void removed();</div><div> void finishCopy();</div><div> void finishRemove();</div>
<div> void aborted();<br><br></div><div>Playlist</div><div>bool isValid</div><div>QString name</div><div>QUrl uidUrl</div><div>int trackCount</div><div>Playlists</div><div>public slots:</div><div> Meta::TrackList tracks();</div>
<div> void triggerFullLoad();</div><div> void triggerQuickLoad();</div><div> void addTrack( Meta::TrackPtr track, int position = -1 );</div><div> void removeTrack( int position );</div>
<div> QString toString() const;</div><div>signals:</div><div> void loaded( Meta::TrackList tracks );</div><div> void addedTrack( Meta::TrackPtr track, int position );</div><div> void removedTrack( int position );</div>
<div><br>Track<br>Ctors: new Track (QUrl )</div><div><font color="#cccccc">QString title</font></div><div><font color="#cccccc">int sampleRate</font></div><div><font color="#cccccc">int bitrate</font></div><div><font color="#cccccc">double score</font></div>
<div><font color="#cccccc">int rating</font></div><div><font color="#cccccc">bool inCollection</font></div><div><font color="#cccccc">QString type</font></div><div><font color="#cccccc">int length</font></div><div><font color="#cccccc">int fileSize</font></div>
<div><font color="#cccccc">int trackNumber</font></div><div><font color="#cccccc">int discNumber</font></div><div><font color="#cccccc">int playCount</font></div><div><font color="#cccccc">bool playable</font></div><div>
<font color="#cccccc">QString album</font></div>
<div><font color="#cccccc">QString artist</font></div><div><font color="#cccccc">QString composer</font></div><div><font color="#cccccc">QString genre</font></div><div><font color="#cccccc">int year</font></div><div><font color="#cccccc">QString comment</font></div>
<div><font color="#cccccc">QString path</font></div><div><font color="#cccccc">bool isValid</font></div><div><font color="#cccccc">bool isEditable</font></div><div><font color="#cccccc">QString lyrics</font></div><div><font color="#cccccc">QString imageUrl</font></div>
<div><font color="#cccccc">QString url</font></div><div><font color="#cccccc">double bpm</font></div><div>bool isLoaded</div><div><font color="#cccccc">public slots:</font></div><div><font color="#cccccc"> QScriptValue imagePixmap( int size = 1 ) const;</font></div>
<div>signals:</div><div> void loaded( Meta::TrackPtr );</div></div><div><div><br></div><div>Bookmark<br>ctros:<br>new Bookmark( QString urlString )</div><div>new Bookmark( QString urlString, BookmarkGroupPtr parent )<br>
</div><div>new Bookmark( Meta::Track track, longlong time )<br></div><div><br></div><div>int id</div><div>BookmarkGroupPtr parent</div><div>QString command</div><div>QString name</div><div>QString path</div><div>QString description</div>
<div>bool isNull</div><div>QString customValue</div><div>QString url</div><div> public slots:</div><div> bool save();</div><div> void initFromString( const QString & urlString );</div><div>
bool run();</div><div> void removeFromDb();</div><div> QString prettyCommand() const;</div><div> StringMap args() const;</div><div> void setArg( const QString &name, const QString &value );</div>
<div><br></div><div>BookmarkGroup<br>ctors:<br>BookmarkGroup( QString name )<br>BookmarkGroup( QString name, customType )<br>BookmarkGroup( QString name, BookmarkGroup parent )<br><br></div><div>int id READ id</div><div>
BookmarkGroupPtr parent</div>
<div>QString name</div><div>QString description</div><div>int childCount</div><div> public slots:</div><div> void save();</div><div> BookmarkGroupList childGroups() const;</div><div> BookmarkList childBookmarks() const;</div>
<div> void clear();</div><div> void deleteChildBookmark( AmarokUrlPtr bookmark );</div><div> void deleteChildBookmarkgroup( BookmarkGroupPtr bookmarkGroup );</div></div><div><br><div><br class="">
Amarok.Window.CollectionView</div><div>QString filter</div><div>QScriptValue selection</div><div>bool showYears</div><div>bool showTrackNumbers</div><div>bool showCovers</div><div>QList</div><div>CollectionTreeItem</div>
<div>
int childCount</div><div>int row</div><div>int level</div><div>int childCount</div><div>bool isCollection</div><div>Meta</div><div>Collections</div><div>bool singleCollection</div><div>int collectionCount</div><div>QList</div>
<div>public slots:</div><div> // void setLevel( int level, Category type );</div><div> void toggleView( bool merged );</div><div> void setAction( const QScriptValue &value );</div><div>
<br></div><div><div>CollectionViewItem</div><div> CollectionTreeItem* parent</div><div> int childCount</div><div> int row</div><div> int level</div><div> int childCount</div><div> bool isCollection</div>
<div> Meta::TrackList descendentTracks</div><div> Collections::Collection* parentCollection</div><div> public slots:</div><div> CollectionTreeItem* child( int row );</div><div><br></div><div>
Selection</div><div> bool singleCollection</div><div> int collectionCount</div><div> QList<CollectionViewItem*> selectedItems</div></div></div><div><br></div></div>