Changeset 1855


Ignore:
Timestamp:
04/27/07 13:11:40 (6 years ago)
Author:
mickey
Message:

libmokogsmd: add minimal API to deal with voice calls

Location:
trunk/src/target/OM-2007/openmoko-libs
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007/openmoko-libs/TODO

    r1775 r1855  
    11(Ordered by Priority) 
    22 
     3- MokoApplication -> GSettings, set theme 
    34- split up into individually buildable libraries (esp. regarding pkgconfig support) 
    45- MokoPopupMenu: 
  • trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.c

    r1770 r1855  
    2020 
    2121#include <libgsmd/libgsmd.h> 
     22#include <libgsmd/misc.h> 
     23#include <libgsmd/voicecall.h> 
    2224 
    2325#include <string.h> 
     
    176178        NULL); 
    177179 
     180    //TODO add SIGNAL_GSMD_EVT_PIN 
     181 
     182    moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS] = g_signal_new 
     183        ("call-progress", 
     184        G_TYPE_FROM_CLASS (klass), 
     185        G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, 
     186        NULL, 
     187        NULL, 
     188        NULL, 
     189        g_cclosure_marshal_VOID__INT, 
     190        G_TYPE_NONE, 
     191        1, 
     192        G_TYPE_INT, 
     193        NULL ); 
     194 
     195    //TODO add SIGNAL_GSMD_EVT_OUT_COLP       = 9,    /* Outgoing COLP */ 
     196    //TODO add SIGNAL_GSMD_EVT_CALL_WAIT      = 10,   /* Call Waiting */ 
     197    //TODO add SIGNAL_GSMD_EVT_TIMEZONE       = 11,   /* Timezone change */ 
     198    //TODO add SIGNAL_GSMD_EVT_SUBSCRIPTIONS  = 12,   /* To which events are we subscribed to */ 
     199    //TODO add SIGNAL_GSMD_EVT_CIPHER         = 13,   /* Chiphering Information */ 
     200 
    178201    /* virtual methods */ 
    179202 
     
    218241    { 
    219242        case GSMD_EVT_IN_CALL: 
    220             g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CALL], 0 ); break; 
     243            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CALL], 0, aux->u.call.type ); break; 
    221244        case GSMD_EVT_IN_SMS: 
    222             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_SMS]; break; 
     245            moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_SMS]; break; 
    223246        case GSMD_EVT_IN_GPRS: 
    224247            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_GPRS]; break; 
    225248        case GSMD_EVT_IN_CLIP: 
    226             //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP]; break; 
     249            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_IN_CLIP], 0, aux->u.clip.addr.number ); break; 
    227250        case GSMD_EVT_NETREG: 
    228             // work around for bugzilla.openmoko.org #454 
     251            // work around bugzilla.openmoko.org #454 
    229252            if ( aux->u.netreg.state == MOKO_GSMD_CONNECTION_NETREG_HOME || 
    230253                 aux->u.netreg.state == MOKO_GSMD_CONNECTION_NETREG_ROAMING ) 
     
    240263            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_PIN]; break; 
    241264        case GSMD_EVT_OUT_STATUS: 
    242             //emit = moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS]; break; 
     265            g_signal_emit( G_OBJECT(self), moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_STATUS], 0, aux->u.call_status.prog ); break; 
    243266        case GSMD_EVT_OUT_COLP: 
    244267            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_OUT_COLP]; break; 
     
    251274        case GSMD_EVT_CIPHER: 
    252275            //moko_gsmd_connection_signals[SIGNAL_GSMD_EVT_CIPHER]; break; 
    253         default: g_assert( FALSE ); // fail here on unknown event 
     276        default: 
     277            g_critical( "_moko_gsmd_connection_eventhandler: unhandled event type = %d", evt_type ); 
    254278    } 
    255279    return 0; 
     
    304328{ 
    305329    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self); 
     330    g_return_if_fail( priv->handle ); 
    306331    lgsm_netreg_register( priv->handle, 0 ); 
    307332} 
     
    310335{ 
    311336    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self); 
     337    g_return_if_fail( priv->handle ); 
    312338    lgsm_phone_power( priv->handle, on ? 1 : 0 ); 
    313339} 
     340 
     341void moko_gsmd_connection_voice_accept(MokoGsmdConnection* self) 
     342{ 
     343    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self); 
     344    g_return_if_fail( priv->handle ); 
     345    lgsm_voice_in_accept( priv->handle ); 
     346} 
     347 
     348void moko_gsmd_connection_voice_hangup(MokoGsmdConnection* self) 
     349{ 
     350    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self); 
     351    g_return_if_fail( priv->handle ); 
     352    lgsm_voice_hangup( priv->handle ); 
     353} 
     354 
     355void moko_gsmd_connection_voice_dial(MokoGsmdConnection* self, const gchar* number) 
     356{ 
     357    MokoGsmdConnectionPrivate* priv = GSMD_CONNECTION_GET_PRIVATE(self); 
     358    g_return_if_fail( priv->handle ); 
     359    g_return_if_fail( number ); 
     360    g_return_if_fail( strlen( number ) < 2 ); 
     361    struct lgsm_addr addr; 
     362    addr.type = 129; //??? 
     363    g_stpcpy( &addr.addr[0], number ); 
     364    lgsm_voice_out_init( priv->handle, &addr ); 
     365} 
  • trunk/src/target/OM-2007/openmoko-libs/libmokogsmd/moko-gsmd-connection.h

    r1757 r1855  
    5353/* signals */ 
    5454void moko_gsmd_connection_incoming_call(MokoGsmdConnection* self, int type); 
     55void moko_gsmd_connection_call_status_progress(MokoGsmdConnection* self, int type); 
    5556//sms 
    5657//gprs 
     
    5859void moko_gsmd_connection_network_registration(MokoGsmdConnection* self, int type, int lac, int cell); 
    5960void moko_gsmd_connection_signal_strength_changed(MokoGsmdConnection* self, int strength); 
     61//voice 
     62void moko_gsmd_connection_voice_accept(MokoGsmdConnection* self); 
     63void moko_gsmd_connection_voice_hangup(MokoGsmdConnection* self); 
     64void moko_gsmd_connection_voice_dial(MokoGsmdConnection* self, const gchar* number); 
    6065 
    6166G_END_DECLS 
Note: See TracChangeset for help on using the changeset viewer.