diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-21 13:16:45 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-29 17:26:47 +0200 |
commit | 02c049ce7dfd7aacfc2fe50fe76a2221764501eb (patch) | |
tree | 994084186ed6313a76a399281f5b2bc4a4154ce3 | |
parent | b29fcde7e223fc96fb1445e38797b46916927aa6 (diff) |
broadband-modem-qmi: create a `MMBearerQmi' always by default
We still don't consider the case of having all net ports already connected and
falling back to PPP over a serial port.
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index b56d3748..cd0bc406 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -33,6 +33,7 @@ #include "mm-iface-modem-cdma.h" #include "mm-iface-modem-messaging.h" #include "mm-sim-qmi.h" +#include "mm-bearer-qmi.h" static void iface_modem_init (MMIfaceModem *iface); static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface); @@ -106,6 +107,47 @@ ensure_qmi_client (MMBroadbandModemQmi *self, } /*****************************************************************************/ +/* Create Bearer (Modem interface) */ + +static MMBearer * +modem_create_bearer_finish (MMIfaceModem *self, + GAsyncResult *res, + GError **error) +{ + MMBearer *bearer; + + bearer = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)); + mm_dbg ("New bearer created at DBus path '%s'", mm_bearer_get_path (bearer)); + + return g_object_ref (bearer); +} + +static void +modem_create_bearer (MMIfaceModem *self, + MMBearerProperties *properties, + GAsyncReadyCallback callback, + gpointer user_data) +{ + MMBearer *bearer; + GSimpleAsyncResult *result; + + /* Set a new ref to the bearer object as result */ + result = g_simple_async_result_new (G_OBJECT (self), + callback, + user_data, + modem_create_bearer); + + /* We just create a MMBearerQmi */ + mm_dbg ("Creating QMI bearer in QMI modem"); + bearer = mm_bearer_qmi_new (MM_BROADBAND_MODEM_QMI (self), + properties); + + g_simple_async_result_set_op_res_gpointer (result, bearer, g_object_unref); + g_simple_async_result_complete_in_idle (result); + g_object_unref (result); +} + +/*****************************************************************************/ /* Capabilities loading (Modem interface) */ static MMModemCapability @@ -5218,6 +5260,10 @@ iface_modem_init (MMIfaceModem *iface) iface->create_sim = create_sim; iface->create_sim_finish = create_sim_finish; + /* Create QMI-specific bearer */ + iface->create_bearer = modem_create_bearer; + iface->create_bearer_finish = modem_create_bearer_finish; + /* Other actions */ iface->factory_reset = modem_factory_reset; iface->factory_reset_finish = modem_factory_reset_finish; |