r1855 - in trunk/src/target/OM-2007/openmoko-libs: . libmokogsmd

mickey at sita.openmoko.org mickey at sita.openmoko.org
Fri Apr 27 13:11:41 CEST 2007


Author: mickey
Date: 2007-04-27 13:11:40 +0200 (Fri, 27 Apr 2007)
New Revision: 1855

Modified:
   trunk/src/target/OM-2007/openmoko-libs/TODO
   trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.c
   trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.h
Log:
libmokogsmd: add minimal API to deal with voice calls


Modified: trunk/src/target/OM-2007/openmoko-libs/TODO
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/TODO	2007-04-26 21:00:59 UTC (rev 1854)
+++ trunk/src/target/OM-2007/openmoko-libs/TODO	2007-04-27 11:11:40 UTC (rev 1855)
@@ -1,5 +1,6 @@
 (Ordered by Priority)
 
+- MokoApplication -> GSettings, set theme
 - split up into individually buildable libraries (esp. regarding pkgconfig support)
 - MokoPopupMenu:
   -- moko_popup_menu_add_item( label, callback, userdata, notification );

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.c	2007-04-26 21:00:59 UTC (rev 1854)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.c	2007-04-27 11:11:40 UTC (rev 1855)
@@ -19,6 +19,8 @@
 #include "moko-gsmd-marshal.h"
 
 #include <libgsmd/libgsmd.h>
+#include <libgsmd/misc.h>
+#include <libgsmd/voicecall.h>
 
 #include <string.h>
 #include <errno.h>
@@ -175,6 +177,27 @@
         G_TYPE_INT,
         NULL);
 
+    //TODO add SIGNAL_GSMD_EVT_PIN
+
+    moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS] = g_signal_new
+        ("call-progress",
+        G_TYPE_FROM_CLASS (klass),
+        G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+        NULL,
+        NULL,
+        NULL,
+        g_cclosure_marshal_VOID__INT,
+        G_TYPE_NONE,
+        1,
+        G_TYPE_INT,
+        NULL );
+
+    //TODO add SIGNAL_GSMD_EVT_OUT_COLP       = 9,    /* Outgoing COLP */
+    //TODO add SIGNAL_GSMD_EVT_CALL_WAIT      = 10,   /* Call Waiting */
+    //TODO add SIGNAL_GSMD_EVT_TIMEZONE       = 11,   /* Timezone change */
+    //TODO add SIGNAL_GSMD_EVT_SUBSCRIPTIONS  = 12,   /* To which events are we subscribed to */
+    //TODO add SIGNAL_GSMD_EVT_CIPHER         = 13,   /* Chiphering Information */
+
     /* virtual methods */
 
     /* install properties */
@@ -217,15 +240,15 @@
     switch(evt_type)
     {
         case GSMD_EVT_IN_CALL:
-            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CALL], 0 ); break;
+            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CALL], 0, aux->u.call.type ); break;
         case GSMD_EVT_IN_SMS:
-            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_SMS]; break;
+            moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_SMS]; break;
         case GSMD_EVT_IN_GPRS:
             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_GPRS]; break;
         case GSMD_EVT_IN_CLIP:
-            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP]; break;
+            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP], 0, aux->u.clip.addr.number ); break;
         case GSMD_EVT_NETREG:
-            // work around for bugzilla.openmoko.org #454
+            // work around bugzilla.openmoko.org #454
             if ( aux->u.netreg.state == MOKO_GSMD_CONNECTION_NETREG_HOME ||
                  aux->u.netreg.state == MOKO_GSMD_CONNECTION_NETREG_ROAMING )
                 g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_NETREG], 0,
@@ -239,7 +262,7 @@
         case GSMD_EVT_PIN:
             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_PIN]; break;
         case GSMD_EVT_OUT_STATUS:
-            //emit = moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS]; break;
+            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS], 0, aux->u.call_status.prog ); break;
         case GSMD_EVT_OUT_COLP:
             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_COLP]; break;
         case GSMD_EVT_CALL_WAIT:
@@ -250,7 +273,8 @@
             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_SUBSCRIPTIONS]; break;
         case GSMD_EVT_CIPHER:
             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CIPHER]; break;
-        default: g_assert( FALSE ); // fail here on unknown event
+        default:
+            g_critical( "_moko_gsmd_connection_eventhandler: unhandled event type = %d", evt_type );
     }
     return 0;
 }
@@ -303,11 +327,39 @@
 void moko_gsmd_connection_network_register(MokoGsmdConnection* self)
 {
     MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
+    g_return_if_fail( priv->handle );
     lgsm_netreg_register( priv->handle, 0 );
 }
 
 void moko_gsmd_connection_set_antenna_power(MokoGsmdConnection* self, gboolean on)
 {
     MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
+    g_return_if_fail( priv->handle );
     lgsm_phone_power( priv->handle, on ? 1 : 0 );
 }
+
+void moko_gsmd_connection_voice_accept(MokoGsmdConnection* self)
+{
+    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
+    g_return_if_fail( priv->handle );
+    lgsm_voice_in_accept( priv->handle );
+}
+
+void moko_gsmd_connection_voice_hangup(MokoGsmdConnection* self)
+{
+    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
+    g_return_if_fail( priv->handle );
+    lgsm_voice_hangup( priv->handle );
+}
+
+void moko_gsmd_connection_voice_dial(MokoGsmdConnection* self, const gchar* number)
+{
+    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
+    g_return_if_fail( priv->handle );
+    g_return_if_fail( number );
+    g_return_if_fail( strlen( number ) < 2 );
+    struct lgsm_addr addr;
+    addr.type = 129; //???
+    g_stpcpy( &addr.addr[0], number );
+    lgsm_voice_out_init( priv->handle, &addr );
+}

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.h	2007-04-26 21:00:59 UTC (rev 1854)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.h	2007-04-27 11:11:40 UTC (rev 1855)
@@ -52,11 +52,16 @@
 
 /* signals */
 void moko_gsmd_connection_incoming_call(MokoGsmdConnection* self, int type);
+void moko_gsmd_connection_call_status_progress(MokoGsmdConnection* self, int type);
 //sms
 //gprs
 void moko_gsmd_connection_incoming_clip(MokoGsmdConnection* self, const char* number);
 void moko_gsmd_connection_network_registration(MokoGsmdConnection* self, int type, int lac, int cell);
 void moko_gsmd_connection_signal_strength_changed(MokoGsmdConnection* self, int strength);
+//voice
+void moko_gsmd_connection_voice_accept(MokoGsmdConnection* self);
+void moko_gsmd_connection_voice_hangup(MokoGsmdConnection* self);
+void moko_gsmd_connection_voice_dial(MokoGsmdConnection* self, const gchar* number);
 
 G_END_DECLS
 





More information about the commitlog mailing list