[mpris] [ANN] MPRIS v2.0

Marc-André Lureau marcandre.lureau at gmail.com
Thu Aug 12 05:07:17 PDT 2010


On Thu, Aug 12, 2010 at 5:07 AM, Mirsal Ennaime
<mirsal.ennaime at gmail.com> wrote:
> Hello,
> I would like to announce the release of the second major version of
> the Media Player Remote Interfacing Specification.

Sorry to comment after the release, but the RC period was a bit too
short for me. Overall, the changes are great, and a lot of good
feedback has been made during the RC already.  Some things I would
consider for future releases, maybe for 2.1?

- (minor) Bus Name: org.mpris.mediaplayers - this is in conflict with
version 1.0, that expect org.mpris.* to be used by 1.0 compliant MP.
Have you considered org.mpris2? But since 1.0 was so broken in many
ways, I guess there is not much we could do anyway.

- (comment) org.mpris.MediaPlayer2 interface looks so generic that I
wish it would be a standard "org.freedesktop.application" in the

- (comment) the "CanDoThat" or "HasThis" pattern could probably use
introspection instead, if DBus common usage permits having
"incomplete" interfaces.

- (normal) AddTrack / RemoveTrack. It is generally advised to group
methods to avoid roundtrips. It's quite common to add/remove a bunch
of URI in a track list. So I would prefer AddTracks/RemoveTracks. That
can probably be easily added in 2.1 without breaking compatibility
with 2.0

- (very minor) Why not put TrackMetadataChanged in a seperate
MediaPlayer2.Track interface ?

- (comment) I understood that normal volume range is between 0.0 and
1.0. It would be nice to add in the specification that 1.5 is allowed
for amplified volume. Or perhaps there should be a MaximumVolume

- (normal) there is MediaPlayer2.TrackList.GoTo() and
MediaPlayer2.Player.SetPosition(). Both look similar to me except that
SetPosition() takes an offset argument. However "Position" property is
only the current time.

- (normal) the spec probably lack standard error codes and return
values. I could contribute patches for that for 2.1.

- (minor). SetPosition(x) and Position property is read-only. But we
have Volume property read-write. Why this inconsistency? Especially
since we don't have exceptions/errors codes.


Marc-André Lureau

More information about the xdg mailing list