aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-signal.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2018-08-05 14:24:25 +0200
committerAleksander Morgado <aleksander@aleksander.es>2018-08-05 14:29:42 +0200
commitae9efa05c855c94122ef25ab6ee43dee13c1a64c (patch)
tree710b3f488bcddc1b4c02154d05791cf88dab6686 /src/mm-iface-modem-signal.c
parentab0133445c67091bc494f01bfaea663d5298c568 (diff)
signal: cleanup previous extended info if no new one given
E.g. if the modem switches from 4G to 3G while the extended signal information is enabled, we should no longer expose LTE specific signal quality values, only the UMTS specific ones. E.g. to avoid this: $ mmcli -m 1 --signal-get ------------------------- UMTS | RSSI: '0,00' dBm | RSCP: '-92,00' dBm | EcIo: '-13,00' dB ------------------------- LTE | RSSI: '0,00' dBm | RSRQ: '-6,50' dB | RSRP: '-96,00' dBm | SNR: '0,00' dB
Diffstat (limited to 'src/mm-iface-modem-signal.c')
-rw-r--r--src/mm-iface-modem-signal.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c
index 99096a95..c43b1b9f 100644
--- a/src/mm-iface-modem-signal.c
+++ b/src/mm-iface-modem-signal.c
@@ -113,35 +113,40 @@ load_values_ready (MMIfaceModemSignal *self,
mm_gdbus_modem_signal_set_cdma (skeleton, dictionary);
g_variant_unref (dictionary);
g_object_unref (cdma);
- }
+ } else
+ mm_gdbus_modem_signal_set_cdma (skeleton, NULL);
if (evdo) {
dictionary = mm_signal_get_dictionary (evdo);
mm_gdbus_modem_signal_set_evdo (skeleton, dictionary);
g_variant_unref (dictionary);
g_object_unref (evdo);
- }
+ } else
+ mm_gdbus_modem_signal_set_evdo (skeleton, NULL);
if (gsm) {
dictionary = mm_signal_get_dictionary (gsm);
mm_gdbus_modem_signal_set_gsm (skeleton, dictionary);
g_variant_unref (dictionary);
g_object_unref (gsm);
- }
+ } else
+ mm_gdbus_modem_signal_set_gsm (skeleton, NULL);
if (umts) {
dictionary = mm_signal_get_dictionary (umts);
mm_gdbus_modem_signal_set_umts (skeleton, dictionary);
g_variant_unref (dictionary);
g_object_unref (umts);
- }
+ } else
+ mm_gdbus_modem_signal_set_umts (skeleton, NULL);
if (lte) {
dictionary = mm_signal_get_dictionary (lte);
mm_gdbus_modem_signal_set_lte (skeleton, dictionary);
g_variant_unref (dictionary);
g_object_unref (lte);
- }
+ } else
+ mm_gdbus_modem_signal_set_lte (skeleton, NULL);
/* Flush right away */
g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton));