<node name="/org/mpris/MediaPlayer2">

  <interface name="org.mpris.MediaPlayer2">
    <method name="Raise" />
    <method name="Quit" />
    <property name="CanRaise" type="b" access="read" />
    <property name="CanQuit" type="b" access="read" />
    <property name="HasTrackList" type="b" access="read" />
    <property name="Identity" type="s" access="read" />
    <property name="SupportedUriSchemes" type="as" access="read" />
    <property name="SupportedMimeTypes" type="as" access="read" />
  </interface>
  <interface name="org.mpris.MediaPlayer2.Player">
    <method name="Next" />
    <method name="Previous" />
    <method name="Pause" />
    <method name="PlayPause" />
    <method name="Stop" />
    <method name="Play" />
    <method name="Seek">
      <arg name="Offset" type="x" direction="in" />
    </method>
    <method name="SetPosition">
      <arg name="TrackId" type="o" direction="in" />
      <arg name="Position" type="x" direction="in" />
    </method>
    <method name="OpenUri">
      <arg name="Uri" type="s" direction="in" />
    </method>
    <signal name="Seeked">
      <arg name="Position" type="x" />
    </signal>
    <property name="PlaybackStatus" type="s" access="read" />
    <property name="Rate" type="d" access="readwrite" />
    <property name="Metadata" type="a{sv}" access="read" />
    <property name="Volume" type="d" access="readwrite" />
    <property name="Position" type="x" access="read" />
    <property name="MinimumRate" type="d" access="read" />
    <property name="MaximumRate" type="d" access="read" />
    <property name="CanGoNext" type="b" access="read" />
    <property name="CanGoPrevious" type="b" access="read" />
    <property name="CanPlay" type="b" access="read" />
    <property name="CanPause" type="b" access="read" />
    <property name="CanSeek" type="b" access="read" />
    <property name="CanControl" type="b" access="read" />
  </interface>
  <interface name="org.mpris.MediaPlayer2.TrackList">
    <method name="GetTracksMetadata">
      <arg name="TrackIds" direction="in" type="ao" />
      <arg name="Metadata" direction="out" type="aa{sv}" />
    </method>
    <method name="AddTrack">
      <arg name="Uri" type="s" direction="in" />
      <arg name="AfterTrack" type="o" direction="in" />
      <arg name="SetAsCurrent" type="b" direction="in" />
    </method>
    <method name="RemoveTrack">
      <arg name="TrackId" type="o" direction="in" />
    </method>
    <method name="GoTo">
      <arg name="TrackId" type="o" direction="in" />
    </method>
    <signal name="TrackListReplaced">
      <arg name="Tracks" type="ao" />
      <arg name="CurrentTrack" type="o" />
    </signal>
    <signal name="TrackAdded">
      <arg name="Metadata" type="a{sv}" />
      <arg name="AfterTrack" type="o" />
    </signal>
    <signal name="TrackRemoved">
      <arg name="TrackId" type="o" />
    </signal>
    <signal name="TrackMetadataChanged">
      <arg name="TrackId" type="o" />
      <arg name="Metadata" type="a{sv}" />
    </signal>
    <property name="Tracks" type="ao" access="read" />
    <property name="CanEditTracks" type="b" access="read" />
  </interface>
</node>