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