1 #define MPRIS_BUS_NAME_PREFIX "org.mpris.MediaPlayer2"
2 #define MPRIS_OBJECT_NAME "/org/mpris/MediaPlayer2"
3 
4 #define MPRIS_ROOT_INTERFACE "org.mpris.MediaPlayer2"
5 #define MPRIS_PLAYER_INTERFACE "org.mpris.MediaPlayer2.Player"
6 #define MPRIS_TRACKLIST_INTERFACE "org.mpris.MediaPlayer2.TrackList"
7 #define MPRIS_PLAYLISTS_INTERFACE "org.mpris.MediaPlayer2.Playlists"
8 
9 const char *mpris_introspection_xml =
10 	"<node>"
11 	"  <interface name='org.mpris.MediaPlayer2'>"
12 	"    <method name='Raise'/>"
13 	"    <method name='Quit'/>"
14 	"    <property name='CanQuit' type='b' access='read'/>"
15 	"    <property name='CanRaise' type='b' access='read'/>"
16 	"    <property name='HasTrackList' type='b' access='read'/>"
17 	"    <property name='Identity' type='s' access='read'/>"
18 	"    <property name='DesktopEntry' type='s' access='read'/>"
19 	"    <property name='SupportedUriSchemes' type='as' access='read'/>"
20 	"    <property name='SupportedMimeTypes' type='as' access='read'/>"
21 	"  </interface>"
22 	"  <interface name='org.mpris.MediaPlayer2.Player'>"
23 	"    <method name='Next'/>"
24 	"    <method name='Previous'/>"
25 	"    <method name='Pause'/>"
26 	"    <method name='PlayPause'/>"
27 	"    <method name='Stop'/>"
28 	"    <method name='Play'/>"
29 	"    <method name='Seek'>"
30 	"      <arg direction='in' name='Offset' type='x'/>"
31 	"    </method>"
32 	"    <method name='SetPosition'>"
33 	"      <arg direction='in' name='TrackId' type='o'/>"
34 	"      <arg direction='in' name='Position' type='x'/>"
35 	"    </method>"
36 	"    <method name='OpenUri'>"
37 	"      <arg direction='in' name='Uri' type='s'/>"
38 	"    </method>"
39 	"    <signal name='Seeked'>"
40 	"      <arg name='Position' type='x'/>"
41 	"    </signal>"
42 	"    <property name='PlaybackStatus' type='s' access='read'/>"
43 	"    <property name='LoopStatus' type='s' access='readwrite'/>"
44 	"    <property name='Rate' type='d' access='readwrite'/>"
45 	"    <property name='Shuffle' type='b' access='readwrite'/>"
46 	"    <property name='Metadata' type='a{sv}' access='read'/>"
47 	"    <property name='Volume' type='d' access='readwrite'/>"
48 	"    <property name='Position' type='x' access='read'/>"
49 	"    <property name='MinimumRate' type='d' access='read'/>"
50 	"    <property name='MaximumRate' type='d' access='read'/>"
51 	"    <property name='CanGoNext' type='b' access='read'/>"
52 	"    <property name='CanGoPrevious' type='b' access='read'/>"
53 	"    <property name='CanPlay' type='b' access='read'/>"
54 	"    <property name='CanPause' type='b' access='read'/>"
55 	"    <property name='CanSeek' type='b' access='read'/>"
56 	"    <property name='CanControl' type='b' access='read'/>"
57 	"  </interface>"
58 	"  <interface name='org.mpris.MediaPlayer2.TrackList'>"
59 	"    <method name='GetTracksMetadata'>"
60 	"      <arg direction='in' name='TrackIds' type='ao'/>"
61 	"      <arg direction='out' name='Metadata' type='aa{sv}'/>"
62 	"    </method>"
63 	"    <method name='AddTrack'>"
64 	"      <arg direction='in' name='Uri' type='s'/>"
65 	"      <arg direction='in' name='AfterTrack' type='o'/>"
66 	"      <arg direction='in' name='SetAsCurrent' type='b'/>"
67 	"    </method>"
68 	"    <method name='RemoveTrack'>"
69 	"      <arg direction='in' name='TrackId' type='o'/>"
70 	"    </method>"
71 	"    <method name='GoTo'>"
72 	"      <arg direction='in' name='TrackId' type='o'/>"
73 	"    </method>"
74 	"    <signal name='TrackListReplaced'>"
75 	"      <arg name='Tracks' type='ao'/>"
76 	"      <arg name='CurrentTrack' type='o'/>"
77 	"    </signal>"
78 	"    <signal name='TrackAdded'>"
79 	"      <arg name='Metadata' type='a{sv}'/>"
80 	"      <arg name='AfterTrack' type='o'/>"
81 	"    </signal>"
82 	"    <signal name='TrackRemoved'>"
83 	"      <arg name='TrackId' type='o'/>"
84 	"    </signal>"
85 	"    <signal name='TrackMetadataChanged'>"
86 	"      <arg name='TrackId' type='o'/>"
87 	"      <arg name='Metadata' type='a{sv}'/>"
88 	"    </signal>"
89 	"    <property name='Tracks' type='ao' access='read'/>"
90 	"    <property name='CanEditTracks' type='b' access='read'/>"
91 	"  </interface>"
92 	"  <interface name='org.mpris.MediaPlayer2.Playlists'>"
93 	"    <method name='ActivatePlaylist'>"
94 	"      <arg direction='in' name='PlaylistId' type='o'/>"
95 	"    </method>"
96 	"    <method name='GetPlaylists'>"
97 	"      <arg direction='in' name='Index' type='u'/>"
98 	"      <arg direction='in' name='MaxCount' type='u'/>"
99 	"      <arg direction='in' name='Order' type='s'/>"
100 	"      <arg direction='in' name='ReverseOrder' type='b'/>"
101 	"      <arg direction='out' type='a(oss)'/>"
102 	"    </method>"
103 	"    <property name='PlaylistCount' type='u' access='read'/>"
104 	"    <property name='Orderings' type='as' access='read'/>"
105 	"    <property name='ActivePlaylist' type='(b(oss))' access='read'/>"
106 	"  </interface>"
107 	"</node>";
108