aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-01-01 12:09:27 +0100
committerAleksander Morgado <aleksander@lanedo.com>2013-01-11 10:05:46 +0100
commit091c47d695bf48541c49e8d5e07647d0901e367b (patch)
treeb20eaa57b0ee1e774b32bf14de698f3f5e22c92e
parenteec5d00a97582830baf7e0458f483ffc04398da0 (diff)
libmm-glib,modem: new methods to handle the power state
-rw-r--r--docs/reference/libmm-glib/libmm-glib-sections.txt4
-rw-r--r--libmm-glib/mm-modem.c94
-rw-r--r--libmm-glib/mm-modem.h15
3 files changed, 113 insertions, 0 deletions
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 61f5e83d..6f5663f5 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -77,6 +77,7 @@ MMModem
mm_modem_get_path
mm_modem_dup_path
mm_modem_get_state
+mm_modem_get_power_state
mm_modem_get_modem_capabilities
mm_modem_get_current_capabilities
mm_modem_get_manufacturer
@@ -126,6 +127,9 @@ mm_modem_enable_sync
mm_modem_disable
mm_modem_disable_finish
mm_modem_disable_sync
+mm_modem_set_power_state
+mm_modem_set_power_state_finish
+mm_modem_set_power_state_sync
mm_modem_set_allowed_modes
mm_modem_set_allowed_modes_finish
mm_modem_set_allowed_modes_sync
diff --git a/libmm-glib/mm-modem.c b/libmm-glib/mm-modem.c
index b575a300..f6aaeebe 100644
--- a/libmm-glib/mm-modem.c
+++ b/libmm-glib/mm-modem.c
@@ -817,6 +817,24 @@ mm_modem_get_state (MMModem *self)
/*****************************************************************************/
/**
+ * mm_modem_get_power_state:
+ * @self: A #MMModem.
+ *
+ * Gets the power state of the #MMModem.
+ *
+ * Returns: A #MMModemPowerState value.
+ */
+MMModemPowerState
+mm_modem_get_power_state (MMModem *self)
+{
+ g_return_val_if_fail (MM_IS_MODEM (self), MM_MODEM_POWER_STATE_UNKNOWN);
+
+ return (MMModemPowerState) mm_gdbus_modem_get_power_state (MM_GDBUS_MODEM (self));
+}
+
+/*****************************************************************************/
+
+/**
* mm_modem_get_access_technology:
* @self: A #MMModem.
*
@@ -2068,6 +2086,82 @@ mm_modem_command_sync (MMModem *self,
/*****************************************************************************/
/**
+ * mm_modem_set_power_state_finish:
+ * @self: A #MMModem.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_set_power_state().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with mm_modem_set_power_state().
+ *
+ * Returns: %TRUE if the power state was successfully set, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_set_power_state_finish (MMModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM (self), FALSE);
+
+ return mm_gdbus_modem_call_set_power_state_finish (MM_GDBUS_MODEM (self), res, error);
+}
+
+/**
+ * mm_modem_set_power_state:
+ * @self: A #MMModem.
+ * @state: Either %MM_MODEM_POWER_STATE_LOW or %MM_MODEM_POWER_STATE_ON. Every other #MMModemPowerState value is not allowed.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously sets the power state of the device. This method can only be
+ * used while the modem is in %MM_MODEM_STATE_DISABLED state.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call mm_modem_set_power_state_finish() to get the result of the operation.
+ *
+ * See mm_modem_set_power_state_sync() for the synchronous, blocking version of this method.
+ */
+void
+mm_modem_set_power_state (MMModem *self,
+ MMModemPowerState state,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_return_if_fail (MM_IS_MODEM (self));
+
+ mm_gdbus_modem_call_set_power_state (MM_GDBUS_MODEM (self), state, cancellable, callback, user_data);
+}
+
+/**
+ * mm_modem_set_power_state_sync:
+ * @self: A #MMModem.
+ * @state: Either %MM_MODEM_POWER_STATE_LOW or %MM_MODEM_POWER_STATE_ON. Every other #MMModemPowerState value is not allowed.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously sets the power state of the device. This method can only be
+ * used while the modem is in %MM_MODEM_STATE_DISABLED state.
+ *
+ * The calling thread is blocked until a reply is received. See mm_modem_set_power_state()
+ * for the asynchronous version of this method.
+ *
+ * Returns: %TRUE if the power state was successfully set, %FALSE if @error is set.
+ */
+gboolean
+mm_modem_set_power_state_sync (MMModem *self,
+ MMModemPowerState state,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail (MM_IS_MODEM (self), FALSE);
+
+ return mm_gdbus_modem_call_set_power_state_sync (MM_GDBUS_MODEM (self), state, cancellable, error);
+}
+
+/*****************************************************************************/
+
+/**
* mm_modem_set_allowed_modes_finish:
* @self: A #MMModem.
* @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to mm_modem_set_allowed_modes().
diff --git a/libmm-glib/mm-modem.h b/libmm-glib/mm-modem.h
index 46609ca4..7d5801c4 100644
--- a/libmm-glib/mm-modem.h
+++ b/libmm-glib/mm-modem.h
@@ -118,6 +118,8 @@ MMUnlockRetries *mm_modem_peek_unlock_retries (MMModem *self);
MMModemState mm_modem_get_state (MMModem *self);
+MMModemPowerState mm_modem_get_power_state (MMModem *self);
+
MMModemAccessTechnology mm_modem_get_access_technologies (MMModem *self);
guint mm_modem_get_signal_quality (MMModem *self,
@@ -241,6 +243,19 @@ gchar *mm_modem_command_sync (MMModem *self,
GCancellable *cancellable,
GError **error);
+void mm_modem_set_power_state (MMModem *self,
+ MMModemPowerState state,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean mm_modem_set_power_state_finish (MMModem *self,
+ GAsyncResult *res,
+ GError **error);
+gboolean mm_modem_set_power_state_sync (MMModem *self,
+ MMModemPowerState state,
+ GCancellable *cancellable,
+ GError **error);
+
void mm_modem_set_allowed_modes (MMModem *self,
MMModemMode modes,
MMModemMode preferred,