[gnome-music/wip/mschraal/mpris-object-path: 2/2] mpris: Fix object	path for track ids
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc: 
- Subject: [gnome-music/wip/mschraal/mpris-object-path: 2/2] mpris: Fix object	path for track ids
- Date: Sat, 27 Jan 2018 22:21:20 +0000 (UTC)
commit 3be42e0c2f81674f05ae50e24e1ced5b6c1393a0
Author: Marinus Schraal <mschraal gnome org>
Date:   Fri Jan 12 00:42:13 2018 +0100
    mpris: Fix object path for track ids
    
    Follow the MPRIS2 spec regarding TrackList track id's and encode the
    Grilo song id so it cannot contain invalid characters.
    
    Related: #100
 gnomemusic/mpris.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index 87317ce..a282b2a 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -23,6 +23,8 @@
 # code, but you are not obligated to do so.  If you do not wish to do so,
 # delete this exception statement from your version.
 
+import codecs
+
 from gnomemusic.player import PlaybackStatus, RepeatType
 from gnomemusic.grilo import grilo
 from gnomemusic.playlists import Playlists
@@ -336,8 +338,14 @@ class MediaPlayer2Service(Server):
 
     @log
     def _get_media_id(self, media):
-        return '/org/mpris/MediaPlayer2/TrackList/%s' % \
-            (media.get_id() if media else 'NoTrack')
+        if media:
+            trackid = "/org/gnome/GnomeMusic/Tracklist/{}".format(
+                codecs.encode(
+                    bytes(media.get_id(), 'ascii'), 'hex').decode('ascii'))
+        else:
+            trackid = "/org/mpris/MediaPlayer2/TrackList/NoTrack"
+
+        return trackid
 
     @log
     def _get_media_from_id(self, track_id):
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]