r3482 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/phone-kit

thomas at sita.openmoko.org thomas at sita.openmoko.org
Fri Nov 23 11:28:32 CET 2007


Author: thomas
Date: 2007-11-23 11:28:30 +0100 (Fri, 23 Nov 2007)
New Revision: 3482

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.h
Log:
* src/phone-kit/moko-dialer.c: (moko_dialer_rejected):
* src/phone-kit/moko-talking.c: (moko_talking_class_init),
(window_delete_event_cb), (on_pad_user_input), (moko_talking_init):
* src/phone-kit/moko-talking.h:

Add DTMF pad while in call


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-11-22 18:59:36 UTC (rev 3481)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2007-11-23 10:28:30 UTC (rev 3482)
@@ -1,3 +1,12 @@
+2007-11-23  Thomas Wood  <thomas at openedhand.com>
+
+	* src/phone-kit/moko-dialer.c: (moko_dialer_rejected):
+	* src/phone-kit/moko-talking.c: (moko_talking_class_init),
+	(window_delete_event_cb), (on_pad_user_input), (moko_talking_init):
+	* src/phone-kit/moko-talking.h:
+
+	Add DTMF pad while in call
+
 2007-11-22  Chris Lord  <chris at openedhand.com>
 
 	* configure.ac:

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-11-22 18:59:36 UTC (rev 3481)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c	2007-11-23 10:28:30 UTC (rev 3482)
@@ -282,30 +282,7 @@
   g_signal_emit (G_OBJECT (dialer), dialer_signals[REJECTED], 0);
 }
 
-
-#if 0
 static void
-on_keypad_pin_entry (MokoKeypad  *keypad,
-                     const gchar *in_pin,
-                     MokoDialer  *dialer)
-{
-  MokoDialerPrivate *priv;
-  gchar *pin;
-  
-  g_return_if_fail (MOKO_IS_DIALER (dialer));
-  priv = dialer->priv;
-
-  pin = g_strdup (in_pin);
-
-  g_debug ("Sending pin %s", pin);
-  moko_gsmd_connection_send_pin (priv->connection, pin);
-
-  moko_keypad_set_pin_mode (MOKO_KEYPAD (priv->keypad), FALSE);
-  g_free (pin);
-}
-#endif
-
-static void
 on_talking_accept_call (MokoTalking *talking, MokoDialer *dialer)
 {
   MokoDialerPrivate *priv;
@@ -397,9 +374,9 @@
 
   g_debug ("Speaker toggled");
 }
-#if 0
+
 static void
-on_keypad_digit_pressed (MokoKeypad *keypad,
+on_keypad_digit_pressed (MokoTalking *talking,
                          const gchar digit,
                          MokoDialer *dialer)
 {
@@ -412,9 +389,11 @@
     return;
 
   if (priv->status == DIALER_STATUS_TALKING)
-    moko_gsmd_connection_voice_dtmf (priv->connection, digit);
+  {
+    lgsm_voice_dtmf (priv->handle, digit);
+  }
 }
-#endif
+
 /* Callbacks for gsmd events */
 static void
 on_network_registered (MokoDialer *dialer,
@@ -1121,7 +1100,8 @@
                     G_CALLBACK (on_talking_silence), (gpointer)dialer);
   g_signal_connect (G_OBJECT (priv->talking), "speaker_toggle",
                     G_CALLBACK (on_talking_speaker_toggle), (gpointer)dialer);
-
+  g_signal_connect (priv->talking, "dtmf_key_press",
+                    G_CALLBACK (on_keypad_digit_pressed), dialer);
 }
 
 MokoDialer*

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c	2007-11-22 18:59:36 UTC (rev 3481)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.c	2007-11-23 10:28:30 UTC (rev 3482)
@@ -24,6 +24,8 @@
 
 #include "moko-sound.h"
 #include "moko-talking.h"
+#include "moko-dialer-panel.h"
+#include "moko-dialer-textview.h"
 
 G_DEFINE_TYPE (MokoTalking, moko_talking, GTK_TYPE_WIDGET)
 
@@ -40,28 +42,31 @@
 
 struct _MokoTalkingPrivate
 {
-  MokoJournal        *journal;
+  MokoJournal *journal;
 
-  GtkWidget          *window;
+  GtkWidget *window;
 
-  GtkWidget          *incoming_bar;
-  GtkWidget          *main_bar;
+  GtkWidget *incoming_bar;
+  GtkWidget *main_bar;
 
-  GtkWidget          *title;
-  GtkWidget          *duration;
-  GtkWidget          *icon;
+  GtkWidget *title;
+  GtkWidget *duration;
+  GtkWidget *icon;
 
-  GtkWidget          *person;
-  GtkWidget          *status;
+  GtkWidget *person;
+  GtkWidget *status;
+  
+  GtkWidget *dtmf_display;
+  GtkWidget *dtmf_pad;
 
-  GdkPixbuf          *talking[N_PICS];
-  GdkPixbuf          *incoming[4];
-  GdkPixbuf          *outgoing[4];
+  GdkPixbuf *talking[N_PICS];
+  GdkPixbuf *incoming[4];
+  GdkPixbuf *outgoing[4];
 
-  GTimer             *dtimer;
-  guint               timeout;
+  GTimer *dtimer;
+  guint timeout;
   
-  gint                call_direction;
+  gint call_direction;
 };
 
 enum
