aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-modem.c
diff options
context:
space:
mode:
authorNathan Williams <njw@chromium.org>2012-01-23 11:04:49 -0500
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:15:06 +0100
commit3c41ce5d8b238e6a3a2cf101885e3a2df8efae0e (patch)
tree00a8151142494e9ca310e3d8b72093781650aea9 /libmm-glib/mm-modem.c
parent54c2daf937e3bc6062d5b867c1b0490381de711e (diff)
api,dbus: new `Command' method in the API to send arbitrary AT commands
BUG=chromium-os:25348 TEST="mmcli -m 0 --command='E0'" Change-Id: I320587560fde5780f9d5a4998e32364d36a71ed7
Diffstat (limited to 'libmm-glib/mm-modem.c')
-rw-r--r--libmm-glib/mm-modem.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c
index 1b3f2521..bc1887ba 100644
--- a/libmm-glib/mm-modem.c
+++ b/libmm-glib/mm-modem.c
@@ -1449,6 +1449,65 @@ mm_modem_factory_reset_sync (MMModem *self,
error);
}
+
+void
+mm_modem_command (MMModem *self,
+ const gchar *cmd,
+ guint timeout,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_GDBUS_IS_MODEM (self));
+
+ mm_gdbus_modem_call_command (self,
+ cmd,
+ timeout,
+ cancellable,
+ callback,
+ user_data);
+}
+
+gchar *
+mm_modem_command_finish (MMModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ gchar *result;
+
+ g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), FALSE);
+
+ if (!mm_gdbus_modem_call_command_finish (self,
+ &result,
+ res,
+ error))
+ return NULL;
+
+ return result;
+}
+
+gchar *
+mm_modem_command_sync (MMModem *self,
+ const gchar *cmd,
+ guint timeout,
+ GCancellable *cancellable,
+ GError **error)
+{
+ gchar *result;
+
+ g_return_val_if_fail (MM_GDBUS_IS_MODEM (self), NULL);
+
+ if (!mm_gdbus_modem_call_command_sync (self,
+ cmd,
+ timeout,
+ &result,
+ cancellable,
+ error))
+ return NULL;
+
+ return result;
+}
+
gboolean
mm_modem_set_allowed_modes_finish (MMModem *self,
GAsyncResult *res,