[gnome-music/wip/merge: 320/343] mpris: Implement MediaPlayer2 Interface
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/merge: 320/343] mpris: Implement MediaPlayer2 Interface
- Date: Thu, 25 Jul 2013 11:39:31 +0000 (UTC)
commit 30c1a4e87e085f6cd8c3ad9a3275b69d875bcc0f
Author: Arnel A. Borja <arnelborja src gnome org>
Date: Sun Jul 21 22:46:58 2013 +0800
mpris: Implement MediaPlayer2 Interface
gnomemusic/mpris.py | 43 ++++++++++++++++++++++++++++++++++++++-----
1 files changed, 38 insertions(+), 5 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index 4fdf9da..0496900 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -4,12 +4,21 @@ from dbus.mainloop.glib import DBusGMainLoop
class MediaPlayer2Service(dbus.service.Object):
+ MEDIA_PLAYER2_IFACE = 'org.mpris.MediaPlayer2'
def __init__(self, app):
DBusGMainLoop(set_as_default=True)
name = dbus.service.BusName('org.mpris.MediaPlayer2.GnomeMusic', dbus.SessionBus())
dbus.service.Object.__init__(self, name, '/org/mpris/MediaPlayer2')
self.app = app
+ @dbus.service.method(dbus_interface=MEDIA_PLAYER2_IFACE)
+ def Raise(self):
+ self.app.do_activate()
+
+ @dbus.service.method(dbus_interface=MEDIA_PLAYER2_IFACE)
+ def Quit(self):
+ self.app.quit()
+
@dbus.service.method(dbus_interface=dbus.PROPERTIES_IFACE,
in_signature='ss', out_signature='v')
def Get(self, interface_name, property_name):
@@ -18,15 +27,39 @@ class MediaPlayer2Service(dbus.service.Object):
@dbus.service.method(dbus_interface=dbus.PROPERTIES_IFACE,
in_signature='s', out_signature='a{sv}')
def GetAll(self, interface_name):
- raise dbus.exceptions.DBusException(
- 'org.mpris.MediaPlayer2.GnomeMusic',
- 'This object does not implement the %s interface'
- % interface_name)
+ if interface_name == self.MEDIA_PLAYER2_IFACE:
+ return {
+ 'CanQuit': True,
+ 'CanRaise': True,
+ 'HasTrackList': False,
+ 'Identity': 'Music',
+ 'DesktopEntry': 'gnome-music',
+ 'SupportedUriSchemes': [
+ 'file'
+ ],
+ 'SupportedMimeTypes': [
+ 'application/ogg',
+ 'audio/x-vorbis+ogg',
+ 'audio/x-flac',
+ 'audio/mpeg'
+ ],
+ }
+ else:
+ raise dbus.exceptions.DBusException(
+ 'org.mpris.MediaPlayer2.GnomeMusic',
+ 'This object does not implement the %s interface'
+ % interface_name)
@dbus.service.method(dbus_interface=dbus.PROPERTIES_IFACE,
in_signature='ssv')
def Set(self, interface_name, property_name, new_value):
- pass
+ if interface_name == self.MEDIA_PLAYER2_IFACE:
+ pass
+ else:
+ raise dbus.exceptions.DBusException(
+ 'org.mpris.MediaPlayer2.GnomeMusic',
+ 'This object does not implement the %s interface'
+ % interface_name)
@dbus.service.signal(dbus_interface=dbus.PROPERTIES_IFACE,
signature='sa{sv}as')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]