Hi Rafael,
I've only recently posted a similar plugin on this list (Oct 22nd).
maybe we should try to combine the two?
Here's a list of things that I haven't figured out so far:
There are two things that I couldn't figure out:
- start amarok if not running and user hits "play" (via dbus)
- make sure Amarok does not show up twice in kupfer's menu. It shows
up once with the "Launch" option (like every normal application), and
a second time with the "Search Contents" option (that's my plugin).
cheers,
andreas
On Wed, Nov 17, 2010 at 12:24 AM, Rafael Brundo Uriarte
<rafael uriarte gmail com> wrote:
> Folks,
>
> I've developed a very simple plugin to control amarok playback(based
> on the audacious one, thanks folks). it has got only Play, Pause,
> Stop, Next Song and Previous Song (amarok 2.X hasn't got yet and dbus
> interface to manage collection). I am not sure if it's worth to put in
> the official release but for those who use amarok and want to give a
> try, here it go (just save as ~/.local/share/kupfer/plugins/amarok.py
> ) :
>
> "
> __kupfer_name__ = _("Amarok")
> __kupfer_sources__ = ("AmarokSource", )
> __description__ = _("Very Simple Plugin to Control Amarok(2.X)
> Playback, it includes Play, Stop, Pause, Next Song and Previous Song.
> Make sure that amarok is running")
> __version__ = "2010-11-16"
> __author__ = "Rafael Brundo Uriarte<rafael uriarte gmail com>"
>
> import subprocess
>
> from kupfer.objects import Leaf, Source, Action
> from kupfer.objects import AppLeaf, RunnableLeaf, SourceLeaf
> from kupfer.obj.apps import AppLeafContentMixin
> from kupfer import objects, icons, utils
> from kupfer import plugin_support
> from kupfer import kupferstring
>
> class Play (RunnableLeaf):
> def __init__(self):
> RunnableLeaf.__init__(self, name=_("Play"))
> def run(self):
> utils.launch_commandline("qdbus org.mpris.amarok /Player Play",
> in_terminal=False)
> def get_description(self):
> return _("Resume playback in Amarok")
> def get_icon_name(self):
> return "media-playback-start"
>
> class Stop (RunnableLeaf):
> def __init__(self):
> RunnableLeaf.__init__(self, name=_("Stop"))
> def run(self):
> utils.launch_commandline("qdbus org.mpris.amarok /Player Stop",
> in_terminal=False)
> def get_description(self):
> return _("Stop playback in Amarok")
> def get_icon_name(self):
> return "media-playback-stop"
>
> class Pause (RunnableLeaf):
> def __init__(self):
> RunnableLeaf.__init__(self, name=_("Pause"))
> def run(self):
> utils.launch_commandline("qdbus org.mpris.amarok /Player Pause",
> in_terminal=False)
> def get_description(self):
> return _("Pause playback in Amarok")
> def get_icon_name(self):
> return "media-playback-pause"
>
> class Next (RunnableLeaf):
> def __init__(self):
> RunnableLeaf.__init__(self, name=_("Next"))
> def run(self):
> utils.launch_commandline("qdbus org.mpris.amarok /Player Next",
> in_terminal=False)
> def get_description(self):
> return _("Jump to next track in Amarok")
> def get_icon_name(self):
> return "media-skip-forward"
>
> class Previous (RunnableLeaf):
> def __init__(self):
> RunnableLeaf.__init__(self, name=_("Previous"))
> def run(self):
> utils.launch_commandline("qdbus org.mpris.amarok
> /Player Prev", in_terminal=False)
>
> def get_description(self):
> return _("Jump to previous track in Amarok")
> def get_icon_name(self):
> return "media-skip-backward"
>
>
> class AmarokSource (AppLeafContentMixin, Source):
> appleaf_content_id = "Amarok"
> source_user_reloadable = True
>
> def __init__(self):
> Source.__init__(self, _("Amarok"))
> def get_items(self):
> yield Play()
> yield Stop()
> yield Pause()
> yield Next()
> yield Previous()
> def get_description(self):
> return __description__
> def get_icon_name(self):
> return "Amarok"
> def provides(self):
> yield RunnableLeaf
>
> "
>
> The next one I am planning (apart from improving this one) is to
> control the general volume (Mute, Volume Up....)
>
> any suggestion or critic is welcome...
>
> cheers
> Rafael Brundo Uriarte
> _______________________________________________
> kupfer-list mailing list
> kupfer-list gnome org
> http://mail.gnome.org/mailman/listinfo/kupfer-list
>
Attachment:
amarok.py
Description: Binary data