UPnP <-> D-Bus pontoon (*)
D-Bus support within Coherence will be divided into two parts:
- accessing UPnP devices and services via D-Bus as a client
- notification about the emergence of new devices and their disappearance
- access to the API of the Coherence service clients, for instance the Browse method of the ContentDirectoryService
- signaling of UPnP service StateVariable changes
There I'm think off two ways to achieve this:
- a dedicated plugin for each backend that proxies the UPnP action to their respective backend method, like we do this already for instance in the Elisa backend, using Twisted Perspective Broker as RPC protocol.
- a generic D-Bus hooking-in system, that can be used to initiate a UPnP device creation via DBus and to tell Coherence which DBus methods should be called on recieving an UPnP action request
The second one I'm still contemplating about on how to implement it in a plain and standard style, that allows an application to ask Coherence to create an UPnP device with its services - not only an A/V device, but others too, even non-standard ones - to publish so far locally restricted D-Bus services out onto the network.
* It is no full bridge yet - at least not in my opinion, at the moment it is more looking like something really simple timbered together. ;-)