From 700ebc5c07ce667204f95dbe61716234131c15fb Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 24 May 2013 12:35:44 +0200 Subject: [PATCH] api,introspection: rename 'ModemCapabilities' to 'SupportedCapabilities' And also make it a list of masks, specifying which are the specific combinations supported, not just one mask with all. E.g.: ------------------------- Hardware | manufacturer: 'Sierra Wireless, Incorporated' | model: 'MC7710' | revision: 'SWI9200X_03.05.19.04ap r5475 carmd-en-10527 2012/09/17 17:57:14' | supported: 'gsm-umts | gsm-umts, lte' | current: 'gsm-umts, lte' | equipment id: '358178040668164' --- cli/mmcli-modem.c | 24 +++- .../libmm-glib/libmm-glib-sections.txt | 8 +- include/ModemManager-enums.h | 2 + .../org.freedesktop.ModemManager1.Modem.xml | 16 +-- libmm-glib/mm-common-helpers.c | 125 ++++++++++++++++ libmm-glib/mm-common-helpers.h | 12 ++ libmm-glib/mm-modem.c | 134 +++++++++++++++--- libmm-glib/mm-modem.h | 7 +- src/mm-broadband-modem-mbim.c | 2 - src/mm-broadband-modem-qmi.c | 94 +++++++----- src/mm-iface-modem.c | 78 +++++++--- src/mm-iface-modem.h | 14 +- src/mm-modem-helpers.c | 28 ++++ src/mm-modem-helpers.h | 3 + src/tests/test-modem-helpers.c | 94 ++++++++++++ 15 files changed, 546 insertions(+), 95 deletions(-) diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c index 188fab8a..7ab46244 100644 --- a/cli/mmcli-modem.c +++ b/cli/mmcli-modem.c @@ -235,7 +235,9 @@ print_modem_info (void) { gchar *drivers_string; gchar *prefixed_revision; - gchar *modem_capabilities_string; + gchar *supported_capabilities_string; + MMModemCapability *capabilities = NULL; + guint n_capabilities = 0; gchar *current_capabilities_string; gchar *access_technologies_string; MMModemModeCombination *modes = NULL; @@ -264,8 +266,9 @@ print_modem_info (void) #define VALIDATE_PATH(str) ((str && !g_str_equal (str, "/")) ? str : "none") /* Strings in heap */ - modem_capabilities_string = mm_modem_capability_build_string_from_mask ( - mm_modem_get_modem_capabilities (ctx->modem)); + mm_modem_get_supported_capabilities (ctx->modem, &capabilities, &n_capabilities); + supported_capabilities_string = mm_common_build_capabilities_string (capabilities, n_capabilities); + g_free (capabilities); current_capabilities_string = mm_modem_capability_build_string_from_mask ( mm_modem_get_current_capabilities (ctx->modem)); access_technologies_string = mm_modem_access_technology_build_string_from_mask ( @@ -324,6 +327,15 @@ print_modem_info (void) supported_modes_string = prefixed; } + if (supported_capabilities_string) { + gchar *prefixed; + + prefixed = mmcli_prefix_newlines (" | ", + supported_capabilities_string); + g_free (supported_capabilities_string); + supported_capabilities_string = prefixed; + } + /* Get signal quality info */ signal_quality = mm_modem_get_signal_quality (ctx->modem, &signal_quality_recent); @@ -338,13 +350,13 @@ print_modem_info (void) " Hardware | manufacturer: '%s'\n" " | model: '%s'\n" " | revision: '%s'\n" - " | capabilities: '%s'\n" + " | supported: '%s'\n" " | current: '%s'\n" " | equipment id: '%s'\n", VALIDATE_UNKNOWN (mm_modem_get_manufacturer (ctx->modem)), VALIDATE_UNKNOWN (mm_modem_get_model (ctx->modem)), VALIDATE_UNKNOWN (prefixed_revision), - VALIDATE_UNKNOWN (modem_capabilities_string), + VALIDATE_UNKNOWN (supported_capabilities_string), VALIDATE_UNKNOWN (current_capabilities_string), VALIDATE_UNKNOWN (mm_modem_get_equipment_identifier (ctx->modem))); @@ -475,7 +487,7 @@ print_modem_info (void) g_free (current_bands_string); g_free (supported_bands_string); g_free (access_technologies_string); - g_free (modem_capabilities_string); + g_free (supported_capabilities_string); g_free (current_capabilities_string); g_free (prefixed_revision); g_free (allowed_modes_string); diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt index 830186f3..4bc13686 100644 --- a/docs/reference/libmm-glib/libmm-glib-sections.txt +++ b/docs/reference/libmm-glib/libmm-glib-sections.txt @@ -80,7 +80,8 @@ mm_modem_dup_path mm_modem_get_state mm_modem_get_state_failed_reason mm_modem_get_power_state -mm_modem_get_modem_capabilities +mm_modem_peek_supported_capabilities +mm_modem_get_supported_capabilities mm_modem_get_current_capabilities mm_modem_get_manufacturer mm_modem_dup_manufacturer @@ -1436,7 +1437,6 @@ mm_gdbus_modem_get_max_active_bearers mm_gdbus_modem_get_max_bearers mm_gdbus_modem_get_model mm_gdbus_modem_dup_model -mm_gdbus_modem_get_modem_capabilities mm_gdbus_modem_get_own_numbers mm_gdbus_modem_dup_own_numbers mm_gdbus_modem_get_plugin @@ -1450,6 +1450,8 @@ mm_gdbus_modem_get_signal_quality mm_gdbus_modem_dup_signal_quality mm_gdbus_modem_get_sim mm_gdbus_modem_dup_sim +mm_gdbus_modem_get_supported_capabilities +mm_gdbus_modem_dup_supported_capabilities mm_gdbus_modem_get_state mm_gdbus_modem_get_state_failed_reason mm_gdbus_modem_get_supported_bands @@ -1504,13 +1506,13 @@ mm_gdbus_modem_set_manufacturer mm_gdbus_modem_set_max_active_bearers mm_gdbus_modem_set_max_bearers mm_gdbus_modem_set_model -mm_gdbus_modem_set_modem_capabilities mm_gdbus_modem_set_own_numbers mm_gdbus_modem_set_plugin mm_gdbus_modem_set_primary_port mm_gdbus_modem_set_revision mm_gdbus_modem_set_signal_quality mm_gdbus_modem_set_sim +mm_gdbus_modem_set_supported_capabilities mm_gdbus_modem_set_state mm_gdbus_modem_set_state_failed_reason mm_gdbus_modem_set_power_state diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h index a3c37e4b..b268925c 100644 --- a/include/ModemManager-enums.h +++ b/include/ModemManager-enums.h @@ -38,6 +38,7 @@ * @MM_MODEM_CAPABILITY_LTE: Modem has LTE data capability. * @MM_MODEM_CAPABILITY_LTE_ADVANCED: Modem has LTE Advanced data capability. * @MM_MODEM_CAPABILITY_IRIDIUM: Modem has Iridium capabilities. + * @MM_MODEM_CAPABILITY_ANY: Mask specifying all capabilities. * * Flags describing one or more of the general access technology families that a * modem supports. @@ -50,6 +51,7 @@ typedef enum { /*< underscore_name=mm_modem_capability >*/ MM_MODEM_CAPABILITY_LTE = 1 << 3, MM_MODEM_CAPABILITY_LTE_ADVANCED = 1 << 4, MM_MODEM_CAPABILITY_IRIDIUM = 1 << 5, + MM_MODEM_CAPABILITY_ANY = 0xFFFFFFFF } MMModemCapability; /** diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml index ba540ac8..46fa97dd 100644 --- a/introspection/org.freedesktop.ModemManager1.Modem.xml +++ b/introspection/org.freedesktop.ModemManager1.Modem.xml @@ -200,17 +200,17 @@ - +