diff options
Diffstat (limited to 'src/mm-generic-gsm.h')
-rw-r--r-- | src/mm-generic-gsm.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/mm-generic-gsm.h b/src/mm-generic-gsm.h index 7cfd6253..de0b00b7 100644 --- a/src/mm-generic-gsm.h +++ b/src/mm-generic-gsm.h @@ -21,6 +21,7 @@ #include "mm-modem-gsm-network.h" #include "mm-modem-base.h" #include "mm-serial-port.h" +#include "mm-callback-info.h" #define MM_TYPE_GENERIC_GSM (mm_generic_gsm_get_type ()) #define MM_GENERIC_GSM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_GENERIC_GSM, MMGenericGsm)) @@ -52,6 +53,15 @@ typedef struct { typedef struct { MMModemBaseClass parent; + + /* Called after opening the primary serial port and updating the modem's + * state to ENABLING, but before sending any commands to the device. Modems + * that need to perform custom initialization sequences or other setup should + * generally override this method instead of the MMModem interface's enable() + * method, unless the customization must happen *after* the generic init + * sequence has completed. + */ + void (*do_enable) (MMGenericGsm *self, MMModemFn callback, gpointer user_data); } MMGenericGsmClass; GType mm_generic_gsm_get_type (void); @@ -60,6 +70,10 @@ MMModem *mm_generic_gsm_new (const char *device, const char *driver, const char *plugin); +/* Private, for subclasses */ + +#define MM_GENERIC_GSM_PREV_STATE_TAG "prev-state" + void mm_generic_gsm_set_unsolicited_registration (MMGenericGsm *modem, gboolean enabled); @@ -85,4 +99,31 @@ MMPort *mm_generic_gsm_grab_port (MMGenericGsm *modem, MMPortType ptype, GError **error); +/* stay_connected should be TRUE for unsolicited registration updates, otherwise + * the registration update will clear connected/connecting/disconnecting state + * which we don't want. stay_connected should be FALSE for other cases like + * updating the state after disconnecting, or after a connect error occurs. + */ +void mm_generic_gsm_update_enabled_state (MMGenericGsm *modem, + gboolean stay_connected, + MMModemStateReason reason); + +/* Called to complete the enable operation for custom enable() handling; if an + * error is passed in, it copies the error to the callback info. This function + * always schedules the callback info. It will also update the modem with the + * correct state for both failure and success of the enable operation. + */ +void mm_generic_gsm_enable_complete (MMGenericGsm *modem, + GError *error, + MMCallbackInfo *info); + +/* Called to complete the enable operation for custom connect() handling; if an + * error is passed in, it copies the error to the callback info. This function + * always schedules the callback info. It will also update the modem with the + * correct state for both failure and success of the connect operation. + */ +void mm_generic_gsm_connect_complete (MMGenericGsm *modem, + GError *error, + MMCallbackInfo *info); + #endif /* MM_GENERIC_GSM_H */ |