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

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

        * 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.


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/

Reply via email to