@@ -71,13 +76,13 @@
   CANCEL_CALL,
   SILENCE,
   SPEAKER_TOGGLE,
+  DTMF_KEY_PRESS,
 
   LAST_SIGNAL
 };
 
 static guint talking_signals[LAST_SIGNAL] = {0, };
 
-
 void
 moko_talking_set_clip (MokoTalking      *talking, 
                        const gchar      *number,
@@ -406,6 +411,15 @@
                   g_cclosure_marshal_VOID__BOOLEAN,
                   G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
 
+   talking_signals[DTMF_KEY_PRESS] =
+    g_signal_new ("dtmf_key_press", 
+                  G_TYPE_FROM_CLASS (obj_class),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (MokoTalkingClass,  dtmf_key_press),
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__CHAR,
+                  G_TYPE_NONE, 1, G_TYPE_CHAR);
+
   g_type_class_add_private (obj_class, sizeof (MokoTalkingPrivate)); 
 }
 
@@ -422,9 +436,28 @@
 }
 
 static void
+on_pad_user_input (MokoDialerPanel *panel, const gchar digit,
+                   MokoTalking *talking)
+{
+  MokoTalkingPrivate *priv;
+  gchar buf[2];
+  priv = MOKO_TALKING_GET_PRIVATE (talking);
+
+  /* Create a string from the new digit */
+  buf[0] = digit;
+  buf[1] = '\0';
+  
+  moko_dialer_textview_insert (MOKO_DIALER_TEXTVIEW (priv->dtmf_display), buf);
+
+  g_signal_emit (G_OBJECT (talking), talking_signals[DTMF_KEY_PRESS],
+                0, digit);
+}
+
+static void
 moko_talking_init (MokoTalking *talking)
 {
   MokoTalkingPrivate *priv;
+  GtkWidget *notebook;
   GtkWidget *toolbar, *image, *vbox, *hbox, *label, *align, *frame, *main_vbox;
   GtkWidget *duration;
   GtkToolItem *item;
@@ -432,7 +465,15 @@
 
   priv = talking->priv = MOKO_TALKING_GET_PRIVATE (talking);
 
+  notebook = gtk_notebook_new ();
+  gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM);
+
+  /* status page */
   main_vbox = gtk_vbox_new (FALSE, 0);
+  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), main_vbox,
+                            gtk_image_new_from_file (PKGDATADIR"/phone.png"));
+  gtk_container_child_set (GTK_CONTAINER (notebook), main_vbox, "tab-expand",
+                           TRUE, NULL);
   
   priv->incoming_bar = toolbar = gtk_toolbar_new ();
   gtk_box_pack_start (GTK_BOX (main_vbox), toolbar, FALSE, FALSE, 0);
@@ -505,7 +546,7 @@
   priv->person = image = gtk_image_new ();
   gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
 
-  priv->status = label = gtk_label_new ("01923 820 124");
+  priv->status = label = gtk_label_new ("");
   gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
 
   /* Load the pixbufs */
@@ -540,12 +581,29 @@
       g_object_ref (priv->incoming[i]);
 
   }
+  
+  /* dtmf page */
+  GtkWidget *pad, *display;
+  main_vbox = gtk_vbox_new (FALSE, 0);
+  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), main_vbox,
+                            gtk_image_new_from_file (PKGDATADIR"/dtmf.png"));
+  gtk_container_child_set (GTK_CONTAINER (notebook), main_vbox, "tab-expand",
+                           TRUE, NULL);
+  
+  display = moko_dialer_textview_new ();
+  gtk_box_pack_start_defaults (GTK_BOX (main_vbox), display);
+  priv->dtmf_display = display;
+  
+  pad = moko_dialer_panel_new ();
+  gtk_box_pack_start_defaults (GTK_BOX (main_vbox), pad);
+  g_signal_connect (pad, "user_input", G_CALLBACK (on_pad_user_input), talking);
+  priv->dtmf_pad = pad;
 
   priv->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   g_signal_connect (priv->window, "delete-event", G_CALLBACK (window_delete_event_cb), talking);
-  gtk_container_add (GTK_CONTAINER (priv->window), main_vbox);
+  gtk_container_add (GTK_CONTAINER (priv->window), notebook);
   
-  gtk_widget_show_all (main_vbox);
+  gtk_widget_show_all (notebook);
 
 }
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.h	2007-11-22 18:59:36 UTC (rev 3481)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-talking.h	2007-11-23 10:28:30 UTC (rev 3482)
@@ -67,6 +67,7 @@
   void (*cancel_call) (MokoTalking *talking);
   void (*silence) (MokoTalking *talking);
   void (*speaker_toggle) (MokoTalking *talking, gboolean speaker_phone);
+  void (*dtmf_key_press) (MokoTalking *talking, const char key);
 }; 
 
 GType moko_talking_get_type (void) G_GNUC_CONST;





More information about the commitlog mailing list