diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-modem-gsm-card.c | 28 | ||||
-rw-r--r-- | src/mm-modem-gsm-network.c | 31 |
2 files changed, 53 insertions, 6 deletions
diff --git a/src/mm-modem-gsm-card.c b/src/mm-modem-gsm-card.c index ffe4f2eb..85385b25 100644 --- a/src/mm-modem-gsm-card.c +++ b/src/mm-modem-gsm-card.c @@ -75,8 +75,32 @@ info_call_done (MMModemGsmCard *self, if (error) dbus_g_method_return_error (context, error); - else - dbus_g_method_return (context, manufacturer, model, version); + else { + GValueArray *array; + GValue value = { 0, }; + + array = g_value_array_new (3); + + /* Manufacturer */ + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, manufacturer); + g_value_array_append (array, &value); + g_value_unset (&value); + + /* Model */ + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, model); + g_value_array_append (array, &value); + g_value_unset (&value); + + /* Version */ + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, version); + g_value_array_append (array, &value); + g_value_unset (&value); + + dbus_g_method_return (context, array); + } } static void diff --git a/src/mm-modem-gsm-network.c b/src/mm-modem-gsm-network.c index c49aff4b..c302dead 100644 --- a/src/mm-modem-gsm-network.c +++ b/src/mm-modem-gsm-network.c @@ -116,9 +116,30 @@ reg_info_call_done (MMModemGsmNetwork *self, if (error) dbus_g_method_return_error (context, error); else { - dbus_g_method_return (context, status, - oper_code ? oper_code : "", - oper_name ? oper_name : ""); + GValueArray *array; + GValue value = { 0, }; + + array = g_value_array_new (3); + + /* Status */ + g_value_init (&value, G_TYPE_UINT); + g_value_set_uint (&value, (guint32) status); + g_value_array_append (array, &value); + g_value_unset (&value); + + /* Operator code */ + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, oper_code); + g_value_array_append (array, &value); + g_value_unset (&value); + + /* Operator name */ + g_value_init (&value, G_TYPE_STRING); + g_value_set_string (&value, oper_name); + g_value_array_append (array, &value); + g_value_unset (&value); + + dbus_g_method_return (context, array); } } @@ -330,7 +351,9 @@ mm_modem_gsm_network_registration_info (MMModemGsmNetwork *self, { g_return_if_fail (MM_IS_MODEM_GSM_NETWORK (self)); - g_signal_emit (self, signals[REGISTRATION_INFO], 0, status, oper_code, oper_name); + g_signal_emit (self, signals[REGISTRATION_INFO], 0, status, + oper_code ? oper_code : "", + oper_name ? oper_name : ""); } void |