kdekorte / gnome-mplayer

Automatically exported from code.google.com/p/gnome-mplayer
GNU General Public License v2.0
0 stars 0 forks source link

MPRIS2 TrackList interface is claimed but missing #721

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
According to 
http://kdekorte.blogspot.co.uk/2012/05/mpris2-support-in-gnome-mplayer.html, 
gnome-mplayer supports the MPRIS2 remote control interface since 1.0.7. This 
interface is useful eg to implement vendor-specific media player keys.

MPRIS2 comprises 4 interfaces, 
http://specifications.freedesktop.org/mpris-spec/latest/:

    org.mpris.MediaPlayer2
    org.mpris.MediaPlayer2.Player
optionally
    org.mpris.MediaPlayer2.TrackList
optionally
    org.mpris.MediaPlayer2.Playlists

In the version under test (Lubuntu 14.04, gnome-mplayer 1.0.8) the 2 required 
interfaces are supported. The HasTracklist property of interface 
org.mpris.MediaPlayer2 is returned as True. This means that the interface 
org.mpris.MediaPlayer2.TrackList ought to be supported, but it isn't, as shown 
in this output from a command-line MPRIS2 client.

Traceback (most recent call last):
  File "./mpris2-remote", line 749, in <module>
    for chunk in output_generator:
  File "./mpris2-remote", line 422, in trackinfo
    self.tracklist.GetTracksMetadata(['/org/mpris/MediaPlayer2/TrackList/' + track])
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method 
"GetTracksMetadata" with signature "ao" on interface 
"org.mpris.MediaPlayer2.TrackList" doesn't exist

On checking the source file 
https://code.google.com/p/gnome-mplayer/source/browse/trunk/src/mpris-interface.
c (r2452, latest), it becomes clear that the implementation of 
org.mpris.MediaPlayer2.TrackList is missing (at least methods and signals).

Consequently line 421 of the above file must be changed to, eg
                    b_val = FALSE; // change this to TRUE if the Tracklist interface is ever implemented

Then, and better, the Tracklist interface should be implemented.

Original issue reported on code.google.com by fieldho...@gmx.net on 12 Aug 2014 at 1:33