diff options
Diffstat (limited to 'src/mm-generic-gsm.c')
-rw-r--r-- | src/mm-generic-gsm.c | 124 |
1 files changed, 13 insertions, 111 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index 7df27a2e..169fca8a 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -28,7 +28,18 @@ #include "mm-callback-info.h" #include "mm-serial-parsers.h" -static gpointer mm_generic_gsm_parent_class = NULL; +static void modem_init (MMModem *modem_class); +static void modem_gsm_card_init (MMModemGsmCard *gsm_card_class); +static void modem_gsm_network_init (MMModemGsmNetwork *gsm_network_class); +static void modem_gsm_sms_init (MMModemGsmSms *gsm_sms_class); +static void modem_simple_init (MMModemSimple *class); + +G_DEFINE_TYPE_EXTENDED (MMGenericGsm, mm_generic_gsm, MM_TYPE_MODEM_BASE, 0, + G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM, modem_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_GSM_CARD, modem_gsm_card_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_GSM_NETWORK, modem_gsm_network_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_GSM_SMS, modem_gsm_sms_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_SIMPLE, modem_simple_init)) #define MM_GENERIC_GSM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_GENERIC_GSM, MMGenericGsmPrivate)) @@ -207,10 +218,7 @@ check_valid (MMGenericGsm *self) if (priv->primary && priv->data) new_valid = TRUE; - if (priv->valid != new_valid) { - priv->valid = new_valid; - g_object_notify (G_OBJECT (self), MM_MODEM_VALID); - } + mm_modem_base_set_valid (MM_MODEM_BASE (self), new_valid); } static gboolean @@ -1873,26 +1881,8 @@ static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - MMGenericGsmPrivate *priv = MM_GENERIC_GSM_GET_PRIVATE (object); - switch (prop_id) { - case MM_MODEM_PROP_DRIVER: - /* Construct only */ - priv->driver = g_value_dup_string (value); - break; - case MM_MODEM_PROP_PLUGIN: - /* Construct only */ - priv->plugin = g_value_dup_string (value); - break; - case MM_MODEM_PROP_MASTER_DEVICE: - /* Constrcut only */ - priv->device = g_value_dup_string (value); - break; - case MM_MODEM_PROP_IP_METHOD: - priv->ip_method = g_value_get_uint (value); - break; case MM_MODEM_PROP_TYPE: - case MM_MODEM_PROP_VALID: case MM_GENERIC_GSM_PROP_POWER_UP_CMD: case MM_GENERIC_GSM_PROP_POWER_DOWN_CMD: case MM_GENERIC_GSM_PROP_INIT_CMD: @@ -1918,24 +1908,9 @@ get_property (GObject *object, guint prop_id, else g_value_set_string (value, NULL); break; - case MM_MODEM_PROP_MASTER_DEVICE: - g_value_set_string (value, priv->device); - break; - case MM_MODEM_PROP_DRIVER: - g_value_set_string (value, priv->driver); - break; - case MM_MODEM_PROP_PLUGIN: - g_value_set_string (value, priv->plugin); - break; case MM_MODEM_PROP_TYPE: g_value_set_uint (value, MM_MODEM_TYPE_GSM); break; - case MM_MODEM_PROP_IP_METHOD: - g_value_set_uint (value, priv->ip_method); - break; - case MM_MODEM_PROP_VALID: - g_value_set_boolean (value, priv->valid); - break; case MM_GENERIC_GSM_PROP_POWER_UP_CMD: g_value_set_string (value, "+CFUN=1"); break; @@ -1971,7 +1946,6 @@ finalize (GObject *object) mm_generic_gsm_pending_registration_stop (MM_GENERIC_GSM (object)); - g_free (priv->driver); g_free (priv->oper_code); g_free (priv->oper_name); @@ -1997,30 +1971,10 @@ mm_generic_gsm_class_init (MMGenericGsmClass *klass) MM_MODEM_DATA_DEVICE); g_object_class_override_property (object_class, - MM_MODEM_PROP_MASTER_DEVICE, - MM_MODEM_MASTER_DEVICE); - - g_object_class_override_property (object_class, - MM_MODEM_PROP_DRIVER, - MM_MODEM_DRIVER); - - g_object_class_override_property (object_class, - MM_MODEM_PROP_PLUGIN, - MM_MODEM_PLUGIN); - - g_object_class_override_property (object_class, MM_MODEM_PROP_TYPE, MM_MODEM_TYPE); g_object_class_override_property (object_class, - MM_MODEM_PROP_IP_METHOD, - MM_MODEM_IP_METHOD); - - g_object_class_override_property (object_class, - MM_MODEM_PROP_VALID, - MM_MODEM_VALID); - - g_object_class_override_property (object_class, MM_GENERIC_GSM_PROP_SUPPORTED_BANDS, MM_MODEM_GSM_CARD_SUPPORTED_BANDS); @@ -2053,55 +2007,3 @@ mm_generic_gsm_class_init (MMGenericGsmClass *klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } -GType -mm_generic_gsm_get_type (void) -{ - static GType generic_gsm_type = 0; - - if (G_UNLIKELY (generic_gsm_type == 0)) { - static const GTypeInfo generic_gsm_type_info = { - sizeof (MMGenericGsmClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) mm_generic_gsm_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (MMGenericGsm), - 0, /* n_preallocs */ - (GInstanceInitFunc) mm_generic_gsm_init, - }; - - static const GInterfaceInfo modem_iface_info = { - (GInterfaceInitFunc) modem_init - }; - - static const GInterfaceInfo modem_gsm_card_info = { - (GInterfaceInitFunc) modem_gsm_card_init - }; - - static const GInterfaceInfo modem_gsm_network_info = { - (GInterfaceInitFunc) modem_gsm_network_init - }; - - static const GInterfaceInfo modem_gsm_sms_info = { - (GInterfaceInitFunc) modem_gsm_sms_init - }; - - static const GInterfaceInfo modem_simple_info = { - (GInterfaceInitFunc) modem_simple_init - }; - - generic_gsm_type = g_type_register_static (MM_TYPE_MODEM_BASE, - "MMGenericGsm", - &generic_gsm_type_info, - 0); - - g_type_add_interface_static (generic_gsm_type, MM_TYPE_MODEM, &modem_iface_info); - g_type_add_interface_static (generic_gsm_type, MM_TYPE_MODEM_GSM_CARD, &modem_gsm_card_info); - g_type_add_interface_static (generic_gsm_type, MM_TYPE_MODEM_GSM_NETWORK, &modem_gsm_network_info); - g_type_add_interface_static (generic_gsm_type, MM_TYPE_MODEM_GSM_SMS, &modem_gsm_sms_info); - g_type_add_interface_static (generic_gsm_type, MM_TYPE_MODEM_SIMPLE, &modem_simple_info); - } - - return generic_gsm_type; -} |