diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-10-14 02:45:05 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-10-14 02:59:20 -0500 |
commit | 2059fd289a6739266bf1efeb7b0249f17c235ff1 (patch) | |
tree | b0fc60bc0f03c380e5fbfe2b80c8434a91c48873 /src/stk.c | |
parent | 8820e18b53bf11028185d058e57b061977a56dd2 (diff) | |
download | ofono-2059fd289a6739266bf1efeb7b0249f17c235ff1.tar.bz2 |
stk: Make the stk properties not optional
Diffstat (limited to 'src/stk.c')
-rw-r--r-- | src/stk.c | 51 |
1 files changed, 21 insertions, 30 deletions
@@ -389,27 +389,6 @@ static void emit_menu_changed(struct ofono_stk *stk) g_dbus_send_message(conn, signal); } -static void dict_append_menu(DBusMessageIter *dict, struct stk_menu *menu) -{ - DBusMessageIter entry; - const char *key = "MainMenu"; - - ofono_dbus_dict_append(dict, "MainMenuTitle", - DBUS_TYPE_STRING, &menu->title); - - ofono_dbus_dict_append(dict, "MainMenuIcon", - DBUS_TYPE_BYTE, &menu->icon.id); - - dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, - NULL, &entry); - - dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); - - append_menu_items_variant(&entry, menu->items); - - dbus_message_iter_close_container(dict, &entry); -} - static void stk_alpha_id_set(struct ofono_stk *stk, const char *text) { /* TODO */ @@ -427,7 +406,10 @@ static DBusMessage *stk_get_properties(DBusConnection *conn, DBusMessage *reply; DBusMessageIter iter; DBusMessageIter dict; - const char *idle_mode_text; + DBusMessageIter entry; + const char *key = "MainMenu"; + const char *str; + unsigned char icon; reply = dbus_message_new_method_return(msg); if (!reply) @@ -439,17 +421,26 @@ static DBusMessage *stk_get_properties(DBusConnection *conn, OFONO_PROPERTIES_ARRAY_SIGNATURE, &dict); - idle_mode_text = stk->idle_mode_text ? stk->idle_mode_text : ""; - ofono_dbus_dict_append(&dict, "IdleModeText", - DBUS_TYPE_STRING, &idle_mode_text); + str = stk->idle_mode_text ? stk->idle_mode_text : ""; + ofono_dbus_dict_append(&dict, "IdleModeText", DBUS_TYPE_STRING, &str); - if (stk->idle_mode_icon.id) - ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, - &stk->idle_mode_icon.id); + icon = stk->idle_mode_icon.id; + ofono_dbus_dict_append(&dict, "IdleModeIcon", DBUS_TYPE_BYTE, &icon); + + str = stk->main_menu ? stk->main_menu->title : ""; + ofono_dbus_dict_append(&dict, "MainMenuTitle", DBUS_TYPE_STRING, &str); + + icon = stk->main_menu ? stk->main_menu->icon.id : 0; + ofono_dbus_dict_append(&dict, "MainMenuIcon", DBUS_TYPE_BYTE, &icon); + + dbus_message_iter_open_container(&dict, DBUS_TYPE_DICT_ENTRY, + NULL, &entry); + dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); - if (stk->main_menu) - dict_append_menu(&dict, stk->main_menu); + append_menu_items_variant(&entry, + stk->main_menu ? stk->main_menu->items : NULL); + dbus_message_iter_close_container(&dict, &entry); dbus_message_iter_close_container(&iter, &dict); return reply; |