Update xml for MPRIS spec to include Playlists and TrackList interfaces

This commit is contained in:
Sara Johnsson
2020-12-30 12:31:21 +01:00
parent edb76160f9
commit 4f5b3757e4
2 changed files with 168 additions and 1 deletions

View File

@@ -50,7 +50,90 @@
<property access="read" type="b" name="CanSeek"/>
<property access="read" type="b" name="CanControl"/>
</interface>
<interface name="org.freedesktop.DBus.Properties">
<interface name="org.mpris.MediaPlayer2.TrackList">
<method name="GetTracksMetadata">
<arg direction="in" name="TrackIds" type="ao">
</arg>
<arg direction="out" type="aa{sv}" name="Metadata">
</arg>
</method>
<method name="AddTrack">
<arg direction="in" type="s" name="Uri">
</arg>
<arg direction="in" type="o" name="AfterTrack">
</arg>
<arg direction="in" type="b" name="SetAsCurrent">
</arg>
</method>
<method name="RemoveTrack">
<arg direction="in" type="o" name="TrackId">
</arg>
</method>
<method name="GoTo">
<arg direction="in" type="o" name="TrackId">
</arg>
</method>
<property name="Tracks" type="ao" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="invalidates"/>
</property>
<property name="CanEditTracks" type="b" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
</property>
<signal name="TrackListReplaced">
<arg name="Tracks" type="ao">
</arg>
<arg name="CurrentTrack" type="o">
</arg>
</signal>
<signal name="TrackAdded">
<arg type="a{sv}" name="Metadata">
</arg>
<arg type="o" name="AfterTrack">
</arg>
</signal>
<signal name="TrackRemoved">
<arg type="o" name="TrackId">
</arg>
</signal>
<signal name="TrackMetadataChanged">
<arg type="o" name="TrackId">
</arg>
<arg type="a{sv}" name="Metadata">
</arg>
</signal>
</interface>
<interface name="org.mpris.MediaPlayer2.Playlists">
<method name="ActivatePlaylist">
<arg direction="in" name="PlaylistId" type="o">
</arg>
</method>
<method name="GetPlaylists">
<arg direction="in" name="Index" type="u">
</arg>
<arg direction="in" name="MaxCount" type="u">
</arg>
<arg direction="in" name="Order" type="s">
</arg>
<arg direction="in" name="ReverseOrder" type="b">
</arg>
<arg direction="out" name="Playlists" type="a(oss)">
</arg>
</method>
<property name="PlaylistCount" type="u" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
</property>
<property name="Orderings" type="as" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
</property>
<property name="ActivePlaylist" type="(b(oss))" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
</property>
<signal name="PlaylistChanged">
<arg name="Playlist" type="(oss)">
</arg>
</signal>
</interface>
<interface name="org.freedesktop.DBus.Properties">
<method name="Get">
<arg name="interface_name" type="s" direction="in"/>
<arg name="property_name" type="s" direction="in"/>
@@ -78,4 +161,5 @@
<arg name="machine_uuid" type="s" direction="out"/>
</method>
</interface>
</node>

View File

@@ -499,6 +499,89 @@ static const char *mpris_introspection_xml =
" <property name=\"CanSeek\" type=\"b\" access=\"read\"/>\n"
" <property name=\"CanControl\" type=\"b\" access=\"read\"/>\n"
" </interface>\n"
" <interface name=\"org.mpris.MediaPlayer2.TrackList\">\n"
" <method name=\"GetTracksMetadata\">\n"
" <arg direction=\"in\" name=\"TrackIds\" type=\"ao\">\n"
" </arg>\n"
" <arg direction=\"out\" type=\"aa{sv}\" name=\"Metadata\">\n"
" </arg>\n"
" </method>\n"
" <method name=\"AddTrack\">\n"
" <arg direction=\"in\" type=\"s\" name=\"Uri\">\n"
" </arg>\n"
" <arg direction=\"in\" type=\"o\" name=\"AfterTrack\">\n"
" </arg>\n"
" <arg direction=\"in\" type=\"b\" name=\"SetAsCurrent\">\n"
" </arg>\n"
" </method>\n"
" <method name=\"RemoveTrack\">\n"
" <arg direction=\"in\" type=\"o\" name=\"TrackId\">\n"
" </arg>\n"
" </method>\n"
" <method name=\"GoTo\">\n"
" <arg direction=\"in\" type=\"o\" name=\"TrackId\">\n"
" </arg>\n"
" </method>\n"
" <property name=\"Tracks\" type=\"ao\" access=\"read\">\n"
" <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"invalidates\"/>\n"
" </property>\n"
" <property name=\"CanEditTracks\" type=\"b\" access=\"read\">\n"
" <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"true\"/>\n"
" </property>\n"
" <signal name=\"TrackListReplaced\">\n"
" <arg name=\"Tracks\" type=\"ao\">\n"
" </arg>\n"
" <arg name=\"CurrentTrack\" type=\"o\">\n"
" </arg>\n"
" </signal>\n"
" <signal name=\"TrackAdded\">\n"
" <arg type=\"a{sv}\" name=\"Metadata\">\n"
" </arg>\n"
" <arg type=\"o\" name=\"AfterTrack\">\n"
" </arg>\n"
" </signal>\n"
" <signal name=\"TrackRemoved\">\n"
" <arg type=\"o\" name=\"TrackId\">\n"
" </arg>\n"
" </signal>\n"
" <signal name=\"TrackMetadataChanged\">\n"
" <arg type=\"o\" name=\"TrackId\">\n"
" </arg>\n"
" <arg type=\"a{sv}\" name=\"Metadata\">\n"
" </arg>\n"
" </signal>\n"
" </interface>\n"
" <interface name=\"org.mpris.MediaPlayer2.Playlists\">\n"
" <method name=\"ActivatePlaylist\">\n"
" <arg direction=\"in\" name=\"PlaylistId\" type=\"o\">\n"
" </arg>\n"
" </method>\n"
" <method name=\"GetPlaylists\">\n"
" <arg direction=\"in\" name=\"Index\" type=\"u\">\n"
" </arg>\n"
" <arg direction=\"in\" name=\"MaxCount\" type=\"u\">\n"
" </arg>\n"
" <arg direction=\"in\" name=\"Order\" type=\"s\">\n"
" </arg>\n"
" <arg direction=\"in\" name=\"ReverseOrder\" type=\"b\">\n"
" </arg>\n"
" <arg direction=\"out\" name=\"Playlists\" type=\"a(oss)\">\n"
" </arg>\n"
" </method>\n"
" <property name=\"PlaylistCount\" type=\"u\" access=\"read\">\n"
" <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"true\"/>\n"
" </property>\n"
" <property name=\"Orderings\" type=\"as\" access=\"read\">\n"
" <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"true\"/>\n"
" </property>\n"
" <property name=\"ActivePlaylist\" type=\"(b(oss))\" access=\"read\">\n"
" <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"true\"/>\n"
" </property>\n"
" <signal name=\"PlaylistChanged\">\n"
" <arg name=\"Playlist\" type=\"(oss)\">\n"
" </arg>\n"
" </signal>\n"
" </interface>\n"
"</node>\n";
static void proxy_method_call_async_callback(GObject *source_object, GAsyncResult *res,