r2703 - in trunk/src/target/OM-2007.2/libraries/libmokogsmd2: . libmokogsmd
njp at sita.openmoko.org
njp at sita.openmoko.org
Wed Aug 15 14:03:26 CEST 2007
Author: njp
Date: 2007-08-15 14:03:24 +0200 (Wed, 15 Aug 2007)
New Revision: 2703
Modified:
trunk/src/target/OM-2007.2/libraries/libmokogsmd2/ChangeLog
trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.c
trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.h
Log:
2007-08-15 Neil J. Patel <njp at o-hand.com>
* libmokogsmd/moko-gsmd-connection.c:
(moko_gsmd_connection_dispose), (moko_gsmd_connection_class_init),
(_moko_gsmd_connection_source_prepare),
(_moko_gsmd_connection_source_check),
(_moko_gsmd_connection_source_dispatch),
(_moko_gsmd_connection_eventhandler), (pt_msghandler),
(moko_gsmd_connection_init),
(moko_gsmd_connection_set_antenna_power),
(moko_gsmd_connection_send_pin),
(moko_gsmd_connection_network_register),
(moko_gsmd_connection_voice_accept),
(moko_gsmd_connection_voice_hangup),
(moko_gsmd_connection_voice_dial),
(moko_gsmd_connection_voice_dtmf),
(moko_gsmd_connection_trigger_signal_strength_event):
* libmokogsmd/moko-gsmd-connection.h:
Fix many warnings.
Re-structure code to make it a bit cleaner.
Bring signal functions into the MokoGsdmConnectionClass, add some future
padding.
If libgsmd cannot connect to gsmd, try and start it manually.
Make the appropriete functions static.
Modified: trunk/src/target/OM-2007.2/libraries/libmokogsmd2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokogsmd2/ChangeLog 2007-08-14 19:24:46 UTC (rev 2702)
+++ trunk/src/target/OM-2007.2/libraries/libmokogsmd2/ChangeLog 2007-08-15 12:03:24 UTC (rev 2703)
@@ -1,3 +1,28 @@
+2007-08-15 Neil J. Patel <njp at o-hand.com>
+
+ * libmokogsmd/moko-gsmd-connection.c:
+ (moko_gsmd_connection_dispose), (moko_gsmd_connection_class_init),
+ (_moko_gsmd_connection_source_prepare),
+ (_moko_gsmd_connection_source_check),
+ (_moko_gsmd_connection_source_dispatch),
+ (_moko_gsmd_connection_eventhandler), (pt_msghandler),
+ (moko_gsmd_connection_init),
+ (moko_gsmd_connection_set_antenna_power),
+ (moko_gsmd_connection_send_pin),
+ (moko_gsmd_connection_network_register),
+ (moko_gsmd_connection_voice_accept),
+ (moko_gsmd_connection_voice_hangup),
+ (moko_gsmd_connection_voice_dial),
+ (moko_gsmd_connection_voice_dtmf),
+ (moko_gsmd_connection_trigger_signal_strength_event):
+ * libmokogsmd/moko-gsmd-connection.h:
+ Fix many warnings.
+ Re-structure code to make it a bit cleaner.
+ Bring signal functions into the MokoGsdmConnectionClass, add some future
+ padding.
+ If libgsmd cannot connect to gsmd, try and start it manually.
+ Make the appropriete functions static.
+
2007-07-28 Michael Lauer <mickey at openmoko.org>
* configure.ac:
Modified: trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.c
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.c 2007-08-14 19:24:46 UTC (rev 2702)
+++ trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.c 2007-08-15 12:03:24 UTC (rev 2703)
@@ -23,6 +23,9 @@
#include <libgsmd/voicecall.h>
#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
#include <errno.h>
#define DEBUG_THIS_FILE
@@ -31,16 +34,18 @@
#ifdef DEBUG_THIS_FILE
#define moko_debug(fmt,...) g_debug(fmt,##__VA_ARGS__)
#else
-#define moko_debug(fmt,...)
+#define moko_debug(fmt,...)
#endif
G_DEFINE_TYPE (MokoGsmdConnection, moko_gsmd_connection, G_TYPE_OBJECT)
-#define GSMD_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnectionPrivate))
+#define GSMD_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
+ MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnectionPrivate))
/* ugly temp. hack until libgsmd features a user_data pointer for its callbacks
- Note that this effectively means you can only have one MokoGsmdConnection object
- per process (which should be ok anyway...) :M: */
+ * Note that this effectively means you can only have one MokoGsmdConnection
+ * object per process (which should be ok anyway...) :M:
+ */
static MokoGsmdConnection* moko_gsmd_connection_instance = 0;
typedef struct _MokoGsmdConnectionSource
@@ -48,29 +53,31 @@
GSource source;
GPollFD pollfd;
struct lgsm_handle* handle;
+
} MokoGsmdConnectionSource;
typedef struct _MokoGsmdConnectionPrivate
{
struct lgsm_handle* handle;
MokoGsmdConnectionSource* source;
+
} MokoGsmdConnectionPrivate;
/* signals */
enum {
- SIGNAL_GSMD_EVT_IN_CALL = 1, /* Incoming call */
- SIGNAL_GSMD_EVT_IN_SMS = 2, /* Incoming SMS */
- SIGNAL_GSMD_EVT_IN_GPRS = 3, /* Network initiated GPRS */
- SIGNAL_GSMD_EVT_IN_CLIP = 4, /* Incoming CLIP */
- SIGNAL_GSMD_EVT_NETREG = 5, /* Network (un)registration event */
- SIGNAL_GSMD_EVT_SIGNAL = 6, /* Signal quality event */
- SIGNAL_GSMD_EVT_PIN = 7, /* Modem is waiting for some PIN/PUK */
- SIGNAL_GSMD_EVT_OUT_STATUS = 8, /* Outgoing call status */
- SIGNAL_GSMD_EVT_OUT_COLP = 9, /* Outgoing COLP */
- SIGNAL_GSMD_EVT_CALL_WAIT = 10, /* Call Waiting */
- SIGNAL_GSMD_EVT_TIMEZONE = 11, /* Timezone change */
- SIGNAL_GSMD_EVT_SUBSCRIPTIONS = 12, /* To which events are we subscribed to */
- SIGNAL_GSMD_EVT_CIPHER = 13, /* Chiphering Information */
+ SIGNAL_GSMD_EVT_IN_CALL = 1, /* Incoming call */
+ SIGNAL_GSMD_EVT_IN_SMS = 2, /* Incoming SMS */
+ SIGNAL_GSMD_EVT_IN_GPRS = 3, /* Network initiated GPRS */
+ SIGNAL_GSMD_EVT_IN_CLIP = 4, /* Incoming CLIP */
+ SIGNAL_GSMD_EVT_NETREG = 5, /* Network (un)registration event */
+ SIGNAL_GSMD_EVT_SIGNAL = 6, /* Signal quality event */
+ SIGNAL_GSMD_EVT_PIN = 7, /* Modem is waiting for some PIN/PUK */
+ SIGNAL_GSMD_EVT_OUT_STATUS = 8, /* Outgoing call status */
+ SIGNAL_GSMD_EVT_OUT_COLP = 9, /* Outgoing COLP */
+ SIGNAL_GSMD_EVT_CALL_WAIT = 10, /* Call Waiting */
+ SIGNAL_GSMD_EVT_TIMEZONE = 11, /* Timezone change */
+ SIGNAL_GSMD_EVT_SUBSCRIPTIONS = 12, /* To which events are we subscribed */
+ SIGNAL_GSMD_EVT_CIPHER = 13, /* Chiphering Information */
LAST_SIGNAL,
};
static guint moko_gsmd_connection_signals[LAST_SIGNAL] = { 0 };
@@ -79,10 +86,10 @@
GObjectClass* parent_class = NULL;
/* forward declarations */
-static gboolean _moko_gsmd_connection_source_prepare( MokoGsmdConnectionSource* self, gint* timeout );
-static gboolean _moko_gsmd_connection_source_check( MokoGsmdConnectionSource* self );
-static gboolean _moko_gsmd_connection_source_check( MokoGsmdConnectionSource* self );
-static int _moko_gsmd_connection_eventhandler(struct lgsm_handle *lh, int evt_type, struct gsmd_evt_auxdata *aux);
+static int
+_moko_gsmd_connection_eventhandler(struct lgsm_handle *lh,
+ int evt_type,
+ struct gsmd_evt_auxdata *aux);
/* class definition */
@@ -90,10 +97,14 @@
moko_gsmd_connection_dispose(GObject* object)
{
moko_debug( "dispose" );
- MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE( MOKO_GSMD_CONNECTION( object ) );
+ MokoGsmdConnectionPrivate* priv;
+
+ priv = GSMD_CONNECTION_GET_PRIVATE( MOKO_GSMD_CONNECTION( object ) );
+
g_source_destroy( (GSource*) priv->source );
lgsm_exit( priv->handle );
- // call parent destructor
+
+ /* call parent destructor */
if (G_OBJECT_CLASS (moko_gsmd_connection_parent_class)->dispose)
G_OBJECT_CLASS (moko_gsmd_connection_parent_class)->dispose (object);
}
@@ -124,25 +135,25 @@
("incoming-call",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, incoming_call),
NULL,
NULL,
- NULL,
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE,
1,
G_TYPE_INT,
NULL );
- //TODO add SIGNAL_GSMD_EVT_IN_SMS once libgsmd has it
- //TODO add SIGNAL_GSMD_EVT_IN_GPRS once libgsmd has it
+ /* TODO add SIGNAL_GSMD_EVT_IN_SMS once libgsmd has it */
+ /* TODO add SIGNAL_GSMD_EVT_IN_GPRS once libgsmd has it */
moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP] = g_signal_new
("incoming-clip",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, incoming_clip),
NULL,
NULL,
- NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE,
1,
@@ -153,9 +164,9 @@
("network-registration",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, network_registration),
NULL,
NULL,
- NULL,
moko_gsmd_marshal_VOID__INT_INT_INT,
G_TYPE_NONE,
3,
@@ -168,9 +179,9 @@
("signal-strength-changed",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, signal_strength_changed),
NULL,
NULL,
- NULL,
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE,
1,
@@ -181,9 +192,9 @@
("pin-requested",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, pin_requested),
NULL,
NULL,
- NULL,
g_cclosure_marshal_VOID__INT,
G_TYPE_NONE,
1,
@@ -194,21 +205,22 @@
("call-progress",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
+ G_STRUCT_OFFSET (MokoGsmdConnectionClass, call_status_progress),
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 */
-
+#if 0
+ // 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 */
+#endif
/* virtual methods */
/* install properties */
@@ -220,25 +232,43 @@
return g_object_new(MOKO_TYPE_GSMD_CONNECTION, NULL);
}
-gboolean _moko_gsmd_connection_source_prepare( MokoGsmdConnectionSource* self, gint* timeout )
+static gboolean
+_moko_gsmd_connection_source_prepare( GSource* self,
+ gint* timeout )
{
moko_debug( "moko_gsmd_connection_source_prepare" );
return FALSE;
}
-gboolean _moko_gsmd_connection_source_check( MokoGsmdConnectionSource* self )
+static gboolean
+_moko_gsmd_connection_source_check( GSource* source )
{
moko_debug( "moko_gsmd_connection_source_check" );
+ MokoGsmdConnectionSource *self;
+
+ self = (MokoGsmdConnectionSource*)source;
return self->pollfd.revents & G_IO_IN;
}
-gboolean _moko_gsmd_connection_source_dispatch( MokoGsmdConnectionSource* self, GSourceFunc callback, gpointer data )
+static gboolean
+_moko_gsmd_connection_source_dispatch( GSource *source,
+ GSourceFunc callback,
+ gpointer data )
{
moko_debug( "moko_gsmd_connection_source_dispatch" );
char buf[1025];
- int size = read( self->pollfd.fd, &buf, sizeof( buf ) );
+ int size;
+ MokoGsmdConnectionSource *self;
+
+ self = (MokoGsmdConnectionSource*)source;
+
+ size = read( self->pollfd.fd, &buf, sizeof( buf ) );
if ( size < 0 )
- g_warning( "moko_gsmd_connection_source_dispatch: read error from libgsmd: %s", strerror( errno ) );
+ {
+ g_warning( "moko_gsmd_connection_source_dispatch:%s %s",
+ "read error from libgsmd:",
+ strerror( errno ) );
+ }
else
{
if ( size == 0 ) /* EOF */
@@ -249,48 +279,93 @@
return TRUE;
}
-int _moko_gsmd_connection_eventhandler(struct lgsm_handle *lh, int evt_type, struct gsmd_evt_auxdata *aux)
+int
+_moko_gsmd_connection_eventhandler (struct lgsm_handle *lh,
+ int evt_type,
+ struct gsmd_evt_auxdata *aux)
{
moko_debug( "moko_gsmd_connection_eventhandler type = %d", evt_type );
- MokoGsmdConnection* self = moko_gsmd_connection_instance; // temporary (see note above)
+ MokoGsmdConnection* self = moko_gsmd_connection_instance;
+
switch(evt_type)
{
case GSMD_EVT_IN_CALL:
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CALL], 0, aux->u.call.type ); 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;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_GPRS]; */
+ break;
case GSMD_EVT_IN_CLIP:
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP], 0, aux->u.clip.addr.number ); 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 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,
- aux->u.netreg.state, aux->u.netreg.lac, aux->u.netreg.ci );
+ /* 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,
+ aux->u.netreg.state,
+ aux->u.netreg.lac,
+ aux->u.netreg.ci );
+ }
else
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_NETREG], 0,
- aux->u.netreg.state, 0, 0 );
+ {
+ g_signal_emit( G_OBJECT(self),
+ moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_NETREG],
+ 0,
+ aux->u.netreg.state,
+ 0,
+ 0 );
+ }
break;
case GSMD_EVT_SIGNAL:
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_SIGNAL], 0, aux->u.signal.sigq.rssi ); break;
+ g_signal_emit( G_OBJECT(self),
+ moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_SIGNAL],
+ 0,
+ aux->u.signal.sigq.rssi );
+ break;
case GSMD_EVT_PIN:
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_PIN], 0, aux->u.pin.type ); break;
+ g_signal_emit( G_OBJECT(self),
+ moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_PIN],
+ 0,
+ aux->u.pin.type );
+ break;
case GSMD_EVT_OUT_STATUS:
- g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS], 0, aux->u.call_status.prog ); 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;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_COLP]; */
+ break;
case GSMD_EVT_CALL_WAIT:
- //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CALL_WAIT]; break;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CALL_WAIT]; */
+ break;
case GSMD_EVT_TIMEZONE:
- //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_TIMEZONE]; break;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_TIMEZONE]; */
+ break;
case GSMD_EVT_SUBSCRIPTIONS:
- //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_SUBSCRIPTIONS]; break;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_SUBSCRIPTIONS]; */
+ break;
case GSMD_EVT_CIPHER:
- //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CIPHER]; break;
+ /* moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CIPHER];*/
+ break;
default:
- g_critical( "_moko_gsmd_connection_eventhandler: unhandled event type = %d", evt_type );
+ g_critical( "_moko_gsmd_connection_eventhandler: %s %d",
+ "unhandled event type =",
+ evt_type );
}
return 0;
}
@@ -301,13 +376,16 @@
{
char *payload = (char *)gmh + sizeof(*gmh);
g_debug("PASSTHROUGH RESPONSE = '%s'", payload);
+ return 0;
}
static void
moko_gsmd_connection_init(MokoGsmdConnection* self)
{
moko_debug( "moko_gsmd_connection_init" );
- g_assert( !moko_gsmd_connection_instance); // fail here on more than one MokoGsmdConnection object per process
+ /* fail here on more than one MokoGsmdConnection object per process */
+ g_assert( !moko_gsmd_connection_instance);
+
moko_gsmd_connection_instance = self;
MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
@@ -315,12 +393,27 @@
priv->handle = lgsm_init( LGSMD_DEVICE_GSMD );
if ( !priv->handle )
{
- g_warning( "libgsmd: can't connect to gsmd. You won't receive any events." );
- return;
+ /* We didn't connect to gsmd, so let's try and start it manually */
+ g_print ( "libmokogsmd: "
+ "Unable to connect to gsmd, trying to start it\n" );
+ g_spawn_command_line_sync( "/etc/init.d/gsmd stop",
+ NULL, NULL, NULL, NULL );
+ g_spawn_command_line_sync( "/etc/init.d/gsmd start",
+ NULL, NULL, NULL, NULL );
+ priv->handle = lgsm_init( LGSMD_DEVICE_GSMD );
+
+ if ( !priv->handle )
+ {
+ g_warning( "libgsmd: %s",
+ "can't connect to gsmd. You won't receive any events." );
+
+ return;
+ }
}
else
{
- moko_debug( "-- connected to gsmd (socketfd = %d)", lgsm_fd( priv->handle ) );
+ moko_debug( "-- connected to gsmd (socketfd = %d)",
+ lgsm_fd( priv->handle ) );
}
static GSourceFuncs funcs = {
@@ -330,7 +423,8 @@
NULL,
};
- priv->source = (MokoGsmdConnectionSource*) g_source_new( &funcs, sizeof( MokoGsmdConnectionSource) );
+ priv->source = (MokoGsmdConnectionSource*) g_source_new( &funcs,
+ sizeof( MokoGsmdConnectionSource) );
priv->source->handle = priv->handle;
priv->source->pollfd.fd = lgsm_fd( priv->handle );
priv->source->pollfd.events = G_IO_IN | G_IO_HUP | G_IO_ERR;
@@ -341,7 +435,8 @@
int rc = 0;
for ( int i = GSMD_EVT_IN_CALL; i < __NUM_GSMD_EVT; ++i )
{
- rc |= lgsm_evt_handler_register( priv->handle, i, _moko_gsmd_connection_eventhandler );
+ rc |= lgsm_evt_handler_register( priv->handle, i,
+ _moko_gsmd_connection_eventhandler );
moko_debug( "-- registered for event %d, return code %d", i, rc );
}
@@ -349,7 +444,8 @@
}
/* public API */
-void moko_gsmd_connection_set_antenna_power(MokoGsmdConnection* self, gboolean on)
+void
+moko_gsmd_connection_set_antenna_power(MokoGsmdConnection* self, gboolean on)
{
MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
g_return_if_fail( priv->handle );
@@ -357,58 +453,68 @@
g_debug( "lgsm_phone_power returned %d", result );
}
-void moko_gsmd_connection_send_pin(MokoGsmdConnection* self, const gchar* pin)
+void
+moko_gsmd_connection_send_pin(MokoGsmdConnection* self, const gchar* pin)
{
MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
g_return_if_fail( priv->handle );
g_return_if_fail( pin );
g_return_if_fail( strlen( pin ) >= 4 );
- //FIXME lgsm_pin_auth is not yet implemented, so we call lgsm_pin directly...
- //lgsm_pin_auth( priv->handle, pin );
+ /*
+ * FIXME lgsm_pin_auth is not yet implemented, so we call lgsm_pin
+ * directly...
+ */
+ /*lgsm_pin_auth( priv->handle, pin );*/
lgsm_pin( priv->handle, 1, pin, NULL);
}
-void moko_gsmd_connection_network_register(MokoGsmdConnection* self)
+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_voice_accept(MokoGsmdConnection* self)
+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)
+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)
+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; //???
+ addr.type = 129; /* ??? */
g_stpcpy( &addr.addr[0], number );
lgsm_voice_out_init( priv->handle, &addr );
}
-void moko_gsmd_connection_voice_dtmf(MokoGsmdConnection* self, const gchar number)
+void
+moko_gsmd_connection_voice_dtmf(MokoGsmdConnection* self, const gchar number)
{
MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
g_return_if_fail( priv->handle );
lgsm_voice_dtmf( priv->handle, number );
}
-void moko_gsmd_connection_trigger_signal_strength_event(MokoGsmdConnection* self)
+void
+moko_gsmd_connection_trigger_signal_strength_event(MokoGsmdConnection* self)
{
MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self);
g_return_if_fail( priv->handle );
Modified: trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.h
===================================================================
--- trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.h 2007-08-14 19:24:46 UTC (rev 2702)
+++ trunk/src/target/OM-2007.2/libraries/libmokogsmd2/libmokogsmd/moko-gsmd-connection.h 2007-08-15 12:03:24 UTC (rev 2703)
@@ -23,44 +23,68 @@
G_BEGIN_DECLS
#define MOKO_TYPE_GSMD_CONNECTION moko_gsmd_connection_get_type()
-#define MOKO_GSMD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnection))
-#define MOKO_GSMD_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnectionClass))
-#define MOKO_IS_GSMD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MOKO_TYPE_GSMD_CONNECTION))
-#define MOKO_IS_GSMD_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOKO_TYPE_GSMD_CONNECTION))
+
+#define MOKO_GSMD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+ MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnection))
+
+#define MOKO_GSMD_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
+ MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnectionClass))
+
+#define MOKO_IS_GSMD_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+ MOKO_TYPE_GSMD_CONNECTION))
+
+#define MOKO_IS_GSMD_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),\
+ MOKO_TYPE_GSMD_CONNECTION))
+
#define MOKO_GSMD_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOKO_TYPE_GSMD_CONNECTION, MokoGsmdConnectionClass))
-typedef struct {
+typedef struct
+{
GObject parent;
+
} MokoGsmdConnection;
-typedef struct {
+typedef struct
+{
GObjectClass parent_class;
+
+ /* Voice signals */
+ void (*incoming_call) (MokoGsmdConnection *self, int type);
+ void (*call_status_progress) (MokoGsmdConnection *self, int type);
+ void (*pin_requested) (MokoGsmdConnection *self, int type);
+
+ /* SMS signals */
+
+ /* GPRS signals */
+ void (*incoming_clip) (MokoGsmdConnection *self, const gchar *number);
+ void (*network_registration) (MokoGsmdConnection *self,
+ int type,
+ int lac,
+ int cell);
+ void (*trigger_signal_strength_event) (MokoGsmdConnection *self);
+ void (*signal_strength_changed) (MokoGsmdConnection *self, int strength);
+
+ /* Future padding */
+ void (*_moko_gsmdconn_1) (void);
+ void (*_moko_gsmdconn_2) (void);
+ void (*_moko_gsmdconn_3) (void);
+ void (*_moko_gsmdconn_4) (void);
+
} MokoGsmdConnectionClass;
-GType moko_gsmd_connection_get_type();
-MokoGsmdConnection* moko_gsmd_connection_new();
-// power
-void moko_gsmd_connection_set_antenna_power(MokoGsmdConnection* self, gboolean on);
-// pin
-void moko_gsmd_connection_send_pin(MokoGsmdConnection* self, const gchar* pin);
-// network
-void moko_gsmd_connection_network_register(MokoGsmdConnection* self); //TODO add type, i.e. MOKO_GSMD_CONNECTION_NETREG_AUTO
-// voice calls
-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);
-void moko_gsmd_connection_voice_dtmf(MokoGsmdConnection* self, const gchar number);
-
-enum {
+enum
+{
MOKO_GSMD_CONNECTION_NETREG_NONE = 0,
MOKO_GSMD_CONNECTION_NETREG_HOME = 1,
MOKO_GSMD_CONNECTION_NETREG_SEARCHING = 2,
MOKO_GSMD_CONNECTION_NETREG_DENIED = 3,
- MOKO_GSMD_CONNECTION_NETREG_ROAMING = 5,
+ MOKO_GSMD_CONNECTION_NETREG_ROAMING = 5
+
} MokoGsmdConnectionNetregType;
-enum {
+enum
+{
MOKO_GSMD_PROG_SETUP = 0,
MOKO_GSMD_PROG_DISCONNECT = 1,
MOKO_GSMD_PROG_ALERT = 2,
@@ -70,21 +94,32 @@
MOKO_GSMD_PROG_CONNECTED = 6,
MOKO_GSMD_PROG_RELEASE = 7,
MOKO_GSMD_PROG_REJECT = 8,
- MOKO_GSMD_PROG_UNKNOWN = 9,
+ MOKO_GSMD_PROG_UNKNOWN = 9
+
} MokoGsmdConnectionProgress;
+GType moko_gsmd_connection_get_type ();
-/* signals */
-void moko_gsmd_connection_incoming_call(MokoGsmdConnection* self, int type);
-void moko_gsmd_connection_call_status_progress(MokoGsmdConnection* self, int type);
-void moko_gsmd_connection_pin_requested(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_trigger_signal_strength_event(MokoGsmdConnection* self);
-void moko_gsmd_connection_signal_strength_changed(MokoGsmdConnection* self, int strength);
+MokoGsmdConnection* moko_gsmd_connection_new ();
+
+/* power */
+void moko_gsmd_connection_set_antenna_power (MokoGsmdConnection *self,
+ gboolean on);
+/* pin */
+void moko_gsmd_connection_send_pin (MokoGsmdConnection *self, const gchar *pin);
+
+/* network */
+void moko_gsmd_connection_network_register (MokoGsmdConnection *self);
+
+/* TODO add type, i.e. MOKO_GSMD_CONNECTION_NETREG_AUTO */
+/* voice calls */
+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);
+void moko_gsmd_connection_voice_dtmf (MokoGsmdConnection *self,
+ const gchar number);
G_END_DECLS
-#endif // _MOKO_GSMD_CONNECTION_H_
+#endif /* _MOKO_GSMD_CONNECTION_H_ */
More information about the commitlog
mailing list