aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/mmcli-common.c48
-rw-r--r--cli/mmcli-common.h19
-rw-r--r--cli/mmcli-manager.c14
-rw-r--r--cli/mmcli-modem.c114
4 files changed, 90 insertions, 105 deletions
diff --git a/cli/mmcli-common.c b/cli/mmcli-common.c
index 9062e230..5dccd823 100644
--- a/cli/mmcli-common.c
+++ b/cli/mmcli-common.c
@@ -20,6 +20,8 @@
#include <stdlib.h>
+#include <libmm-glib.h>
+
#include "mmcli-common.h"
static void
@@ -108,20 +110,19 @@ mmcli_get_manager_sync (GDBusConnection *connection)
#define MODEM_PATH_TAG "modem-path-tag"
-static MMModem *
+static MMObject *
find_modem (MMManager *manager,
const gchar *modem_path)
{
GList *modems;
GList *l;
- MMModem *found = NULL;
+ MMObject *found = NULL;
modems = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (manager));
for (l = modems; l; l = g_list_next (l)) {
- MMModem *modem = MM_MODEM (l->data);
+ MMObject *modem = MM_OBJECT (l->data);
- if (g_str_equal (mm_modem_get_path (modem),
- modem_path)) {
+ if (g_str_equal (mm_object_get_path (modem), modem_path)) {
found = g_object_ref (modem);
break;
}
@@ -173,7 +174,7 @@ get_manager_ready (GDBusConnection *connection,
GSimpleAsyncResult *simple)
{
MMManager *manager;
- MMModem *found;
+ MMObject *found;
const gchar *modem_path;
manager = mmcli_get_manager_finish (res);
@@ -186,7 +187,7 @@ get_manager_ready (GDBusConnection *connection,
g_object_unref (simple);
}
-MMModem *
+MMObject *
mmcli_get_modem_finish (GAsyncResult *res)
{
return g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
@@ -218,12 +219,12 @@ mmcli_get_modem (GDBusConnection *connection,
result);
}
-MMModem *
+MMObject *
mmcli_get_modem_sync (GDBusConnection *connection,
const gchar *modem_str)
{
MMManager *manager;
- MMModem *found;
+ MMObject *found;
gchar *modem_path;
manager = mmcli_get_manager_sync (connection);
@@ -235,3 +236,32 @@ mmcli_get_modem_sync (GDBusConnection *connection,
return found;
}
+
+const gchar *
+mmcli_get_state_string (MMModemState state)
+{
+ static GEnumClass *enum_class = NULL;
+ GEnumValue *value;
+
+ if (!enum_class)
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_MODEM_STATE));
+
+ value = g_enum_get_value (enum_class, state);
+ return value->value_nick;
+}
+
+const gchar *
+mmcli_get_state_reason_string (MMModemStateChangeReason reason)
+{
+ switch (reason) {
+ case MM_MODEM_STATE_CHANGE_REASON_UNKNOWN:
+ return "None or unknown";
+ case MM_MODEM_STATE_CHANGE_REASON_USER_REQUESTED:
+ return "User request";
+ case MM_MODEM_STATE_CHANGE_REASON_SUSPEND:
+ return "Suspend";
+ }
+
+ g_warn_if_reached ();
+ return NULL;
+}
diff --git a/cli/mmcli-common.h b/cli/mmcli-common.h
index 42e2a84e..51366265 100644
--- a/cli/mmcli-common.h
+++ b/cli/mmcli-common.h
@@ -27,13 +27,16 @@ MMManager *mmcli_get_manager_finish (GAsyncResult *res);
MMManager *mmcli_get_manager_sync (GDBusConnection *connection);
-void mmcli_get_modem (GDBusConnection *connection,
- const gchar *modem_str,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-MMModem *mmcli_get_modem_finish (GAsyncResult *res);
-MMModem *mmcli_get_modem_sync (GDBusConnection *connection,
- const gchar *modem_str);
+void mmcli_get_modem (GDBusConnection *connection,
+ const gchar *modem_str,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MMObject *mmcli_get_modem_finish (GAsyncResult *res);
+MMObject *mmcli_get_modem_sync (GDBusConnection *connection,
+ const gchar *modem_str);
+
+const gchar *mmcli_get_state_string (MMModemState state);
+const gchar *mmcli_get_state_reason_string (MMModemStateChangeReason reason);
#endif /* _MMCLI_COMMON_H_ */
diff --git a/cli/mmcli-manager.c b/cli/mmcli-manager.c
index 07c69707..ee0bff8c 100644
--- a/cli/mmcli-manager.c
+++ b/cli/mmcli-manager.c
@@ -179,17 +179,17 @@ scan_devices_ready (MMManager *manager,
}
static void
-print_modem_short_info (MMModem *modem)
+print_modem_short_info (MMObject *modem)
{
g_print ("\t%s [%s] %s\n",
- mm_modem_get_path (modem),
- mm_modem_get_manufacturer (modem),
- mm_modem_get_model (modem));
+ mm_object_get_path (modem),
+ mm_modem_get_manufacturer (mm_object_peek_modem (modem)),
+ mm_modem_get_model (mm_object_peek_modem (modem)));
}
static void
device_added (MMManager *manager,
- MMModem *modem)
+ MMObject *modem)
{
g_print ("Added modem:\n");
print_modem_short_info (modem);
@@ -198,7 +198,7 @@ device_added (MMManager *manager,
static void
device_removed (MMManager *manager,
- MMModem *modem)
+ MMObject *modem)
{
g_print ("Removed modem:\n");
print_modem_short_info (modem);
@@ -220,7 +220,7 @@ list_current_modems (MMManager *manager)
g_print ("Found %u modems:\n", g_list_length (modems));
for (l = modems; l; l = g_list_next (l)) {
- print_modem_short_info (MM_MODEM (l->data));
+ print_modem_short_info (MM_OBJECT (l->data));
}
g_list_foreach (modems, (GFunc)g_object_unref, NULL);
g_list_free (modems);
diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c
index c8b53445..1c7703ac 100644
--- a/cli/mmcli-modem.c
+++ b/cli/mmcli-modem.c
@@ -36,6 +36,7 @@
/* Context */
typedef struct {
GCancellable *cancellable;
+ MMObject *object;
MMModem *modem;
} Context;
static Context *ctx;
@@ -127,6 +128,8 @@ context_free (Context *ctx)
g_object_unref (ctx->cancellable);
if (ctx->modem)
g_object_unref (ctx->modem);
+ if (ctx->object)
+ g_object_unref (ctx->object);
g_free (ctx);
}
@@ -173,52 +176,6 @@ mmcli_modem_shutdown (void)
/* NULL); */
/* } */
-/* static const gchar * */
-/* get_state_string (MMModemState state) */
-/* { */
-/* switch (state) { */
-/* case MM_MODEM_STATE_UNKNOWN: */
-/* return "Unknown"; */
-/* case MM_MODEM_STATE_DISABLED: */
-/* return "Disabled"; */
-/* case MM_MODEM_STATE_DISABLING: */
-/* return "Disabling"; */
-/* case MM_MODEM_STATE_ENABLING: */
-/* return "Enabling"; */
-/* case MM_MODEM_STATE_ENABLED: */
-/* return "Enabled"; */
-/* case MM_MODEM_STATE_SEARCHING: */
-/* return "Searching"; */
-/* case MM_MODEM_STATE_REGISTERED: */
-/* return "Registered"; */
-/* case MM_MODEM_STATE_DISCONNECTING: */
-/* return "Disconnecting"; */
-/* case MM_MODEM_STATE_CONNECTING: */
-/* return "Connecting"; */
-/* case MM_MODEM_STATE_CONNECTED: */
-/* return "Connected"; */
-/* } */
-
-/* g_warn_if_reached (); */
-/* return NULL; */
-/* } */
-
-/* static const gchar * */
-/* get_state_reason_string (MMModemStateReason reason) */
-/* { */
-/* switch (reason) { */
-/* case MM_MODEM_STATE_REASON_NONE: */
-/* return "None or unknown"; */
-/* case MM_MODEM_STATE_REASON_USER_REQUESTED: */
-/* return "User request"; */
-/* case MM_MODEM_STATE_REASON_SUSPEND: */
-/* return "Suspend"; */
-/* } */
-
-/* g_warn_if_reached (); */
-/* return NULL; */
-/* } */
-
/* static void */
/* get_info_process_reply (gboolean result, */
/* const GError *error, */
@@ -370,9 +327,7 @@ enable_ready (MMModem *modem,
gboolean operation_result;
GError *error = NULL;
- operation_result = mm_modem_enable_finish (modem,
- result,
- &error);
+ operation_result = mm_modem_enable_finish (modem, result, &error);
enable_process_reply (operation_result, error);
mmcli_async_operation_done ();
@@ -399,9 +354,7 @@ disable_ready (MMModem *modem,
gboolean operation_result;
GError *error = NULL;
- operation_result = mm_modem_disable_finish (modem,
- result,
- &error);
+ operation_result = mm_modem_disable_finish (modem, result, &error);
disable_process_reply (operation_result, error);
mmcli_async_operation_done ();
@@ -428,9 +381,7 @@ reset_ready (MMModem *modem,
gboolean operation_result;
GError *error = NULL;
- operation_result = mm_modem_reset_finish (modem,
- result,
- &error);
+ operation_result = mm_modem_reset_finish (modem, result, &error);
reset_process_reply (operation_result, error);
mmcli_async_operation_done ();
@@ -457,33 +408,33 @@ factory_reset_ready (MMModem *modem,
gboolean operation_result;
GError *error = NULL;
- operation_result = mm_modem_factory_reset_finish (modem,
- result,
- &error);
+ operation_result = mm_modem_factory_reset_finish (modem, result, &error);
factory_reset_process_reply (operation_result, error);
mmcli_async_operation_done ();
}
-/* static void */
-/* state_changed (MMModem *modem, */
-/* MMModemState old_state, */
-/* MMModemState new_state, */
-/* MMModemStateReason reason) */
-/* { */
-/* g_print ("State changed: '%s' --> '%s' (Reason: %s)\n", */
-/* get_state_string (old_state), */
-/* get_state_string (new_state), */
-/* get_state_reason_string (reason)); */
-/* fflush (stdout); */
-/* } */
+static void
+state_changed (MMObject *modem,
+ MMModemState old_state,
+ MMModemState new_state,
+ MMModemStateChangeReason reason)
+{
+ g_print ("\t%s: State changed, '%s' --> '%s' (Reason: %s)\n",
+ mm_object_get_path (modem),
+ mmcli_get_state_string (old_state),
+ mmcli_get_state_string (new_state),
+ mmcli_get_state_reason_string (reason));
+ fflush (stdout);
+}
static void
get_modem_ready (GObject *source,
GAsyncResult *result,
gpointer none)
{
- ctx->modem = mmcli_get_modem_finish (result);
+ ctx->object = mmcli_get_modem_finish (result);
+ ctx->modem = mm_object_get_modem (ctx->object);
/* Request to get info from modem? */
if (info_flag) {
@@ -498,17 +449,17 @@ get_modem_ready (GObject *source,
/* Request to monitor modems? */
if (monitor_state_flag) {
- /* TODO */
+ MMModemState current;
- /* MMModemState current; */
-
- /* g_signal_connect (ctxt.modem, */
- /* "state-changed", */
- /* G_CALLBACK (state_changed), */
- /* NULL); */
+ g_signal_connect (ctx->modem,
+ "state-changed",
+ G_CALLBACK (state_changed),
+ NULL);
- /* current = mm_modem_get_state (ctxt.modem); */
- /* g_print ("Initial state: '%s'\n", get_state_string (current)); */
+ current = mm_modem_get_state (ctx->modem);
+ g_print ("\t%s: Initial state, '%s'\n",
+ mm_object_get_path (ctx->object),
+ mmcli_get_state_string (current));
return;
}
@@ -586,7 +537,8 @@ mmcli_modem_run_synchronous (GDBusConnection *connection)
/* Initialize context */
ctx = g_new0 (Context, 1);
- ctx->modem = mmcli_get_modem_sync (connection, modem_str);
+ ctx->object = mmcli_get_modem_sync (connection, modem_str);
+ ctx->modem = mm_object_get_modem (ctx->object);
/* Request to get info from modem? */
if (info_flag) {