feedbacks needed for scripting interface

Peter Zhou peterzhoulei at gmail.com
Sun Jul 6 21:52:46 CEST 2008


Hi Amarok folks,

I have already implemented some of the useful functions for our new
scripting interface. I admit the new interface is not well structured.
Since I have no experience of designing API before, I'd like to get
some feedback from you guys, and hopefully we could make everything
nice before it's too late :)

Here is the current structure:

------------- root object -------------

Amarok ( Version and Quit method) QtScript Usage: Amarok.Version, Amarok.Quit

------------- engine object -------------

Amarok.Engine ( engineController actions, mainly mapped from
engineController.h )

//more signals will be added here

Amarok.Engine.TrackInfo (meta data of the current track, mainly mapped
from Meta::TrackPtr)

------------- window object -------------

Amarok.Window ( addToolsMenu, addToolsSeparator, addSettingsMenu,
addSettingsSeperator are declared here )

Amarok.Window.ToolsMenu
Amarok.Window.SettingsMenu ( the father obejct of the newly created
menu objects. eg. Amarok.SettingMenu.newMenu1 )

Amarok.Window.OSD ( OSD actions, mainly mapped from osd.h )
Amarok.Window.Statusbar (statusbar actions, mainly mapped from statusbar.h )

//will add functions to make adding buttons to the playlist Widget possible

------------- Collection object -------------
Amarok.Collection ( Collection attributes, mainly mapped from the
original dbus handler )

------------- Playlist object -------------
Amarok.Playlist ( Playlist attributes and actions, mainly mapped from
the original dbus handler )

------------- Scriptable Service -------------
Amarok.ScriptableServiceManager
Amarok.ServicePluginManager ( ported from the original dbus version )

------------- Lyrics object -------------
//to be implemented
//simple networking functions, and probably xml pattern functions,
like response = Amarok.Lyrics.fetch( url, option1, option2...)

------------- QT objects -------------
You may noticed the "generator" was added in the source folder, it
will be used to create Qt bindings, which could let the scripts use
bunches of Qt objects. (core, xml, sql, network, gui, phonon,
opengl...)

I have not carefully implemented all the functions, but the current
structure could more or less makes some sense.

Any idea will be appreciated! Thanks a lot!

Regards,
Peter
-------------------------------
http://www.peterzl.net/


More information about the Amarok-devel mailing list