[gnome-music: 2/4] Move get_metadata from player to mpris



commit 8bf64f689f4665fcd251717d932d255e63312128
Author: Arnel A. Borja <arnelborja src gnome org>
Date:   Mon Aug 5 23:37:50 2013 +0800

    Move get_metadata from player to mpris

 gnomemusic/mpris.py  |   48 +++++++++++++++++++++++++++++++++++++++++++++---
 gnomemusic/player.py |   41 -----------------------------------------
 2 files changed, 45 insertions(+), 44 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index 6c758ba..ebd3637 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -3,6 +3,7 @@ import dbus.service
 from dbus.mainloop.glib import DBusGMainLoop
 
 from gnomemusic.player import PlaybackStatus, RepeatType
+from gnomemusic.albumArtCache import AlbumArtCache
 
 
 class MediaPlayer2Service(dbus.service.Object):
@@ -39,10 +40,51 @@ class MediaPlayer2Service(dbus.service.Object):
         else:
             return 'Playlist'
 
+    def _get_metadata(self):
+        media = self.player.get_current_media()
+        if not media:
+            return {}
+
+        metadata = {
+            'mpris:trackid': '/org/mpris/MediaPlayer2/Track/%s' % media.get_id(),
+            'xesam:url': media.get_url(),
+            'mpris:length': media.get_duration() * 1000000,
+            'xesam:trackNumber': media.get_track_number(),
+            'xesam:useCount': media.get_play_count(),
+            'xesam:userRating': media.get_rating(),
+        }
+
+        title = AlbumArtCache.get_media_title(media)
+        if title:
+            metadata['xesam:title'] = title
+
+        album = media.get_album()
+        if album:
+            metadata['xesam:album'] = album
+
+        artist = media.get_artist()
+        if artist:
+            metadata['xesam:artist'] = [artist]
+            metadata['xesam:albumArtist'] = [artist]
+
+        genre = media.get_genre()
+        if genre:
+            metadata['xesam:genre'] = [genre]
+
+        last_played = media.get_last_played()
+        if last_played:
+            metadata['xesam:lastUsed'] = last_played
+
+        thumbnail = media.get_thumbnail()
+        if thumbnail:
+            metadata['mpris:artUrl'] = thumbnail
+
+        return metadata
+
     def _on_current_changed(self, player, data=None):
         self.PropertiesChanged(self.MEDIA_PLAYER2_PLAYER_IFACE,
                                {
-                                   'Metadata': dbus.Dictionary(self.player.get_metadata(),
+                                   'Metadata': dbus.Dictionary(self._get_metadata(),
                                                                signature='sv'),
                                    'CanPlay': True,
                                    'CanPause': True,
@@ -122,7 +164,7 @@ class MediaPlayer2Service(dbus.service.Object):
     @dbus.service.method(dbus_interface=MEDIA_PLAYER2_PLAYER_IFACE,
                          in_signature='ox')
     def SetPosition(self, track_id, position):
-        if track_id != self.player.get_metadata().get('mpris:trackid'):
+        if track_id != self._get_metadata().get('mpris:trackid'):
             return
         self.player.set_position(position)
 
@@ -167,7 +209,7 @@ class MediaPlayer2Service(dbus.service.Object):
                 'LoopStatus': self._get_loop_status(),
                 'Rate': 1.0,
                 'Shuffle': self.player.repeat == RepeatType.SHUFFLE,
-                'Metadata': dbus.Dictionary(self.player.get_metadata(), signature='sv'),
+                'Metadata': dbus.Dictionary(self._get_metadata(), signature='sv'),
                 'Volume': self.player.get_volume(),
                 'Position': self.player.get_position(),
                 'MinimumRate': 1.0,
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index c16ab25..2599d1c 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -487,47 +487,6 @@ class Player(GObject.GObject):
         elif next_on_overflow:
             self.play_next()
 
-    def get_metadata(self):
-        if self.currentTrack is None:
-            return {}
-
-        media = self.playlist.get_value(self.currentTrack, self.playlistField)
-        metadata = {
-            'mpris:trackid': '/org/mpris/MediaPlayer2/Track/%s' % media.get_id(),
-            'xesam:url': media.get_url(),
-            'mpris:length': media.get_duration() * 1000000,
-            'xesam:trackNumber': media.get_track_number(),
-            'xesam:useCount': media.get_play_count(),
-            'xesam:userRating': media.get_rating(),
-        }
-
-        title = AlbumArtCache.get_media_title(media)
-        if title:
-            metadata['xesam:title'] = title
-
-        album = media.get_album()
-        if album:
-            metadata['xesam:album'] = album
-
-        artist = media.get_artist()
-        if artist:
-            metadata['xesam:artist'] = [artist]
-            metadata['xesam:albumArtist'] = [artist]
-
-        genre = media.get_genre()
-        if genre:
-            metadata['xesam:genre'] = [genre]
-
-        last_played = media.get_last_played()
-        if last_played:
-            metadata['xesam:lastUsed'] = last_played
-
-        thumbnail = media.get_thumbnail()
-        if thumbnail:
-            metadata['mpris:artUrl'] = thumbnail
-
-        return metadata
-
     def get_volume(self):
         return self.player.get_volume(GstAudio.StreamVolumeFormat.LINEAR)
 


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