diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-25 15:25:18 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:27 +0100 |
commit | b0a9c6a7efcc31f74ff6d1bae5b55734068b3f35 (patch) | |
tree | d08cd5e2e5f3ad8ac78b6c882052116861bec9ad | |
parent | c74c3a5d2ea1db54b3893690a5db51fc9e0b76f6 (diff) |
broadband-modem: enable the Modem iface when enabling the modem
-rw-r--r-- | src/mm-broadband-modem.c | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 5f2e1b76..bbe1b028 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -1084,6 +1084,35 @@ modem_init (MMIfaceModem *self, /*****************************************************************************/ +static gboolean +enable_finish (MMBaseModem *self, + GAsyncResult *res, + GError **error) +{ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) + return FALSE; + + return TRUE; +} + +static void +iface_modem_enable_ready (MMBroadbandModem *self, + GAsyncResult *result, + GAsyncResult *enable_result) +{ + GError *error = NULL; + + if (!mm_iface_modem_enable_finish (MM_IFACE_MODEM (self), + result, + &error)) + g_simple_async_result_take_error (G_SIMPLE_ASYNC_RESULT (enable_result), error); + else + g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (enable_result), TRUE); + + g_simple_async_result_complete (G_SIMPLE_ASYNC_RESULT (enable_result)); + g_object_unref (enable_result); +} + static void enable (MMBaseModem *self, GCancellable *cancellable, @@ -1097,20 +1126,10 @@ enable (MMBaseModem *self, user_data, enable); - g_simple_async_result_set_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res), TRUE); - g_simple_async_result_complete_in_idle (G_SIMPLE_ASYNC_RESULT (res)); - g_object_unref (res); -} - -static gboolean -enable_finish (MMBaseModem *self, - GAsyncResult *res, - GError **error) -{ - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) - return FALSE; - - return TRUE; + /* Enable the Modem interface */ + mm_iface_modem_enable (MM_IFACE_MODEM (self), + (GAsyncReadyCallback)iface_modem_enable_ready, + res); } /*****************************************************************************/ |