MPRIS 1.0

Stanislav Brabec sbrabec at suse.cz
Thu Mar 27 04:25:13 PDT 2008


Mirsal Ennaime wrote:
> Hi,
> 
> The Media Player Remote Interfacing Specification v1.0 was released a
> little while ago without an announcement on this list.

It is an interesting approach.

Are you aware of Media Player Keys support in Linux kernel?
http://fedoraproject.org/wiki/SIGs/Laptop/HotKeys
/usr/include/linux/input.h
and X (well, broken)?
/usr/include/X11/keysymdef.h
This project was postponed last year, as it seems that X is the show
stopper, at least for now:
http://bugs.freedesktop.org/show_bug.cgi?id=11227

This specification seems to be one level higher abstraction (which for
example allows to create remote GUI to control any player, handle
display on remote etc.). It may revive this project in completely
different way.

As far as I understand, low level driver should have only change name
space base to change application to talk to.

The specification looks nice, but currently a bit incomplete. Missing
things:

- Protocol changing of "focus": One remote can have "DVD", "CD", "TV"
buttons and these buttons should change application, which have
"focus" (i. e. namespace of remote processing daemon). Second remote may
stick to say TV control and do nothing, if TV is off. One application
may handle say CD and DVD, but for TV it needs another one.

- Protocol for application launching (pressing "MP3" button should
launch predefined MP3 player, if it is not running, and pause or quit
all other running media players. Note that some platforms may need to
force other players to quit (card allows only one XVideo connection,
sound card access conflict).

- Tracklist handling is a bit vague. Additionally, different
applications may have different needs: implicit "playlist" 1-last when
CD is inserted x no default playlist in mpd, Artist/Album/TrackNo-Song x
Artist/Song.

- TV/Teletext/DVD/Video/Language/Subtitles control specification.

- Applications may want to broadcast "just started to play new
song" (for example pidgin does the same when it gets new message and is
configured so), "new medium was inserted".

- Volume change is a bit vague and may cause ugly "mute deadlocks". Some
applications interpret it as PCM volume change, other applications as
Master Volume change. Some hardware devices don't have Master Volume,
but Headphones Volume, Speaker Volume, Line Out Volume.

- Missing support for advanced mixer settings: Bass, Breble, 3D,
External Amplifier power on/off.

- Developers of embedded Linux are often talking about (just now a bit
magic) device D-Bus daemon. One of functions planned there is handling
of Headphones Insert/Removal, Remote Control Attach/Detach, Control of
Main and Secondary Display.

- Whether it should use system bus or session bus. It's a bit unclean.
First one may need to define permissions, second one will discriminate
mpd, which may be session independent.

- Handling of core X keyboard keybindings events. Remote daemon should
tell to application, whether it handles the core keyboard or not (note
that for example ATI Remote Wonder acts as a core keyboard in X).
Otherwise application may easily execute each command twice (once when
keyboard even appears from X, second time via MPRIS).

- RhythmBox developers even implemented Booklet display in the
notification.

- And finally, spec should say, what should do application, which is
started remotely (it may or may not want to be connected to the bus).


It would be nice to integrate MPRIS backend to a system daemon, e. g.
HAL or so. It has a rudimentary special button support.

-- 
Best Regards / S pozdravem,

Stanislav Brabec
software developer
---------------------------------------------------------------------
SUSE LINUX, s. r. o.                          e-mail: sbrabec at suse.cz
Lihovarská 1060/12           tel: +420 284 028 966, +49 911 740538747
190 00 Praha 9                                  fax: +420 284 028 951
Czech Republic                                    http://www.suse.cz/



More information about the xdg mailing list