support remote sources

Watch client object-manager and keep the remote source object in a
SourceProvider object. Keep a list of all sources in the daemon.

Handle the Client CreateSourceOutput by calling the method on a
registered source in the daemon.

Pass GDBusObject in the subscription signal so that we can get to more
details.
This commit is contained in:
Wim Taymans 2015-04-20 15:03:14 +02:00
parent 752494621c
commit 93c246c4ce
14 changed files with 531 additions and 70 deletions

View file

@ -35,14 +35,16 @@
<method name='GetClients'>
<arg type='ao' name='clients' direction='out'/>
</method>
<method name='GetProviders'>
<arg type='ao' name='providers' direction='out'/>
</method>
<method name='GetSources'>
<arg type='ao' name='sources' direction='out'/>
</method>
</interface>
<interface name='org.pulsevideo.SourceProvider1'>
<property name='Name' type='s' access='read' />
<property name='Path' type='o' access='read' />
</interface>
<interface name='org.pulsevideo.Source1'>
<property name='Name' type='s' access='read' />
<property name='Suspended' type='b' access='read' />
@ -52,7 +54,6 @@
<arg type='aa{sv}' name='caps' direction='out'/>
</method>
<method name='CreateSourceOutput'>
<arg type='o' name='source' direction='in'/>
<arg type='a{sv}' name='props' direction='in'/>
<arg type='o' name='output' direction='out'/>
</method>