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">
|
|
|
|
|
<!--
|
2015-06-30 18:06:36 +02:00
|
|
|
org.pinos.Daemon1:
|
|
|
|
|
@short_description: Main interface for the pinos daemon
|
2015-04-21 16:02:40 +02:00
|
|
|
|
2015-06-30 18:06:36 +02:00
|
|
|
Interface to get properties from the pinos daemon and to
|
2015-04-21 16:02:40 +02:00
|
|
|
establish a client connection.
|
|
|
|
|
-->
|
2015-06-30 18:06:36 +02:00
|
|
|
<interface name='org.pinos.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-07-17 16:57:01 +02:00
|
|
|
<!-- Cookie: A random cookie for identifying this instance of Pinos -->
|
|
|
|
|
<property name='Cookie' type='u' 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
|
|
|
|
|
|
2015-06-30 18:06:36 +02:00
|
|
|
Register a client to the pinos daemon. A new client object
|
2015-04-21 16:02:40 +02:00
|
|
|
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
|
|
|
<!--
|
2015-06-30 18:06:36 +02:00
|
|
|
org.pinos.Client1:
|
2015-04-21 16:02:40 +02:00
|
|
|
@short_description: Main client interface
|
|
|
|
|
|
|
|
|
|
Interface obtained after connecting a client and allows for
|
2016-05-03 18:00:56 +02:00
|
|
|
obtaining an channel object from a source/sink.
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2015-06-30 18:06:36 +02:00
|
|
|
<interface name='org.pinos.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'/>
|
2016-05-03 18:00:56 +02:00
|
|
|
<!-- CreateSourceChannel:
|
2015-05-11 16:08:34 +02:00
|
|
|
@source: the Source1 object path or / for default
|
2016-05-03 18:00:56 +02:00
|
|
|
@possible_formats: the possible formats that can be accepted
|
2015-07-28 17:05:03 +02:00
|
|
|
@properties: extra properties
|
2016-05-03 18:00:56 +02:00
|
|
|
@channel: the Channel object path
|
2015-05-11 16:08:34 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
Create a new channel to capture from @source with given @possible_formats
|
2015-05-11 16:08:34 +02:00
|
|
|
-->
|
2016-05-03 18:00:56 +02:00
|
|
|
<method name='CreateSourceChannel'>
|
2015-05-20 12:01:13 +02:00
|
|
|
<arg type='s' name='source' direction='in'/>
|
2016-05-03 18:00:56 +02:00
|
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
|
|
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
|
|
|
<arg type='o' name='channel' direction='out'/>
|
|
|
|
|
</method>
|
|
|
|
|
|
|
|
|
|
<!-- CreateSinkChannel:
|
|
|
|
|
@sink: the Sink1 object path or / for default
|
|
|
|
|
@possible_formats: the possible formats that can be provided
|
|
|
|
|
@properties: extra properties
|
|
|
|
|
@channel: the Channel object path
|
|
|
|
|
|
|
|
|
|
Create a new channel to playback to @sink with given @possible_formats
|
|
|
|
|
-->
|
|
|
|
|
<method name='CreateSinkChannel'>
|
|
|
|
|
<arg type='s' name='sink' direction='in'/>
|
|
|
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
2015-07-28 17:05:03 +02:00
|
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
2016-05-03 18:00:56 +02:00
|
|
|
<arg type='o' name='channel' direction='out'/>
|
2015-05-11 16:08:34 +02:00
|
|
|
</method>
|
2016-05-03 18:00:56 +02:00
|
|
|
<!-- CreateUploadChannel:
|
2015-05-15 16:41:53 +02:00
|
|
|
@possible_formats: the formats that can be provided
|
2015-07-28 17:05:03 +02:00
|
|
|
@properties: extra properties
|
2016-05-03 18:00:56 +02:00
|
|
|
@channel: the Channel object path
|
2015-05-11 18:23:24 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
Create a new channel to upload a new stream
|
2015-05-11 18:23:24 +02:00
|
|
|
-->
|
2016-05-03 18:00:56 +02:00
|
|
|
<method name='CreateUploadChannel'>
|
2015-05-14 17:46:12 +02:00
|
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
2015-07-28 17:05:03 +02:00
|
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
2016-05-03 18:00:56 +02:00
|
|
|
<arg type='o' name='channel' direction='out'/>
|
2015-05-11 18:23:24 +02:00
|
|
|
</method>
|
2016-05-03 18:00:56 +02:00
|
|
|
|
2015-04-16 16:58:33 +02:00
|
|
|
</interface>
|
|
|
|
|
|
2015-04-21 16:02:40 +02:00
|
|
|
<!--
|
2015-06-30 18:06:36 +02:00
|
|
|
org.pinos.Source1:
|
2015-04-21 16:02:40 +02:00
|
|
|
@short_description: Main source interface
|
|
|
|
|
|
|
|
|
|
A source is an object that can provide media content.
|
|
|
|
|
-->
|
2015-06-30 18:06:36 +02:00
|
|
|
<interface name='org.pinos.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' />
|
2015-04-27 09:05:14 +02:00
|
|
|
<!-- state: state of the source
|
2015-08-04 15:59:36 +02:00
|
|
|
-1 = the source is in error
|
|
|
|
|
0 = the source is suspended, this means the device is closed
|
2015-04-27 09:05:14 +02:00
|
|
|
1 = the source is initializing
|
2015-08-04 15:59:36 +02:00
|
|
|
2 = the source is idle, this means the device is opened but
|
2016-05-03 18:00:56 +02:00
|
|
|
no channel is consuming the data
|
2015-08-04 15:59:36 +02:00
|
|
|
3 = the source is running
|
2015-04-27 09:05:14 +02:00
|
|
|
-->
|
|
|
|
|
<property name='State' type='u' access='read' />
|
2015-05-15 16:41:53 +02:00
|
|
|
<!-- PossibleFormats:
|
2015-04-21 16:02:40 +02:00
|
|
|
|
2015-05-15 16:41:53 +02:00
|
|
|
The all possible formats of this source.
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2015-05-14 17:46:12 +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
|
|
|
<!--
|
2016-05-03 18:00:56 +02:00
|
|
|
org.pinos.Sink1:
|
|
|
|
|
@short_description: Main sink interface
|
2015-04-21 16:02:40 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
A sink is an object that can consume media content.
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2016-05-03 18:00:56 +02:00
|
|
|
<interface name='org.pinos.Sink1'>
|
|
|
|
|
<!-- Name: the name of the sink -->
|
|
|
|
|
<property name='Name' type='s' access='read' />
|
|
|
|
|
<!-- Properties: extra sink properties -->
|
|
|
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
|
|
|
<!-- state: state of the sink
|
|
|
|
|
-1 = the sink is in error
|
|
|
|
|
0 = the sink is suspended, this means the device is closed
|
|
|
|
|
1 = the sink is initializing
|
|
|
|
|
2 = the sink is idle, this means the device is opened but
|
|
|
|
|
no channel is providing any data
|
|
|
|
|
3 = the sink is running
|
|
|
|
|
-->
|
|
|
|
|
<property name='State' type='u' access='read' />
|
|
|
|
|
<!-- PossibleFormats:
|
|
|
|
|
|
|
|
|
|
The all possible formats of this sink.
|
|
|
|
|
-->
|
|
|
|
|
<property name='PossibleFormats' type='s' access='read' />
|
|
|
|
|
</interface>
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
org.pinos.Channel:
|
|
|
|
|
@short_description: Interface for input/output channel
|
|
|
|
|
|
|
|
|
|
This interface is used to control the input/output of a
|
|
|
|
|
source/sink and start/stop the media transport.
|
|
|
|
|
-->
|
|
|
|
|
<interface name='org.pinos.Channel1'>
|
|
|
|
|
<!-- Client: the owner client of this channel -->
|
2015-05-14 17:46:12 +02:00
|
|
|
<property name='Client' type='o' access='read' />
|
2016-05-03 18:00:56 +02:00
|
|
|
<!-- Owner: the owner source/sink of this channel -->
|
|
|
|
|
<property name='Owner' type='o' access='read' />
|
|
|
|
|
<!-- type: type of the channel
|
|
|
|
|
0 = input channel
|
|
|
|
|
1 = output channel
|
|
|
|
|
-->
|
|
|
|
|
<property name='Type' type='u' access='read' />
|
2015-05-15 16:41:53 +02:00
|
|
|
<!-- PossibleFormats:
|
2016-05-03 18:00:56 +02:00
|
|
|
all possible formats of the channel. This is filtered
|
|
|
|
|
against the accepted_formats when creating the channel.
|
2015-05-15 16:41:53 +02:00
|
|
|
-->
|
2015-05-14 17:46:12 +02:00
|
|
|
<property name='PossibleFormats' type='s' access='read' />
|
2015-07-28 17:05:03 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
<!-- Properties: extra channel properties -->
|
2015-07-28 17:05:03 +02:00
|
|
|
<property name='Properties' type='a{sv}' access='read' />
|
2015-08-04 15:59:36 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
<!-- state: state of the channel
|
|
|
|
|
-1 = the channel is in error
|
|
|
|
|
0 = the channel is idle
|
|
|
|
|
1 = the channel is starting
|
|
|
|
|
2 = the channel is streaming
|
2015-08-04 15:59:36 +02:00
|
|
|
-->
|
|
|
|
|
<property name='State' type='u' access='read' />
|
|
|
|
|
<!-- Format: the current streaming format -->
|
|
|
|
|
<property name='Format' type='s' access='read' />
|
|
|
|
|
|
2015-04-21 16:02:40 +02:00
|
|
|
<!-- Start:
|
2015-05-15 16:41:53 +02:00
|
|
|
@requested_format: requested formats
|
2015-04-21 16:02:40 +02:00
|
|
|
@fd: output file descriptor
|
2016-05-03 18:00:56 +02:00
|
|
|
@format: channel format
|
|
|
|
|
@properties: channel properties
|
2015-04-21 16:02:40 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
Start the datatransfer on the channel with @requested_format.
|
2015-06-30 18:06:36 +02:00
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
The result is a file descriptor that can be used to send/receive
|
|
|
|
|
metadata and media. @format contains the final media format and
|
|
|
|
|
@properties the extra properties that describe the media format.
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2015-04-17 17:27:26 +02:00
|
|
|
<method name='Start'>
|
2015-05-14 17:46:12 +02:00
|
|
|
<arg type='s' name='requested_format' direction='in'/>
|
2015-04-16 16:58:33 +02:00
|
|
|
<arg type='h' name='fd' direction='out'/>
|
2015-05-14 17:46:12 +02:00
|
|
|
<arg type='s' name='format' direction='out'/>
|
2015-08-21 11:45:38 +02:00
|
|
|
<arg type='a{sv}' name='properties' direction='out'/>
|
2015-04-16 16:58:33 +02:00
|
|
|
</method>
|
2015-04-21 16:02:40 +02:00
|
|
|
<!-- Stop:
|
|
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
Stop data transport on the channel
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2015-04-17 17:27:26 +02:00
|
|
|
<method name='Stop'/>
|
2015-04-21 16:02:40 +02:00
|
|
|
<!-- Remove:
|
|
|
|
|
|
2016-05-03 18:00:56 +02:00
|
|
|
Remove the channel
|
2015-04-21 16:02:40 +02:00
|
|
|
-->
|
2015-04-17 17:27:26 +02:00
|
|
|
<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>
|