diff options
-rw-r--r-- | cli/mmcli-common.c | 48 | ||||
-rw-r--r-- | cli/mmcli-common.h | 19 | ||||
-rw-r--r-- | cli/mmcli-manager.c | 14 | ||||
-rw-r--r-- | cli/mmcli-modem.c | 114 |
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) { |