diff options
author | Teijo Kinnunen <teijo.kinnunen@uros.com> | 2021-05-06 14:35:41 +0300 |
---|---|---|
committer | Teijo Kinnunen <teijo.kinnunen@uros.com> | 2021-05-17 12:46:52 +0300 |
commit | 879ec1a5d4418ae1dfc137844fd2c06a35ffeabf (patch) | |
tree | 1a369fa46adc9586c239c60967d17710b1421546 /src/mm-iface-modem-location.c | |
parent | 14c4f27ae4a0ccdfec29090b9abd77112fec1516 (diff) |
libmm-glib,iface-modem-location: add MMLocation3gpp 3 digit MNC support
MMLocation3gpp provides MCC/MNC information as integers, so it can not
make distinction between operator codes such as XXX01 and XXX001.
This commit deprecates mm_location_3gpp_get_mobile_network_code() and
implements a new function mm_location_3gpp_get_operator_code() which
provides the MCC+MNC in string format.
The mm_location_3gpp_get_mobile_country_code() is still available as
returning the MCC as an integer does not have ambiguity issues.
Diffstat (limited to 'src/mm-iface-modem-location.c')
-rw-r--r-- | src/mm-iface-modem-location.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/mm-iface-modem-location.c b/src/mm-iface-modem-location.c index b45a3405..792b1ce0 100644 --- a/src/mm-iface-modem-location.c +++ b/src/mm-iface-modem-location.c @@ -345,10 +345,12 @@ notify_3gpp_location_update (MMIfaceModemLocation *self, MmGdbusModemLocation *skeleton, MMLocation3gpp *location_3gpp) { + const gchar *operator_code; + + operator_code = mm_location_3gpp_get_operator_code (location_3gpp); mm_obj_dbg (self, "3GPP location updated " - "(MCC: '%u', MNC: '%u', location area code: '%lX', tracking area code: '%lX', cell ID: '%lX')", - mm_location_3gpp_get_mobile_country_code (location_3gpp), - mm_location_3gpp_get_mobile_network_code (location_3gpp), + "(MCCMNC: '%s', location area code: '%lX', tracking area code: '%lX', cell ID: '%lX')", + operator_code ? operator_code : "<none>", mm_location_3gpp_get_location_area_code (location_3gpp), mm_location_3gpp_get_tracking_area_code (location_3gpp), mm_location_3gpp_get_cell_id (location_3gpp)); @@ -365,9 +367,8 @@ notify_3gpp_location_update (MMIfaceModemLocation *self, } void -mm_iface_modem_location_3gpp_update_mcc_mnc (MMIfaceModemLocation *self, - guint mobile_country_code, - guint mobile_network_code) +mm_iface_modem_location_3gpp_update_operator_code (MMIfaceModemLocation *self, + const gchar *operator_code) { MmGdbusModemLocation *skeleton; LocationContext *ctx; @@ -383,10 +384,8 @@ mm_iface_modem_location_3gpp_update_mcc_mnc (MMIfaceModemLocation *self, guint changed = 0; g_assert (ctx->location_3gpp != NULL); - changed += mm_location_3gpp_set_mobile_country_code (ctx->location_3gpp, - mobile_country_code); - changed += mm_location_3gpp_set_mobile_network_code (ctx->location_3gpp, - mobile_network_code); + changed += mm_location_3gpp_set_operator_code (ctx->location_3gpp, + operator_code); if (changed) notify_3gpp_location_update (self, skeleton, ctx->location_3gpp); } |