[gnome-music: 2/4] Move get_metadata from player to mpris
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music: 2/4] Move get_metadata from player to mpris
- Date: Mon, 5 Aug 2013 20:20:27 +0000 (UTC)
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]