You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libcutefish/mpris/org.mpris.MediaPlayer2.Play...

510 lines
16 KiB
XML

<!DOCTYPE node PUBLIC
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
<node>
<!--
org.mpris.MediaPlayer2:
@short_description: Media Player Remote Interfacing Specification
The Media Player Remote Interfacing Specification is a standard
D-Bus interface which aims to provide a common programmatic API
for controlling media players.
This interface implements the methods for querying and providing
basic control over what is currently playing.
-->
<interface name="org.mpris.MediaPlayer2.Player">
<!--
Next:
Skips to the next track in the tracklist.
If there is no next track (and endless playback and track repeat
are both off), stop playback.
If playback is paused or stopped, it remains that way.
If CanGoNext is false, attempting to call this method should
have no effect.
-->
<method name="Next"/>
<!--
Previous:
Skips to the previous track in the tracklist.
If there is no previous track (and endless playback and track
repeat are both off), stop playback.
If playback is paused or stopped, it remains that way.
If CanGoPrevious is false, attempting to call this method should
have no effect.
-->
<method name="Previous"/>
<!--
Pause:
Pauses playback.
If playback is already paused, this has no effect.
Calling Play after this should cause playback to start again
from the same position.
If CanPause is false, attempting to call this method should have
no effect.
-->
<method name="Pause"/>
<!--
PlayPause:
Pauses playback.
If playback is already paused, resumes playback.
If playback is stopped, starts playback.
If CanPause is false, attempting to call this method should have
no effect and raise an error.
-->
<method name="PlayPause"/>
<!--
Stop:
Stops playback.
If playback is already stopped, this has no effect.
Calling Play after this should cause playback to start again
from the beginning of the track.
If CanControl is false, attempting to call this method should
have no effect and raise an error.
-->
<method name="Stop"/>
<!--
Play:
Starts or resumes playback.
If already playing, this has no effect.
If paused, playback resumes from the current position.
If there is no track to play, this has no effect.
If CanPlay is false, attempting to call this method should have
no effect.
-->
<method name="Play"/>
<!--
Seek:
@Offset: The number of microseconds to seek forward.
Seeks forward in the current track by the specified number of
microseconds.
A negative value seeks back. If this would mean seeking back
further than the start of the track, the position is set to 0.
If the value passed in would mean seeking beyond the end of the
track, acts like a call to Next.
If the CanSeek property is false, this has no effect.
-->
<method name="Seek">
<arg type="x" direction="in" name="Offset"/>
<!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
</method>
<!--
SetPosition:
@TrackId: The currently playing track's identifier.
If this does not match the id of the currently-playing
track, the call is ignored as "stale".
/org/mpris/MediaPlayer2/TrackList/NoTrack is not a
valid value for this argument.
@Position: Track position in microseconds.
This must be between 0 and <track_length>.
Seeks forward in the current track by the specified number of
microseconds.
A negative value seeks back. If this would mean seeking back
further than the start of the track, the position is set to 0.
If the value passed in would mean seeking beyond the end of the
track, acts like a call to Next.
If the CanSeek property is false, this has no effect.
-->
<method name="SetPosition">
<arg type="o" direction="in" name="TrackId"/>
<!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Track_Id"/ -->
<arg type="x" direction="in" name="Position"/>
<!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
</method>
<!--
OpenUri:
@TrackId: Uri of the track to load. Its uri scheme should be an
element of the
org.mpris.MediaPlayer2.SupportedUriSchemes property
and the mime-type should match one of the elements of
the org.mpris.MediaPlayer2.SupportedMimeTypes.
Opens the Uri given as an argument
If the playback is stopped, starts playing
If the uri scheme or the mime-type of the uri to open is not
supported, this method does nothing and may raise an error. In
particular, if the list of available uri schemes is empty, this
method may not be implemented.
Clients should not assume that the Uri has been opened as soon
as this method returns. They should wait until the mpris:trackid
field in the Metadata property changes.
If the media player implements the TrackList interface, then the
opened track should be made part of the tracklist, the
org.mpris.MediaPlayer2.TrackList.TrackAdded or
org.mpris.MediaPlayer2.TrackList.TrackListReplaced signal should
be fired, as well as the
org.freedesktop.DBus.Properties.PropertiesChanged signal on the
tracklist interface.
-->
<method name="OpenUri">
<arg type="s" direction="in" name="Uri"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QUrl"/>
</method>
<!--
Seeked:
@Position: The new position, in microseconds.
Indicates that the track position has changed in a way that is
inconsistant with the current playing state.
When this signal is not received, clients should assume that:
* When playing, the position progresses according to the rate
property.
* When paused, it remains constant.
This signal does not need to be emitted when playback starts or
when the track changes, unless the track is starting at an
unexpected position. An expected position would be the last
known one when going from Paused to Playing, and 0 when going
from Stopped to Playing.
-->
<signal name="Seeked">
<arg type="x" direction="out" name="Position"/>
<!-- annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="Time_In_Us"/ -->
</signal>
<!--
PlaybackStatus:
The current playback status.
May be "Playing", "Paused" or "Stopped".
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="PlaybackStatus" type="s" access="read">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Status"/ -->
</property>
<!--
LoopStatus:
The current loop / repeat status
May be:
* "None" if the playback will stop when there are no more
tracks to play
* "Track" if the current track will start again from the
begining once it has finished playing
* "Playlist" if the playback loops through a list of tracks
If CanControl is false, attempting to set this property should
have no effect and raise an error.
This property is optional. Clients should handle its absence
gracefully.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="LoopStatus" type="s" access="readwrite">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Loop_Status"/ -->
</property>
<!--
Rate:
The current playback rate.
The value must fall in the range described by MinimumRate and
MaximumRate, and must not be 0.0. If playback is paused, the
PlaybackStatus property should be used to indicate this. A value
of 0.0 should not be set by the client. If it is, the media
player should act as though Pause was called.
If the media player has no ability to play at speeds other than
the normal playback rate, this must still be implemented, and
must return 1.0. The MinimumRate and MaximumRate properties must
also be set to 1.0.
Not all values may be accepted by the media player. It is left
to media player implementations to decide how to deal with
values they cannot use; they may either ignore them or pick a
"best fit" value. Clients are recommended to only use sensible
fractions or multiples of 1 (eg: 0.5, 0.25, 1.5, 2.0, etc).
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="Rate" type="d" access="readwrite">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
</property>
<!--
Shuffle:
A value of false indicates that playback is progressing linearly
through a playlist, while true means playback is progressing
through a playlist in some other order.
If CanControl is false, attempting to set this property should
have no effect and raise an error.
This property is optional. Clients should handle its absence
gracefully.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="Shuffle" type="b" access="readwrite"/>
<!--
Metadata:
The metadata of the current element.
If there is a current track, this must have a "mpris:trackid"
entry (of D-Bus type "o") at the very least, which contains a
D-Bus path that uniquely identifies this track.
See the type documentation for more details.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="Metadata" type="a{sv}" access="read">
<annotation name="org.qtproject.QtDBus.QtTypeName" value="QVariantMap"/>
</property>
<!--
Volume:
The volume level.
When setting, if a negative value is passed, the volume should
be set to 0.0.
If CanControl is false, attempting to set this property should
have no effect and raise an error.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="Volume" type="d" access="readwrite">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Volume"/ -->
</property>
<!--
Position:
The current track position in microseconds, between 0 and the
'mpris:length' metadata entry (see Metadata).
Note: If the media player allows it, the current playback
position can be changed either the SetPosition method or the
Seek method on this interface.If this is not the case, the
CanSeek property is false, and setting this property has no
effect and can raise an error.
If the playback progresses in a way that is inconstistant with
the Rate property, the Seeked signal is emited.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is not
emitted with the new value.
-->
<property name="Position" type="x" access="read">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Time_In_Us"/ -->
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
</property>
<!--
MinimumRate:
The minimum value which the Rate property can take. Clients
should not attempt to set the Rate property below this value.
Note that even if this value is 0.0 or negative, clients should
not attempt to set the Rate property to 0.0.
This value should always be 1.0 or less.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="MinimumRate" type="d" access="read">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
</property>
<!--
MaximumRate:
The maximum value which the Rate property can take. Clients
should not attempt to set the Rate property above this value.
This value should always be 1.0 or greater.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="MaximumRate" type="d" access="read">
<!-- annotation name="org.qtproject.QtDBus.QtTypeName" value="Playback_Rate"/ -->
</property>
<!--
CanGoNext:
Whether the client can call the Next method on this interface
and expect the current track to change.
If it is unknown whether a call to Next will be successful (for
example, when streaming tracks), this property should be set to
true.
If CanControl is false, this property should also be false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="CanGoNext" type="b" access="read"/>
<!--
CanGoPrevious:
Whether the client can call the Previous method on this
interface and expect the current track to change.
If it is unknown whether a call to Previous will be successful
(for example, when streaming tracks), this property should be
set to true.
If CanControl is false, this property should also be false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="CanGoPrevious" type="b" access="read"/>
<!--
CanPlay:
Whether playback can be started using Play or PlayPause.
Note that this is related to whether there is a "current track":
the value should not depend on whether the track is currently
paused or playing. In fact, if a track is currently playing (and
CanControl is true), this should be true.
If CanControl is false, this property should also be false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="CanPlay" type="b" access="read"/>
<!--
CanPause:
Whether playback can be paused using Pause or PlayPause.
Note that this is an intrinsic property of the current track:
its value should not depend on whether the track is currently
paused or playing. In fact, if playback is currently paused (and
CanControl is true), this should be true.
If CanControl is false, this property should also be false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="CanPause" type="b" access="read"/>
<!--
CanSeek:
Whether the client can control the playback position using Seek
and SetPosition. This may be different for different tracks.
If CanControl is false, this property should also be false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is
emitted with the new value.
-->
<property name="CanSeek" type="b" access="read"/>
<!--
CanControl:
Whether the media player may be controlled over this interface.
This property is not expected to change, as it describes an
intrinsic capability of the implementation.
If this is false, clients should assume that all properties on
this interface are read-only (and will raise errors if writing
to them is attempted), no methods are implemented and all other
properties starting with "Can" are also false.
When this property changes, the
org.freedesktop.DBus.Properties.PropertiesChanged signal is not
emitted with the new value.
-->
<property name="CanControl" type="b" access="read">
<annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
</property>
</interface>
</node>