Dialer DBus Interface

Thomas Wood thomas at openedhand.com
Fri Jun 15 13:31:02 CEST 2007


Hi,

Currently, the openmoko-dialer is a standalone program which uses a
basic method to make sure it remains single-instance. It is
'self-contained' and other programs cannot pass data to the running
instance.

We are going to modify the existing dialer code so it becomes a
DBus Service. This would involve a small amount of fiddling so that we
can wrap the Dialer into a GObject, and export that objects Method and
Signals over the bus.

For the small amount of work, we gain some huge benefits:

1. The dialer is automatically single-instance, using the usual DBus
method of checking if there is already an object using the namespace.

2. The dialer can export some much needed methods over the bus, such as:
	* Dial (): Which can be used by other applications to present 
	  the dialer and make it begin dialing the specified number.
	  This is required by the Contacts application (inc. bug #591).

	* HangUp (): Is something that maybe useful to make sure that
	  the dialer has cleanly finished a call, if, for instance the
	  battery is running out. (it may just show a warning to the 
	  user, rather than actually hanging up the call).

	* ShowDialer (): Which, of course, would present the main
	  dialer window to the user. 

	* ShowMissedCalls (): Which is currently implemented by a 
	  command-line option, specifically for the Today application.

	* Status (): Which can let applications know of the current 
	  status of the dialer, so, for instance, if Contacts knows that
	  there is a call going-on, it could construct its interface in
	  a way that would make it easier to see contact numbers etc.

3. We can implement signals within the dialer object which would allow
us to communicate the current state of the phone to other applications:

	* "incoming-call" & "dialing" signals. These could be used
	  (for example) by the music application to pause the currently
	  playing song.

	* A "hang-up" signal which would be emitted when all
	  connections are closed. Could then be used to resume the
	  song/video/etc.

	* A "talking" signal that a panel-applet can connect to, so it
	  is displayed the entire time during a call, so even if you 
	  start a new application, it can provide an easy way to switch
	  back to the dialer.

As you can see, in addition to consolidating some existing methods used
in the dialer, we can provide some extra functionality which could
increase the user experience while using the phone, and have a unified
method to access/manipulate the dialer's information.

Regards,

Neil J. Patel, Thomas Wood

--
OpenedHand Ltd.

Unit R Homesdale Business Center / 216-218 Homesdale Road /
Bromley / BR1 2QZ / UK             Tel: +44 (0)20 8819 6559

Expert Open Source For Consumer Devices - http://o-hand.com/
------------------------------------------------------------



More information about the framework-devel mailing list