diff options
author | Dan Williams <dcbw@redhat.com> | 2010-03-19 11:05:05 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-03-19 11:05:05 -0700 |
commit | f5f388c7fd6d41a03447b710fc644d98efcabb0a (patch) | |
tree | 08534e5811d11774a6048538414f8aab4f0a5548 /src | |
parent | 85fc71818e3f3058cf256aaab1ba269a424a27f8 (diff) |
gsm: use new callback info chain functions for simple status
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-gsm.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index e1aec8ee..586ec7fd 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -3197,26 +3197,9 @@ simple_string_value (const char *str) return val; } -#define NOTDONE_TAG "not-done" #define SS_HASH_TAG "simple-get-status" static void -simple_status_complete_item (MMCallbackInfo *info) -{ - guint32 completed = GPOINTER_TO_UINT (mm_callback_info_get_data (info, NOTDONE_TAG)); - - g_warn_if_fail (completed > 0); - - /* Decrement the number of outstanding calls and if there aren't any left, - * schedule the callback info completion. - */ - completed--; - mm_callback_info_set_data (info, NOTDONE_TAG, GUINT_TO_POINTER (completed), NULL); - if (completed == 0) - mm_callback_info_schedule (info); -} - -static void simple_status_got_signal_quality (MMModem *modem, guint32 result, GError *error, @@ -3229,7 +3212,7 @@ simple_status_got_signal_quality (MMModem *modem, properties = (GHashTable *) mm_callback_info_get_data (info, SS_HASH_TAG); g_hash_table_insert (properties, "signal_quality", simple_uint_value (result)); } - simple_status_complete_item (info); + mm_callback_info_chain_complete_one (info); } static void @@ -3245,7 +3228,7 @@ simple_status_got_band (MMModem *modem, properties = (GHashTable *) mm_callback_info_get_data (info, SS_HASH_TAG); g_hash_table_insert (properties, "band", simple_uint_value (result)); } - simple_status_complete_item (info); + mm_callback_info_chain_complete_one (info); } static void @@ -3267,7 +3250,7 @@ simple_status_got_reg_info (MMModemGsmNetwork *modem, g_hash_table_insert (properties, "operator_code", simple_string_value (oper_code)); g_hash_table_insert (properties, "operator_name", simple_string_value (oper_name)); } - simple_status_complete_item (info); + mm_callback_info_chain_complete_one (info); } static void @@ -3299,13 +3282,11 @@ simple_get_status (MMModemSimple *simple, properties = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, simple_free_gvalue); mm_callback_info_set_data (info, SS_HASH_TAG, properties, (GDestroyNotify) g_hash_table_unref); + mm_callback_info_chain_start (info, 3); mm_modem_gsm_network_get_signal_quality (gsm, simple_status_got_signal_quality, info); mm_modem_gsm_network_get_band (gsm, simple_status_got_band, info); mm_modem_gsm_network_get_registration_info (gsm, simple_status_got_reg_info, info); - /* 3 calls to complete before scheduling the callback: (signal, band, reginfo) */ - mm_callback_info_set_data (info, NOTDONE_TAG, GUINT_TO_POINTER (3), NULL); - if (priv->act > -1) { /* Deprecated key */ old_mode = mm_modem_gsm_network_act_to_old_mode (priv->act); |