diff options
author | Dan Williams <dcbw@redhat.com> | 2009-09-23 16:04:25 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2009-09-23 16:04:25 -0700 |
commit | 3b19a85727458821f5df20153f8c04bc7717ba30 (patch) | |
tree | e06453dd1a6296200e55a7bda93a2540f25e99f7 /src/mm-modem.c | |
parent | f2a3825f9d10ecebc63ce3c8602473cbbb6ab72c (diff) |
core: split generic modem enable/disable operations
Diffstat (limited to 'src/mm-modem.c')
-rw-r--r-- | src/mm-modem.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/mm-modem.c b/src/mm-modem.c index 79a07939..ca2afbd7 100644 --- a/src/mm-modem.c +++ b/src/mm-modem.c @@ -54,7 +54,6 @@ async_call_done (MMModem *modem, GError *error, gpointer user_data) void mm_modem_enable (MMModem *self, - gboolean enable, MMModemFn callback, gpointer user_data) { @@ -62,7 +61,21 @@ mm_modem_enable (MMModem *self, g_return_if_fail (callback != NULL); if (MM_MODEM_GET_INTERFACE (self)->enable) - MM_MODEM_GET_INTERFACE (self)->enable (self, enable, callback, user_data); + MM_MODEM_GET_INTERFACE (self)->enable (self, callback, user_data); + else + async_op_not_supported (self, callback, user_data); +} + +void +mm_modem_disable (MMModem *self, + MMModemFn callback, + gpointer user_data) +{ + g_return_if_fail (MM_IS_MODEM (self)); + g_return_if_fail (callback != NULL); + + if (MM_MODEM_GET_INTERFACE (self)->disable) + MM_MODEM_GET_INTERFACE (self)->disable (self, callback, user_data); else async_op_not_supported (self, callback, user_data); } @@ -72,7 +85,10 @@ impl_modem_enable (MMModem *modem, gboolean enable, DBusGMethodInvocation *context) { - mm_modem_enable (modem, enable, async_call_done, context); + if (enable) + mm_modem_enable (modem, async_call_done, context); + else + mm_modem_disable (modem, async_call_done, context); } void |