Changeset 3310


Ignore:
Timestamp:
10/31/07 14:49:04 (6 years ago)
Author:
thomas
Message:
  • configure.ac:
  • src/*:

Begin seperation of dialer and phone management

Location:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2
Files:
4 added
3 edited
25 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog

    r3306 r3310  
     12007-10-31  Thomas Wood <thomas@openedhand.com> 
     2 
     3        * configure.ac: 
     4        * src/*: 
     5 
     6        Begin seperation of dialer and phone management 
     7 
    182007-10-30  Thomas Wood  <thomas@openedhand.com> 
    29 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/configure.ac

    r3170 r3310  
    22AC_INIT(openmoko-dialer, 0.1, http://www.openmoko.org/) 
    33AM_INIT_AUTOMAKE() 
    4 AC_CONFIG_SRCDIR(src/dialer-main.c) 
     4AC_CONFIG_SRCDIR(src/phone-kit/dialer-main.c) 
    55AM_CONFIG_HEADER(config.h) 
    66AM_MAINTAINER_MODE 
     
    5353Makefile 
    5454src/Makefile 
     55src/common/Makefile 
     56src/dialer/Makefile 
     57src/phone-kit/Makefile 
    5558data/Makefile 
    5659]) 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/Makefile.am

    r3170 r3310  
    1 bin_PROGRAMS = openmoko-dialer 
    2  
    3 openmoko_dialer_SOURCES = \ 
    4         dialer-defines.h                \ 
    5         dialer-main.c                   \ 
    6         moko-contacts.c                 \ 
    7         moko-contacts.h                 \ 
    8         moko-dialer.c                   \ 
    9         moko-dialer.h                   \ 
    10         moko-dialer-glue.h              \ 
    11         moko-dialer-panel.c             \ 
    12         moko-dialer-panel.h             \ 
    13         moko-dialer-textview.c          \ 
    14         moko-dialer-textview.h          \ 
    15         moko-digit-button.c             \ 
    16         moko-digit-button.h             \ 
    17         moko-history.c                  \ 
    18         moko-history.h                  \ 
    19         moko-keypad.c                   \ 
    20         moko-keypad.h                   \ 
    21         moko-notify.c                   \ 
    22         moko-notify.h                   \ 
    23         moko-talking.c                  \ 
    24         moko-talking.h                  \ 
    25         moko-tips.c                     \ 
    26         moko-tips.h                     \ 
    27         moko-sound.c                    \ 
    28         moko-sound.h 
    29  
    30 openmoko_dialer_CPPFLAGS = -DDATADIR=\"$(datadir)\" \ 
    31               -DPKGDATADIR=\"$(pkgdatadir)\" 
    32 openmoko_dialer_CFLAGS = -Wall @DIALER_CFLAGS@ 
    33  
    34 openmoko_dialer_LDADD = @DIALER_LIBS@ 
    35  
    36 moko-dialer-glue.h: moko-dialer-dbus.xml 
    37         $(LIBTOOL) --mode=execute $(DBUS_GLIB_BIN)/dbus-binding-tool --prefix=moko_dialer --mode=glib-server --output=$@ $< 
    38          
    39 BUILT_SOURCES =                         \ 
    40         moko-dialer-glue.h 
    41  
    42 EXTRA_DIST =                            \ 
    43         moko-dialer-dbus.xml 
     1SUBDIRS = common dialer phone-kit 
    442 
    453 
    46  
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/dialer-main.c

    r3309 r3310  
    1919#include <dbus/dbus-glib.h> 
    2020#include <dbus/dbus-glib-bindings.h> 
     21#include <glib-object.h> 
    2122 
    2223#include <moko-stock.h> 
     
    2728#define DIALER_OBJECT "/org/openmoko/Dialer" 
    2829 
    29 static gboolean show_dialer; 
    30 static gboolean show_missed; 
    3130static gchar *number = NULL; 
    32  
    33 static GOptionEntry entries[] = { 
    34   {"show-dialer", 's', 0, G_OPTION_ARG_NONE, &show_dialer, 
    35    "Show the dialer at startup", "N"}, 
    36  
    37   {"show-missed", 'm', 0, G_OPTION_ARG_NONE, &show_missed, 
    38    "Show the history window filtered by the missed, none.", "N"}, 
    39    
    40   {"dial", 'd', 0, G_OPTION_ARG_STRING, &number, 
    41    "Dial the specified number.", "N"}, 
    42  
    43   {NULL} 
    44 }; 
    45  
    46  
    47 static void 
    48 _show_dialer (DBusGConnection *conn) 
    49 { 
    50   DBusGProxy *proxy = NULL; 
    51   GError *error = NULL; 
    52  
    53   proxy = dbus_g_proxy_new_for_name (conn, 
    54                                       DIALER_NAMESPACE, 
    55                                       DIALER_OBJECT, 
    56                                       DIALER_NAMESPACE); 
    57  
    58   if (!proxy) 
    59     return; 
    60    
    61   dbus_g_proxy_call (proxy, "ShowDialer", &error, 
    62                      G_TYPE_INVALID, G_TYPE_INVALID); 
    63   if (error) 
    64     g_warning (error->message); 
    65  
    66 } 
    67  
    68 static void 
    69 _show_missed (DBusGConnection *conn) 
    70 { 
    71   DBusGProxy *proxy = NULL; 
    72   GError *error = NULL; 
    73  
    74   proxy = dbus_g_proxy_new_for_name (conn, 
    75                                       DIALER_NAMESPACE, 
    76                                       DIALER_OBJECT, 
    77                                       DIALER_NAMESPACE); 
    78  
    79   if (!proxy) 
    80     return; 
    81    
    82   dbus_g_proxy_call (proxy, "ShowMissedCalls", &error, 
    83                      G_TYPE_INVALID, G_TYPE_INVALID); 
    84   if (error) 
    85     g_warning (error->message); 
    86  
    87 } 
    8831 
    8932static void 
     
    10851 
    10952} 
     53 
    11054int 
    11155main (int argc, char **argv) 
     
    11660  GError *error = NULL; 
    11761  guint32 ret; 
    118   /*gchar *out = NULL, *err = NULL;*/ 
    119  
    120   if (argc != 1) 
    121   { 
    122     /* Add init code. */ 
    123     GError *error = NULL; 
    124     GOptionContext *context = g_option_context_new (""); 
    125  
    126     g_option_context_add_main_entries (context, entries, NULL); 
    127     g_option_context_add_group (context, gtk_get_option_group (TRUE)); 
    128     g_option_context_parse (context, &argc, &argv, &error); 
    129  
    130     g_option_context_free (context); 
    131   } 
    13262 
    13363  /* initialise type system */ 
     
    16292  if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) 
    16393  { 
    164     /* Someone else hase registered the object */ 
    165  
    166     if (show_missed) 
    167       _show_missed (connection); 
    168     else if (number) 
     94    /* Someone else has registered the object */ 
     95    if (number) 
    16996      _dial_number (connection); 
    170     else 
    171       _show_dialer (connection); 
    17297 
    17398    dbus_g_connection_unref (connection); 
     
    196121  if (number) 
    197122    moko_dialer_dial (dialer, number, NULL); 
    198   else if (show_missed) 
    199     moko_dialer_show_missed_calls (dialer, NULL); 
    200   else if (show_dialer) 
    201     moko_dialer_show_dialer (dialer, NULL); 
    202123 
    203124  gtk_main (); 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer-dbus.xml

    r3309 r3310  
    33<interface name="org.openmoko.Dialer"> 
    44<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="moko_dialer"/> 
    5          
    6         <method name="ShowDialer"> 
    7         </method> 
    8          
    9         <method name="ShowMissedCalls"> 
    10         </method> 
    11          
    125  <method name="GetStatus"> 
    136    <arg type="i" name="status" direction="out" /> 
     
    2215  </method> 
    2316 
    24         <signal name="IncomingCall"> 
    25                 <arg type="s" name="number"/> 
    26         </signal> 
    27         <signal name="OutgoingCall"> 
    28                 <arg type="s" name="number" /> 
    29         </signal> 
     17  <signal name="IncomingCall"> 
     18    <arg type="s" name="number"/> 
     19  </signal> 
     20  <signal name="OutgoingCall"> 
     21    <arg type="s" name="number" /> 
     22  </signal> 
    3023 
    31         <signal name="Talking"> 
    32         </signal> 
     24  <signal name="Talking"> 
     25  </signal> 
    3326 
    34         <signal name="HungUp"> 
    35         </signal> 
     27  <signal name="HungUp"> 
     28  </signal> 
    3629 
    37         <signal name="Rejected"> 
    38         </signal> 
     30  <signal name="Rejected"> 
     31  </signal> 
    3932 
    4033</interface> 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c

    r3309 r3310  
    3434 
    3535#include "moko-contacts.h" 
    36 #include "moko-history.h" 
    37 #include "moko-keypad.h" 
    3836#include "moko-notify.h" 
    3937#include "moko-talking.h" 
     
    4442#define MOKO_DIALER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE(obj, \ 
    4543        MOKO_TYPE_DIALER, MokoDialerPrivate)) 
    46  
    47 #define GSM_REGISTER_TIMEOUT 10000 /* Ten seconds after powering up */ 
    4844 
    4945struct _MokoDialerPrivate 
     
    8985static guint dialer_signals[LAST_SIGNAL] = {0, }; 
    9086 
    91 static void  on_keypad_dial_clicked (MokoKeypad  *keypad, 
    92                                      const gchar *number, 
    93                                      MokoDialer  *dialer); 
    94  
    9587/* DBus functions */ 
    96 gboolean 
    97 moko_dialer_show_dialer (MokoDialer *dialer, GError *error) 
    98 { 
    99   MokoDialerPrivate *priv; 
    100   g_return_val_if_fail (MOKO_IS_DIALER (dialer), FALSE); 
    101   priv = dialer->priv; 
    102   
    103   gtk_widget_show (priv->window); 
    104   gtk_window_present (GTK_WINDOW (priv->window)); 
    105   return TRUE; 
    106 } 
    107  
    108  
    109 gboolean 
    110 moko_dialer_show_missed_calls (MokoDialer *dialer, GError *error) 
    111 { 
    112   MokoDialerPrivate *priv; 
    113  
    114   g_return_val_if_fail (MOKO_IS_DIALER (dialer), FALSE); 
    115   priv = dialer->priv; 
    116    
    117   /* Filter history on missed calls */ 
    118    
    119   moko_history_set_filter (MOKO_HISTORY (priv->history), HISTORY_FILTER_MISSED); 
    120  
    121   gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), -1); 
    122    
    123   gtk_widget_show (priv->window); 
    124   gtk_window_present (GTK_WINDOW (priv->window)); 
    125  
    126   return TRUE; 
    127 } 
    12888 
    12989static gboolean 
     
    147107  g_return_val_if_fail (MOKO_IS_DIALER (dialer), FALSE); 
    148108  g_return_val_if_fail (number != NULL, FALSE); 
    149   g_return_val_if_fail (moko_dialer_show_dialer (dialer, NULL), FALSE); 
    150   priv = dialer->priv; 
    151  
    152   moko_dialer_show_dialer (dialer, NULL); 
    153   on_keypad_dial_clicked (NULL, number, dialer); 
     109  priv = dialer->priv; 
     110 
     111  /* FIXME: Dial the number! */ 
     112 
    154113  return TRUE; 
    155114} 
     
    223182} 
    224183 
    225 /* Callbacks from widgets */ 
    226 static void 
    227 on_keypad_dial_clicked (MokoKeypad  *keypad, 
    228                         const gchar *number, 
    229                         MokoDialer  *dialer) 
    230 { 
    231   GtkWidget *dlg; 
    232   MokoDialerPrivate *priv; 
    233   MokoContactEntry *entry = NULL; 
    234    
    235   g_return_if_fail (MOKO_IS_DIALER (dialer)); 
    236   priv = dialer->priv; 
    237  
    238   if (!number) { 
    239     gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), 1); 
    240     moko_history_set_filter (MOKO_HISTORY (priv->history), HISTORY_FILTER_DIALED); 
    241     return; 
    242   } 
    243  
    244   /* check current dialer state */ 
    245   if (0 || priv->status != DIALER_STATUS_NORMAL) 
    246   { 
    247     gchar *strings[] = { 
    248       "Normal", 
    249       "Incoming Call", 
    250       "Dialing", 
    251       "Outgoing Call" 
    252     }; 
    253     dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, 
    254         "Cannot dial when dialer is busy.\nCurrent status = %s", strings[priv->status]); 
    255     gtk_dialog_run (GTK_DIALOG (dlg)); 
    256     gtk_widget_destroy (dlg); 
    257  
    258     g_warning ("Cannot dial when dialer is busy: %d\n", priv->status); 
    259  
    260     return; 
    261   } 
    262   priv->status = DIALER_STATUS_DIALING; 
    263  
    264   /* check for network connection */ 
    265   if (priv->registered != MOKO_GSMD_CONNECTION_NETREG_HOME 
    266       && priv->registered != MOKO_GSMD_CONNECTION_NETREG_ROAMING 
    267       && priv->registered != MOKO_GSMD_CONNECTION_NETREG_DENIED) 
    268   { 
    269     gchar *strings[] = { 
    270       "None", 
    271       "Home network registered", 
    272       "Searching for network", 
    273       "Network registration denied", 
    274       "", 
    275       "Roaming network registered" 
    276     }; 
    277  
    278     dlg = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, 
    279         "Cannot dial number. %s", strings[priv->registered]); 
    280     gtk_dialog_run (GTK_DIALOG (dlg)); 
    281     gtk_widget_destroy (dlg); 
    282  
    283     /* no point continuing if we're not connected to a network! */ 
    284     priv->status = DIALER_STATUS_NORMAL; 
    285     return; 
    286   } 
    287  
    288   entry = moko_contacts_lookup (moko_contacts_get_default (), number); 
    289  
    290   /* Prepare a voice journal entry */ 
    291   if (priv->journal) 
    292   { 
    293     priv->entry = moko_journal_entry_new (VOICE_JOURNAL_ENTRY); 
    294     moko_journal_entry_set_direction (priv->entry, DIRECTION_OUT); 
    295     moko_journal_entry_set_source (priv->entry, "Openmoko Dialer"); 
    296     moko_journal_entry_set_gsm_location (priv->entry, &priv->gsm_location); 
    297     moko_journal_voice_info_set_distant_number (priv->entry, number); 
    298     if (entry && entry->contact->uid) 
    299       moko_journal_entry_set_contact_uid (priv->entry, entry->contact->uid); 
    300   } 
    301   moko_talking_outgoing_call (MOKO_TALKING (priv->talking), number, entry); 
    302  
    303   gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook), priv->talking, 
    304                             gtk_image_new_from_file (PKGDATADIR"/phone.png"), 
    305                             0); 
    306   gtk_container_child_set (GTK_CONTAINER (priv->notebook), priv->talking, 
    307                            "tab-expand", TRUE, 
    308                            NULL); 
    309    
    310   gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), 0); 
    311  
    312   gtk_window_present (GTK_WINDOW (priv->window)); 
    313  
    314   moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), TRUE); 
    315  
    316   moko_gsmd_connection_voice_dial (priv->connection, number); 
    317  
    318   g_signal_emit (G_OBJECT (dialer), dialer_signals[OUTGOING_CALL], 0, number); 
    319 } 
    320  
     184 
     185#if 0 
    321186static void 
    322187on_keypad_pin_entry (MokoKeypad  *keypad, 
     
    338203  g_free (pin); 
    339204} 
    340  
     205#endif 
    341206 
    342207static void 
     
    388253 
    389254  g_signal_emit (G_OBJECT (dialer), dialer_signals[REJECTED], 0); 
    390   moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), FALSE); 
    391255  moko_notify_stop (priv->notify); 
    392256} 
     
    406270   
    407271  g_signal_emit (G_OBJECT (dialer), dialer_signals[HUNG_UP], 0); 
    408   moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), FALSE); 
    409272} 
    410273 
     
    437300  g_debug ("Speaker toggled"); 
    438301} 
    439  
     302#if 0 
    440303static void 
    441304on_keypad_digit_pressed (MokoKeypad *keypad, 
     
    454317    moko_gsmd_connection_voice_dtmf (priv->connection, digit); 
    455318} 
    456  
    457 static void 
    458 on_history_dial_number (MokoHistory *history, 
    459                         const gchar *number, 
    460                         MokoDialer  *dialer) 
    461 { 
    462   on_keypad_dial_clicked (NULL, number, dialer); 
    463 } 
    464  
     319#endif 
    465320/* Callbacks for MokoGsmdConnection */ 
    466321static void 
     
    588443  priv = dialer->priv; 
    589444   
    590   moko_keypad_set_pin_mode (MOKO_KEYPAD (priv->keypad), TRUE); 
    591   moko_dialer_show_dialer (dialer, NULL); 
    592445  g_debug ("Pin Requested"); 
    593  
    594446} 
    595447 
     
    627479 
    628480      moko_dialer_hung_up (dialer); 
    629       moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), FALSE); 
    630481 
    631482      if (priv->incoming_clip) 
     
    639490    case MOKO_GSMD_PROG_REJECT: 
    640491      moko_dialer_rejected (dialer); 
    641       moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), FALSE); 
    642492      g_debug ("mokogsmd reject"); 
    643493      break; 
     
    647497        moko_dialer_talking (dialer); 
    648498      moko_talking_accepted_call (MOKO_TALKING (priv->talking), NULL, NULL); 
    649       moko_keypad_set_talking (MOKO_KEYPAD (priv->keypad), TRUE); 
    650499 
    651500      /* Update a journal entry */ 
     
    868717  g_signal_connect (G_OBJECT (priv->talking), "speaker_toggle", 
    869718                    G_CALLBACK (on_talking_speaker_toggle), (gpointer)dialer); 
    870  
     719#if 0 
    871720  /* Keypad */ 
    872721  priv->keypad = moko_keypad_new (); 
     
    896745  gtk_widget_show_all (priv->notebook); 
    897746  gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), 0); 
     747#endif 
    898748} 
    899749 
Note: See TracChangeset for help on using the changeset viewer.