diff --git a/introspection/mm-modem-gsm-card.xml b/introspection/mm-modem-gsm-card.xml index 81cc883e..91b0c00e 100644 --- a/introspection/mm-modem-gsm-card.xml +++ b/introspection/mm-modem-gsm-card.xml @@ -34,19 +34,9 @@ - + - The manufacturer of the card. - - - - - The model of the card. - - - - - The version (revision) of the card. + Structure containing manufacturer, model, and version (revision) of the card. diff --git a/introspection/mm-modem-gsm-contacts.xml b/introspection/mm-modem-gsm-contacts.xml index d1b5dc05..60b06ad4 100644 --- a/introspection/mm-modem-gsm-contacts.xml +++ b/introspection/mm-modem-gsm-contacts.xml @@ -49,19 +49,9 @@ The index of the contact. - + - The index of the contact (same as the passed index). - - - - - The name of the contact. - - - - - The number of the contact. + The contact structure containing index, name, and number. diff --git a/introspection/mm-modem-gsm-network.xml b/introspection/mm-modem-gsm-network.xml index 10215ccf..83a14688 100644 --- a/introspection/mm-modem-gsm-network.xml +++ b/introspection/mm-modem-gsm-network.xml @@ -112,19 +112,12 @@ - + - The network status. - - - - - The current operator code. - - - - - The current operator name. + The returned information contains: + * Network status. + * Current operator code. + * Current operator name, diff --git a/introspection/mm-modem-gsm-sms.xml b/introspection/mm-modem-gsm-sms.xml index 4f7acd0c..e710c166 100644 --- a/introspection/mm-modem-gsm-sms.xml +++ b/introspection/mm-modem-gsm-sms.xml @@ -26,24 +26,9 @@ The index of the SMS. - + - The index of the SMS (same as the passed index). - - - - - The number the SMS was received from. - - - - - The contents of the SMS. - - - - - The timestamp. + The SMS structure containing index, number, contents and time stamp. 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