Hi,
I was playing around with the extensions framework (http://wiki.openmoko.org/wiki/Wishlist:Extension_Framework) over the weekend and have put together a proof of concept for the idea. The packages are not currently designed to run on the openmoko or integrate with the build process but on a standard linux distribution (until I get a 'phone, anyway). The distribution consists of three separate packages:

   * openmoko-extensionhandler - receives extension requests and passes
     them through the chain of extensions registered for that request
   * openmoko-extension-sample - sample extension that changes the
     parameters of an outgoing call
   * fakegsmd - simple client that generates an extension request for
     an outgoing call (as would be expected to be generated by gsmd)

To use this ./autogen.sh each directory and make it. Start the extension handler and sample extension manually (in the 'real' world we'll use services to start them) and then run fakegsmd as required to see the sample extension in action (hint: the sample extension does different things to the outgoing call each 15 seconds).

At current the extension handler is a simple beast in that it only knows about the single 'OutgoingCall' method from gsmd and is hard-coded to talk to the sample extension. In a final design all of the decisions about which extensions to access, which functions they contain, etc. would be dynamic to allow for easy insertion/update/removal of extensions.

I've tried to concentrate on the design of the extension so that it is as simple as possible for people to start building their own extensions. They don't need to do a lot more than lookup the piece of openmoko they want to extend (which requires a list of supported requests, either on the wiki or available fromt he extension handler), create the function and change a couple of entries in a .h file. By keeping this part simple it is hoped that extension developers can focus on their extensions rather than the internals of openmoko.

Anyway, if people would like to take a look at this it is available at http://www.devzero.net/openmoko/dist/omext.tar.gz - please give it a go and let me know what you think.

Cheers,
Jim.

Reply via email to