diff options
Diffstat (limited to 'plugins/mm-modem-zte.c')
-rw-r--r-- | plugins/mm-modem-zte.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c index e5446c2f..99652f57 100644 --- a/plugins/mm-modem-zte.c +++ b/plugins/mm-modem-zte.c @@ -43,6 +43,7 @@ typedef struct { guint32 cpms_tries; guint cpms_timeout; gboolean is_icera; + MMModemIceraPrivate *icera; } MMModemZtePrivate; MMModem * @@ -52,17 +53,23 @@ mm_modem_zte_new (const char *device, guint32 vendor, guint32 product) { + MMModem *modem; + g_return_val_if_fail (device != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); g_return_val_if_fail (plugin != NULL, NULL); - return MM_MODEM (g_object_new (MM_TYPE_MODEM_ZTE, - MM_MODEM_MASTER_DEVICE, device, - MM_MODEM_DRIVER, driver, - MM_MODEM_PLUGIN, plugin, - MM_MODEM_HW_VID, vendor, - MM_MODEM_HW_PID, product, - NULL)); + modem = MM_MODEM (g_object_new (MM_TYPE_MODEM_ZTE, + MM_MODEM_MASTER_DEVICE, device, + MM_MODEM_DRIVER, driver, + MM_MODEM_PLUGIN, plugin, + MM_MODEM_HW_VID, vendor, + MM_MODEM_HW_PID, product, + NULL)); + if (modem) + MM_MODEM_ZTE_GET_PRIVATE (modem)->icera = mm_modem_icera_init_private (); + + return modem; } /*****************************************************************************/ @@ -620,6 +627,14 @@ grab_port (MMModem *modem, /*****************************************************************************/ +static MMModemIceraPrivate * +get_icera_private (MMModemIcera *icera) +{ + return MM_MODEM_ZTE_GET_PRIVATE (icera)->icera; +} + +/*****************************************************************************/ + static void modem_init (MMModem *modem_class) { @@ -630,9 +645,9 @@ modem_init (MMModem *modem_class) } static void -modem_icera_init (MMModemIcera *icera_class) +modem_icera_init (MMModemIcera *icera) { - mm_modem_icera_prepare (icera_class); + icera->get_private = get_icera_private; } static void @@ -655,7 +670,7 @@ dispose (GObject *object) if (priv->cpms_timeout) g_source_remove (priv->cpms_timeout); - mm_modem_icera_cleanup (MM_MODEM_ICERA (self)); + mm_modem_icera_dispose_private (MM_MODEM_ICERA (self)); G_OBJECT_CLASS (mm_modem_zte_parent_class)->dispose (object); } |