[gnome-music] mpris: Send PropertiesChanged signal when thumbnail is updated



commit 4fe075646d1e5baaf0ec4466abfba26089192255
Author: Arnel A. Borja <arnelborja src gnome org>
Date:   Sat Sep 14 21:31:06 2013 +0800

    mpris: Send PropertiesChanged signal when thumbnail is updated
    
    Resends the metadata when the thumbnail is updated. We could send just
    the mpris:artUrl key, but some clients ignore metadata that contains
    only one key (some music players send a dummy value on stop), so send
    all metadata to be safe.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=708102

 gnomemusic/mpris.py |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index dfcae49..6f42ea3 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -28,6 +28,8 @@ import dbus
 import dbus.service
 from dbus.mainloop.glib import DBusGMainLoop
 
+from gi.repository import GLib
+
 from gnomemusic.player import PlaybackStatus, RepeatType
 from gnomemusic.albumArtCache import AlbumArtCache
 
@@ -43,6 +45,7 @@ class MediaPlayer2Service(dbus.service.Object):
         self.app = app
         self.player = app.get_active_window().player
         self.player.connect('current-changed', self._on_current_changed)
+        self.player.connect('thumbnail-updated', self._on_thumbnail_updated)
         self.player.connect('playback-status-changed', self._on_playback_status_changed)
         self.player.connect('repeat-mode-changed', self._on_repeat_mode_changed)
         self.player.connect('volume-changed', self._on_volume_changed)
@@ -118,6 +121,14 @@ class MediaPlayer2Service(dbus.service.Object):
                                },
                                [])
 
+    def _on_thumbnail_updated(self, player, path, data=None):
+        self.PropertiesChanged(self.MEDIA_PLAYER2_PLAYER_IFACE,
+                               {
+                                   'Metadata': dbus.Dictionary(self._get_metadata(),
+                                                               signature='sv'),
+                               },
+                               [])
+
     def _on_playback_status_changed(self, data=None):
         self.PropertiesChanged(self.MEDIA_PLAYER2_PLAYER_IFACE,
                                {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]