diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-26 20:29:14 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-29 09:17:53 +0200 |
commit | a69b4d2451c11bf277d37c20e2e58b37c3986a80 (patch) | |
tree | 871d8218bcd08f8480e665d852ce45c32828fc6b /cli | |
parent | ceefa2c356ae270c7dda4b5e771d225502d4913d (diff) |
mmcli: new `--location-status' to show supported and enabled location sources
Diffstat (limited to 'cli')
-rw-r--r-- | cli/mmcli-modem-location.c | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/cli/mmcli-modem-location.c b/cli/mmcli-modem-location.c index d4f8b171..78c2feba 100644 --- a/cli/mmcli-modem-location.c +++ b/cli/mmcli-modem-location.c @@ -44,11 +44,16 @@ typedef struct { static Context *ctx; /* Options */ +static gboolean status_flag; static gboolean enable_3gpp_flag; static gboolean disable_3gpp_flag; static gboolean get_3gpp_flag; static GOptionEntry entries[] = { + { "location-status", 0, 0, G_OPTION_ARG_NONE, &status_flag, + "Show status of location gathering.", + NULL + }, { "location-enable-3gpp", 0, 0, G_OPTION_ARG_NONE, &enable_3gpp_flag, "Enable 3GPP location gathering.", NULL @@ -88,7 +93,8 @@ mmcli_modem_location_options_enabled (void) if (checked) return !!n_actions; - n_actions = (enable_3gpp_flag + + n_actions = (status_flag + + enable_3gpp_flag + disable_3gpp_flag + get_3gpp_flag); @@ -97,6 +103,9 @@ mmcli_modem_location_options_enabled (void) exit (EXIT_FAILURE); } + if (status_flag) + mmcli_force_sync_operation (); + checked = TRUE; return !!n_actions; } @@ -141,6 +150,30 @@ mmcli_modem_location_shutdown (void) } static void +print_location_status (void) +{ + gchar *capabilities_str; + gchar *enabled_str; + + capabilities_str = (mm_modem_location_source_build_string_from_mask ( + mm_modem_location_get_capabilities (ctx->modem_location))); + enabled_str = (mm_modem_location_source_build_string_from_mask ( + mm_modem_location_get_enabled (ctx->modem_location))); + g_print ("\n" + "%s\n" + " ----------------------------\n" + " Location | capabilities: '%s'\n" + " | enabled: '%s'\n" + " | signals: '%s'\n", + mm_modem_location_get_path (ctx->modem_location), + capabilities_str, + enabled_str, + mm_modem_location_signals_location (ctx->modem_location) ? "yes" : "no"); + g_free (capabilities_str); + g_free (enabled_str); +} + +static void enable_process_reply (gboolean result, const GError *error) { @@ -238,6 +271,9 @@ get_modem_ready (GObject *source, ensure_modem_location (); + if (status_flag) + g_assert_not_reached (); + /* Request to enable location gathering? */ if (enable_3gpp_flag) { g_debug ("Asynchronously enabling 3GPP location gathering..."); @@ -309,6 +345,13 @@ mmcli_modem_location_run_synchronous (GDBusConnection *connection) ensure_modem_location (); + /* Request to get location status? */ + if (status_flag) { + g_debug ("Printing location status..."); + print_location_status (); + return; + } + /* Request to enable location gathering? */ if (enable_3gpp_flag) { gboolean result; |