Friday, July 31, 2009

Eupnp: last sprint

I just finished implementing the SCPD (service XML descriptor) parser, which leads me to the next phase: Control.

I'll be implementing Control in the next two weeks, which will be about using libcurl to perform HTTP POST calls with some attributes wrapped in a SOAP XML. The biggest problem about this is making libcurl work properly (I have just had two days debugging a stack corruption which lead nowhere, result is feature suspended).

Finished this task, I'll implement a simple application using elementary for listing local devices and information about them (i.e. universal control point). This is good to demonstrate functionality.

This will be followed by the control point A/V spec, task which hopefully I'll finish before GSoC pencil's down date (16 August).

Sunday, July 05, 2009

GSoC report on Eupnp

Though my release plan on the original schedule wasn't completely met on 30th June, I managed to finish some very important parts:

  • eupnp-core (code): virtual core module of the library, responsible for fd handling, timers and idlers. It's designed to make simple the integration with common event loops out there (ecore, gobject, qt). It's basically a mapping to event loop functions, see eupnp-ecore below.
  • eupnp-ecore (code): library that integrates eupnp with ecore event loop. Already contains a working example.
  • UPnP step 2, description: parsing device root XML description and services descriptions. This part is almost finished and will be followed by controlling devices (Step 3, SOAP support)
It's very likely that I'll finish SOAP support in these next two weeks. The other remaining task (event notification) will be easy to implement since most of the code is already done (HTTP message parser).

The second release will be using the library on end-user programs for controlling media devices and internet gateway devices (routers, etc). I hope I can finish this part on time and have more time for docs (which are already being written along with the code) and bug fixes.

Links:
Contact:
  • dieb_ @ irc.freenode.org #edevelop
  • andre.dieb at gmail.com