Friday, October 09, 2009

KIO::UPnP

I've started a new project on gitorious, KIO::UPnP.
Originally wanted to upload it to svn but discovered I lost my account's password. Expecting KDE to move to gitorious soon anyway (hint!).

This code has been in development for a long time, started at the first UPnP Developers Sprint in Paris back in May, by Ade and me.
Then it slumbered a bit on my hard-drive, and grew a bit on Ade's as it seems. Because of Ade's various other projects I took it over from him some months ago. But because of all my various other projects it took until the 2nd UPnP sprint last weekend for me to touch it again.
Friedrich's network:// kio-slave also lists upnp devices but from a higher view. He lists all UPnP devices with any services but will forward to upnp:// when you click a upnp-mediaserver entry.

The project goals as so concisely written on the projects wiki:

Create a UPnP kio slave that will connect to a UPnP Media Server to interact with content on it.

Supported actions depend on the servers capabilities:
– Browse
– Search
– Upload
– Edit


For most UPnP servers you should only expect the browse though.

The ultimate goals of the upnp kio-slave is to be used as the base for an Amarok Collection. There I'll have to do some trickery to allow even the simplest servers to be searched. Thankfully the MemoryCollection and MemoryQueryMaker will help me there.

For now I'm stuck at demarshaling DBus reponses from Coherences org.DLNA.DMS.CDS.Browse. I think there are just to many levels of DBus variants (variant which is an array of variants that holds an array of dict entries which are string,variant v[av[a{sv}]] ). Frank is fixing that for me this weekend though (should be aa{sv}).

So now it's out there in a conveniently collaborative form, don't be afraid to help me out.