pipewire/src/dbus/org.pulsevideo.xml

194 lines
6.5 KiB
XML
Raw Normal View History

2015-04-21 16:02:40 +02:00
<!DOCTYPE node PUBLIC
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" >
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.pulsevideo.Daemon1:
@short_description: Main interface for the pulsevideo daemon
Interface to get properties from the pulsevideo daemon and to
establish a client connection.
-->
2015-04-16 16:58:33 +02:00
<interface name='org.pulsevideo.Daemon1'>
2015-04-21 16:02:40 +02:00
<!-- UserName: Name of the user that started the daemon -->
2015-04-16 16:58:33 +02:00
<property name='UserName' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- HostName: Name of the machine the daemon is running on -->
2015-04-16 16:58:33 +02:00
<property name='HostName' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Version: Version of the daemon -->
2015-04-16 16:58:33 +02:00
<property name='Version' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Name: Name of the daemon -->
2015-04-16 16:58:33 +02:00
<property name='Name' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Properties: Extra properties of the daemon -->
2015-04-16 16:58:33 +02:00
<property name='Properties' type='a{sv}' access='read' />
2015-04-21 16:02:40 +02:00
<!-- ConnectClient:
@properties: properties of the client
@client: a new client object
Register a client to the pulsevideo daemon. A new client object
will be generated that should be used to perform any other
action on the server.
-->
2015-04-16 16:58:33 +02:00
<method name='ConnectClient'>
<arg type='a{sv}' name='properties' direction='in'/>
<arg type='o' name='client' direction='out'/>
</method>
</interface>
2015-04-21 16:02:40 +02:00
<!--
org.pulsevideo.Client1:
@short_description: Main client interface
Interface obtained after connecting a client and allows for
obtaining an output object from a source.
-->
2015-04-16 16:58:33 +02:00
<interface name='org.pulsevideo.Client1'>
2015-04-21 16:02:40 +02:00
<!-- Name: Name of the client -->
2015-04-16 16:58:33 +02:00
<property name='Name' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Name: Properties of the client -->
2015-04-16 16:58:33 +02:00
<property name='Properties' type='a{sv}' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Disconnect:
Disconnect the client from the server.
-->
<method name='Disconnect'/>
<!-- CreateSourceOutput:
@source: the Source1 object path or / for default
@incaps: input capabilities
@output: the SourceOutput1 object path
Create a new output for @source with given @incaps
-->
<method name='CreateSourceOutput'>
<arg type='o' name='source' direction='in'/>
<arg type='s' name='accepted_formats' direction='in'/>
<arg type='o' name='output' direction='out'/>
</method>
<!-- CreateSourceInput:
@incaps: input capabilities
@input: the SourceInput1 object path
Create a new source and input object with given @incaps
-->
<method name='CreateSourceInput'>
<arg type='s' name='possible_formats' direction='in'/>
<arg type='o' name='input' direction='out'/>
</method>
2015-04-16 16:58:33 +02:00
</interface>
2015-04-21 16:02:40 +02:00
<!--
org.pulsevideo.Introspect:
@short_description: Main introspection interface
This interface allows one to introspect the object on the
server
-->
2015-04-16 16:58:33 +02:00
<interface name='org.pulsevideo.Introspect1'>
2015-04-21 16:02:40 +02:00
<!-- GetClients:
@clients: an array of client objects
Get a list of clients connected to this server
-->
2015-04-16 16:58:33 +02:00
<method name='GetClients'>
<arg type='ao' name='clients' direction='out'/>
</method>
2015-04-21 16:02:40 +02:00
<!-- GetSources:
@sources: an array of source objects
Get a list of sources available on this server
-->
2015-04-16 16:58:33 +02:00
<method name='GetSources'>
<arg type='ao' name='sources' direction='out'/>
</method>
</interface>
2015-04-21 16:02:40 +02:00
<!--
org.pulsevideo.Source1:
@short_description: Main source interface
A source is an object that can provide media content.
-->
2015-04-16 16:58:33 +02:00
<interface name='org.pulsevideo.Source1'>
2015-04-21 16:02:40 +02:00
<!-- Name: the name of the source -->
2015-04-16 16:58:33 +02:00
<property name='Name' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Properties: extra source properties -->
2015-04-16 16:58:33 +02:00
<property name='Properties' type='a{sv}' access='read' />
<!-- state: state of the source
0 = the source is in error
1 = the source is initializing
2 = the source is suspended, this means the device is closed
3 = the source is idle, this means the device is opened but
no source-output is consuming the data
4 = the source is running
-->
<property name='State' type='u' access='read' />
<!-- Capabilities:
2015-04-21 16:02:40 +02:00
The capabilities of this source. This includes
supported data formats and transports.
2015-04-21 16:02:40 +02:00
-->
<property name='PossibleFormats' type='s' access='read' />
2015-04-16 16:58:33 +02:00
</interface>
2015-04-21 16:02:40 +02:00
<!--
org.pulsevideo.SourceOutput1:
@short_description: Interface for source output
This interface is used to control the output of a source and
start/stop the media transport.
-->
2015-04-16 16:58:33 +02:00
<interface name='org.pulsevideo.SourceOutput1'>
<!-- Client: the owner client of this source output -->
<property name='Client' type='o' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Source: the source of this source output -->
<property name='Source' type='o' access='read' />
<!-- Capabilities: capabilities of the source output -->
<property name='PossibleFormats' type='s' access='read' />
2015-04-21 16:02:40 +02:00
<!-- Start:
@incaps: input capabilities
2015-04-21 16:02:40 +02:00
@fd: output file descriptor
@outcaps: output capabilities
2015-04-21 16:02:40 +02:00
Start the datatransfer of the source with @incaps.
2015-04-21 16:02:40 +02:00
The result is a file descriptor that can be used to get metadata
and media. @outcaps contains the final media format and transport
2015-04-21 16:02:40 +02:00
properties.
-->
<method name='Start'>
<arg type='s' name='requested_format' direction='in'/>
2015-04-16 16:58:33 +02:00
<arg type='h' name='fd' direction='out'/>
<arg type='s' name='format' direction='out'/>
2015-04-16 16:58:33 +02:00
</method>
2015-04-21 16:02:40 +02:00
<!-- Stop:
Stop data transport
-->
<method name='Stop'/>
2015-04-21 16:02:40 +02:00
<!-- Remove:
Remove the source output
-->
<method name='Remove'/>
2015-04-16 16:58:33 +02:00
2015-04-21 16:02:40 +02:00
<!-- This is a possible push based API. It would require a dbus call
for each media packet, which is probably not a good idea right now.
We would probably also want something more lightweight for sending
the properties with each fd.
2015-04-16 16:58:33 +02:00
<method name='Start'>
<arg type='a{sv}' name='props' direction='in'/>
<arg type='a{sv}' name='props' direction='out'/>
</method>
<method name='Stop'>
</method>
<signal name='NewData'>
<arg type='h' name='data' direction='out'/>
<arg type='a{sv}' name='props' direction='out'/>
</signal>
<method name='FreeData'>
<arg type='h' name='data' direction='in'/>
</method>
-->
</interface>
</node>