<?xml version="1.0" encoding="UTF-8" ?>
<!--
SPDX-FileCopyrightText: none
SPDX-License-Identifier: LGPL-2.1-or-later
-->
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
  <interface name="org.mpris.MediaPlayer2.Player">
    <tp:enum name="Playback_Status" tp:name-for-bindings="Playback_Status" type="s">
      <tp:enumvalue suffix="Playing" value="Playing"/>
      <tp:enumvalue suffix="Paused" value="Paused"/>
      <tp:enumvalue suffix="Stopped" value="Stopped"/>
    </tp:enum>
    <tp:enum name="Loop_Status" tp:name-for-bindings="Loop_Status" type="s">
      <tp:enumvalue suffix="None" value="None"/>
      <tp:enumvalue suffix="Track" value="Track"/>
      <tp:enumvalue suffix="Playlist" value="Playlist"/>
    </tp:enum>

    <tp:simple-type name="Track_Id" type="o" array-name="Track_Id_List"/>
    <tp:simple-type name="Playback_Rate" type="d"/>
    <tp:simple-type name="Volume" type="d"/>
    <tp:simple-type name="Time_In_Us" type="x"/>

    <method name="Next" tp:name-for-bindings="Next"/>
    <method name="Previous" tp:name-for-bindings="Previous"/>
    <method name="Pause" tp:name-for-bindings="Pause"/>
    <method name="PlayPause" tp:name-for-bindings="PlayPause"/>
    <method name="Stop" tp:name-for-bindings="Stop"/>
    <method name="Play" tp:name-for-bindings="Play"/>
    <method name="Seek" tp:name-for-bindings="Seek">
      <arg direction="in" type="x" name="Offset" tp:type="Time_In_Us"/>
    </method>
    <method name="SetPosition" tp:name-for-bindings="Set_Position">
      <arg direction="in" type="o" tp:type="Track_Id" name="TrackId"/>
      <arg direction="in" type="x" tp:type="Time_In_Us" name="Position"/>
    </method>
    <method name="OpenUri" tp:name-for-bindings="Open_Uri">
      <arg direction="in" type="s" tp:type="Uri" name="Uri"/>
    </method>

    <property name="PlaybackStatus" tp:name-for-bindings="Playback_Status" type="s" tp:type="Playback_Status" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="LoopStatus" type="s" access="readwrite" tp:name-for-bindings="Loop_Status" tp:type="Loop_Status">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
      <annotation name="org.mpris.MediaPlayer2.property.optional" value="true"/>
    </property>
    <property name="Rate" tp:name-for-bindings="Rate" type="d" tp:type="Playback_Rate" access="readwrite">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="Shuffle" tp:name-for-bindings="Shuffle" type="b" access="readwrite">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
      <annotation name="org.mpris.MediaPlayer2.property.optional" value="true"/>
    </property>
    <property name="Metadata" tp:name-for-bindings="Metadata" type="a{sv}" tp:type="Metadata_Map" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="Volume" type="d" tp:type="Volume" tp:name-for-bindings="Volume" access="readwrite">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true" />
    </property>
    <property name="Position" type="x" tp:type="Time_In_Us" tp:name-for-bindings="Position" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
    </property>
    <property name="MinimumRate" tp:name-for-bindings="Minimum_Rate" type="d" tp:type="Playback_Rate" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="MaximumRate" tp:name-for-bindings="Maximum_Rate" type="d" tp:type="Playback_Rate" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanGoNext" tp:name-for-bindings="Can_Go_Next" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanGoPrevious" tp:name-for-bindings="Can_Go_Previous" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanPlay" tp:name-for-bindings="Can_Play" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanPause" tp:name-for-bindings="Can_Pause" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanSeek" tp:name-for-bindings="Can_Seek" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="true"/>
    </property>
    <property name="CanControl" tp:name-for-bindings="Can_Control" type="b" access="read">
      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
    </property>

    <signal name="Seeked" tp:name-for-bindings="Seeked">
      <arg name="Position" type="x" tp:type="Time_In_Us"/>
    </signal>
  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
