From: Denis Kenzior Date: Wed, 10 Dec 2014 16:38:42 +0000 (-0600) Subject: radio-settings: rework AvailableTechnologies logic X-Git-Tag: 1.16~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44049f064abec2e2da03fc06251424b5f8410a2c;p=platform%2Fupstream%2Fofono.git radio-settings: rework AvailableTechnologies logic Take advantage of the new enum structure to future proof and simplify the logic of generating the AvailableTechnologies property --- diff --git a/src/radio-settings.c b/src/radio-settings.c index 5d166cc9..8c8ca264 100644 --- a/src/radio-settings.c +++ b/src/radio-settings.c @@ -225,20 +225,24 @@ static DBusMessage *radio_get_properties_reply(DBusMessage *msg, } if (rs->available_rats) { - const char *rats_strs[OFONO_RADIO_ACCESS_MODE_LTE + 1]; - const char **strs = rats_strs; - int str_i = 0; - size_t i, techs = sizeof(rats_strs)/sizeof(rats_strs[0]) - 1; + const char *rats[sizeof(uint32_t) + 1]; + const char **dbus_rats = rats; + int n = 0; + unsigned int i; - for (i = 0; i < techs; ++i) - if (rs->available_rats & (1 << i)) - rats_strs[str_i++] = - radio_access_mode_to_string(i + 1); + for (i = 0; i < sizeof(uint32_t); i++) { + int tech = 1 << i; - rats_strs[str_i] = NULL; + if (!(rs->available_rats & tech)) + continue; + + rats[n++] = radio_access_mode_to_string(tech); + } + + rats[n] = NULL; ofono_dbus_dict_append_array(&dict, "AvailableTechnologies", - DBUS_TYPE_STRING, &strs); + DBUS_TYPE_STRING, &dbus_rats); } dbus_message_iter_close_container(&iter, &dict);