Disable the HSO modem in addition to just closing the device on Enable(False).
This commit is contained in:
@@ -286,6 +286,41 @@ mm_hso_modem_get_ip4_config (MMModemHso *self,
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void
|
||||||
|
modem_enable_done (MMModem *modem, GError *error, gpointer user_data)
|
||||||
|
{
|
||||||
|
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
|
||||||
|
MMModem *parent_modem_iface;
|
||||||
|
|
||||||
|
parent_modem_iface = g_type_interface_peek_parent (MM_MODEM_GET_INTERFACE (modem));
|
||||||
|
parent_modem_iface->enable (modem,
|
||||||
|
GPOINTER_TO_INT (mm_callback_info_get_data (info, "enable")),
|
||||||
|
(MMModemFn) mm_callback_info_get_data (info, "callback"),
|
||||||
|
mm_callback_info_get_data (info, "user-data"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
enable (MMModem *modem,
|
||||||
|
gboolean enable,
|
||||||
|
MMModemFn callback,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
MMCallbackInfo *info;
|
||||||
|
|
||||||
|
info = mm_callback_info_new (modem, modem_enable_done, NULL);
|
||||||
|
info->user_data = info;
|
||||||
|
mm_callback_info_set_data (info, "enable", GINT_TO_POINTER (enable), NULL);
|
||||||
|
mm_callback_info_set_data (info, "callback", callback, NULL);
|
||||||
|
mm_callback_info_set_data (info, "user-data", user_data, NULL);
|
||||||
|
|
||||||
|
if (enable)
|
||||||
|
mm_callback_info_schedule (info);
|
||||||
|
else
|
||||||
|
hso_enable (MM_MODEM_HSO (modem), FALSE, modem_enable_done, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
impl_hso_auth_done (MMModem *modem,
|
impl_hso_auth_done (MMModem *modem,
|
||||||
GError *error,
|
GError *error,
|
||||||
@@ -337,6 +372,12 @@ mm_modem_hso_init (MMModemHso *self)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
modem_init (MMModem *modem_class)
|
||||||
|
{
|
||||||
|
modem_class->enable = enable;
|
||||||
|
}
|
||||||
|
|
||||||
static GObject*
|
static GObject*
|
||||||
constructor (GType type,
|
constructor (GType type,
|
||||||
guint n_construct_params,
|
guint n_construct_params,
|
||||||
@@ -445,7 +486,12 @@ mm_modem_hso_get_type (void)
|
|||||||
(GInstanceInitFunc) mm_modem_hso_init,
|
(GInstanceInitFunc) mm_modem_hso_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const GInterfaceInfo modem_iface_info = {
|
||||||
|
(GInterfaceInitFunc) modem_init
|
||||||
|
};
|
||||||
|
|
||||||
modem_hso_type = g_type_register_static (MM_TYPE_GENERIC_GSM, "MMModemHso", &modem_hso_type_info, 0);
|
modem_hso_type = g_type_register_static (MM_TYPE_GENERIC_GSM, "MMModemHso", &modem_hso_type_info, 0);
|
||||||
|
g_type_add_interface_static (modem_hso_type, MM_TYPE_MODEM, &modem_iface_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
return modem_hso_type;
|
return modem_hso_type;
|
||||||
|
Reference in New Issue
Block a user