From 0436b3e45753a166fea18d6c1463aef5a38fd1ee Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 24 Aug 2012 13:28:22 +0200 Subject: [PATCH] api,introspection: report list of drivers, not just one Different ports of the same modem may get handled by different drivers. We therefore need to provide a list of drivers (new `Modem.Drivers' property with signature 'as') instead of just one (removed `Modem.Driver' property with signature 's'). $ sudo mmcli -m 0 | grep drivers | drivers: 'qcserial, qmi_wwan' --- TODO | 3 -- cli/mmcli-modem.c | 15 +++++- .../org.freedesktop.ModemManager1.Modem.xml | 6 +-- libmm-glib/mm-modem.c | 24 ++++----- libmm-glib/mm-modem.h | 4 +- plugins/anydata/mm-broadband-modem-anydata.c | 4 +- plugins/anydata/mm-broadband-modem-anydata.h | 2 +- plugins/anydata/mm-plugin-anydata.c | 4 +- .../cinterion/mm-broadband-modem-cinterion.c | 4 +- .../cinterion/mm-broadband-modem-cinterion.h | 2 +- plugins/cinterion/mm-plugin-cinterion.c | 4 +- plugins/generic/mm-plugin-generic.c | 4 +- plugins/gobi/mm-broadband-modem-gobi.c | 4 +- plugins/gobi/mm-broadband-modem-gobi.h | 2 +- plugins/gobi/mm-plugin-gobi.c | 4 +- plugins/huawei/mm-broadband-modem-huawei.c | 4 +- plugins/huawei/mm-broadband-modem-huawei.h | 2 +- plugins/huawei/mm-plugin-huawei.c | 4 +- plugins/icera/mm-broadband-modem-icera.c | 4 +- plugins/icera/mm-broadband-modem-icera.h | 2 +- plugins/iridium/mm-broadband-modem-iridium.c | 4 +- plugins/iridium/mm-broadband-modem-iridium.h | 2 +- plugins/iridium/mm-plugin-iridium.c | 4 +- plugins/linktop/mm-broadband-modem-linktop.c | 4 +- plugins/linktop/mm-broadband-modem-linktop.h | 2 +- plugins/linktop/mm-plugin-linktop.c | 4 +- .../longcheer/mm-broadband-modem-longcheer.c | 4 +- .../longcheer/mm-broadband-modem-longcheer.h | 2 +- plugins/longcheer/mm-plugin-longcheer.c | 4 +- plugins/mbm/mm-broadband-modem-mbm.c | 4 +- plugins/mbm/mm-broadband-modem-mbm.h | 2 +- plugins/mbm/mm-plugin-mbm.c | 4 +- .../motorola/mm-broadband-modem-motorola.c | 4 +- .../motorola/mm-broadband-modem-motorola.h | 2 +- plugins/motorola/mm-plugin-motorola.c | 4 +- plugins/nokia/mm-broadband-modem-nokia.c | 4 +- plugins/nokia/mm-broadband-modem-nokia.h | 2 +- plugins/nokia/mm-plugin-nokia-icera.c | 4 +- plugins/nokia/mm-plugin-nokia.c | 4 +- .../novatel/mm-broadband-modem-novatel-lte.c | 4 +- .../novatel/mm-broadband-modem-novatel-lte.h | 2 +- plugins/novatel/mm-broadband-modem-novatel.c | 4 +- plugins/novatel/mm-broadband-modem-novatel.h | 2 +- plugins/novatel/mm-plugin-novatel-lte.c | 4 +- plugins/novatel/mm-plugin-novatel.c | 4 +- plugins/option/mm-broadband-modem-hso.c | 10 ++-- plugins/option/mm-broadband-modem-hso.h | 2 +- plugins/option/mm-broadband-modem-option.c | 4 +- plugins/option/mm-broadband-modem-option.h | 2 +- plugins/option/mm-plugin-hso.c | 4 +- plugins/option/mm-plugin-option.c | 4 +- plugins/pantech/mm-plugin-pantech.c | 4 +- plugins/samsung/mm-broadband-modem-samsung.c | 4 +- plugins/samsung/mm-broadband-modem-samsung.h | 2 +- plugins/samsung/mm-plugin-samsung.c | 4 +- .../sierra/mm-broadband-modem-sierra-icera.c | 4 +- .../sierra/mm-broadband-modem-sierra-icera.h | 2 +- plugins/sierra/mm-broadband-modem-sierra.c | 4 +- plugins/sierra/mm-broadband-modem-sierra.h | 2 +- plugins/sierra/mm-common-sierra.c | 15 ++++-- plugins/sierra/mm-plugin-sierra.c | 6 +-- plugins/simtech/mm-broadband-modem-simtech.c | 4 +- plugins/simtech/mm-broadband-modem-simtech.h | 2 +- plugins/simtech/mm-plugin-simtech.c | 4 +- plugins/wavecom/mm-broadband-modem-wavecom.c | 4 +- plugins/wavecom/mm-broadband-modem-wavecom.h | 2 +- plugins/wavecom/mm-plugin-wavecom.c | 4 +- plugins/x22x/mm-broadband-modem-x22x.c | 4 +- plugins/x22x/mm-broadband-modem-x22x.h | 2 +- plugins/x22x/mm-plugin-x22x.c | 4 +- plugins/zte/mm-broadband-modem-zte-icera.c | 4 +- plugins/zte/mm-broadband-modem-zte-icera.h | 2 +- plugins/zte/mm-broadband-modem-zte.c | 4 +- plugins/zte/mm-broadband-modem-zte.h | 2 +- plugins/zte/mm-plugin-zte.c | 6 +-- src/mm-base-modem.c | 36 ++++++------- src/mm-base-modem.h | 8 +-- src/mm-broadband-modem.c | 4 +- src/mm-broadband-modem.h | 2 +- src/mm-device.c | 50 +++++++++++++++---- src/mm-device.h | 24 ++++----- src/mm-iface-modem.c | 12 ++--- src/mm-plugin.c | 37 +++++++++----- src/mm-plugin.h | 2 +- 84 files changed, 268 insertions(+), 214 deletions(-) diff --git a/TODO b/TODO index d8a15f09..2379b044 100644 --- a/TODO +++ b/TODO @@ -109,9 +109,6 @@ example to update the signal quality value or check registration status. ** serial-parsers: convert the v1 parser to a GObject. - ** Modem iface: Provide a list of drivers instead of just one, so that we list - all drivers of all ports grabbed. - ** MMBroadbandBearer: include additional step for authentication, with retries. diff --git a/cli/mmcli-modem.c b/cli/mmcli-modem.c index 3be15da2..7fff7d30 100644 --- a/cli/mmcli-modem.c +++ b/cli/mmcli-modem.c @@ -220,6 +220,7 @@ print_bearer_short_info (MMBearer *bearer) static void print_modem_info (void) { + gchar *drivers_string; gchar *prefixed_revision; gchar *capabilities_string; gchar *access_technologies_string; @@ -272,6 +273,15 @@ print_modem_info (void) } else own_numbers_string = NULL; + if (mm_modem_get_drivers (ctx->modem)) { + drivers_string = g_strjoinv (", ", (gchar **)mm_modem_get_drivers (ctx->modem)); + if (!drivers_string[0]) { + g_free (drivers_string); + drivers_string = NULL; + } + } else + drivers_string = NULL; + /* Rework possible multiline strings */ prefixed_revision = mmcli_prefix_newlines (" | ", mm_modem_get_revision (ctx->modem)); @@ -298,10 +308,10 @@ print_modem_info (void) /* System related stuff */ g_print (" -------------------------\n" " System | device: '%s'\n" - " | driver: '%s'\n" + " | drivers: '%s'\n" " | plugin: '%s'\n", VALIDATE_UNKNOWN (mm_modem_get_device (ctx->modem)), - VALIDATE_UNKNOWN (mm_modem_get_driver (ctx->modem)), + VALIDATE_UNKNOWN (drivers_string), VALIDATE_UNKNOWN (mm_modem_get_plugin (ctx->modem))); /* Numbers related stuff */ @@ -410,6 +420,7 @@ print_modem_info (void) g_free (supported_modes_string); g_free (unlock_retries_string); g_free (own_numbers_string); + g_free (drivers_string); } static void diff --git a/introspection/org.freedesktop.ModemManager1.Modem.xml b/introspection/org.freedesktop.ModemManager1.Modem.xml index 5869db7f..8ff6e49b 100644 --- a/introspection/org.freedesktop.ModemManager1.Modem.xml +++ b/introspection/org.freedesktop.ModemManager1.Modem.xml @@ -280,12 +280,12 @@ - +