diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/menu.c | 37 | ||||
-rw-r--r-- | apps/menu.h | 3 | ||||
-rw-r--r-- | apps/menus/audiohw_eq_menu.c | 5 | ||||
-rw-r--r-- | apps/menus/radio_menu.c | 5 | ||||
-rw-r--r-- | apps/menus/settings_menu.c | 7 | ||||
-rw-r--r-- | apps/root_menu.c | 5 |
6 files changed, 43 insertions, 19 deletions
diff --git a/apps/menu.c b/apps/menu.c index a205615802..48f6fa3d0b 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -104,13 +104,12 @@ static const char* get_menu_item_name(int selected_item, | |||
104 | int type = (menu->flags&MENU_TYPE_MASK); | 104 | int type = (menu->flags&MENU_TYPE_MASK); |
105 | selected_item = get_menu_selection(selected_item, menu); | 105 | selected_item = get_menu_selection(selected_item, menu); |
106 | 106 | ||
107 | (void)buffer_len; | ||
108 | /* only MT_MENU or MT_RETURN_ID is allowed in here */ | 107 | /* only MT_MENU or MT_RETURN_ID is allowed in here */ |
109 | if (type == MT_RETURN_ID) | 108 | if (type == MT_RETURN_ID) |
110 | { | 109 | { |
111 | if (menu->flags&MENU_DYNAMIC_DESC) | 110 | if (menu->flags&MENU_DYNAMIC_DESC) |
112 | return menu->menu_get_name_and_icon->list_get_name(selected_item, | 111 | return menu->menu_get_name_and_icon->list_get_name(selected_item, |
113 | menu->menu_get_name_and_icon->list_get_name_data, buffer); | 112 | menu->menu_get_name_and_icon->list_get_name_data, buffer, buffer_len); |
114 | return menu->strings[selected_item]; | 113 | return menu->strings[selected_item]; |
115 | } | 114 | } |
116 | 115 | ||
@@ -118,7 +117,7 @@ static const char* get_menu_item_name(int selected_item, | |||
118 | 117 | ||
119 | if ((menu->flags&MENU_DYNAMIC_DESC) && (type != MT_SETTING_W_TEXT)) | 118 | if ((menu->flags&MENU_DYNAMIC_DESC) && (type != MT_SETTING_W_TEXT)) |
120 | return menu->menu_get_name_and_icon->list_get_name(selected_item, | 119 | return menu->menu_get_name_and_icon->list_get_name(selected_item, |
121 | menu->menu_get_name_and_icon->list_get_name_data, buffer); | 120 | menu->menu_get_name_and_icon->list_get_name_data, buffer, buffer_len); |
122 | 121 | ||
123 | type = (menu->flags&MENU_TYPE_MASK); | 122 | type = (menu->flags&MENU_TYPE_MASK); |
124 | if ((type == MT_SETTING) || (type == MT_SETTING_W_TEXT)) | 123 | if ((type == MT_SETTING) || (type == MT_SETTING_W_TEXT)) |
@@ -177,6 +176,7 @@ static void init_menu_lists(const struct menu_item_ex *menu, | |||
177 | int type = (menu->flags&MENU_TYPE_MASK); | 176 | int type = (menu->flags&MENU_TYPE_MASK); |
178 | menu_callback_type menu_callback = NULL; | 177 | menu_callback_type menu_callback = NULL; |
179 | int icon; | 178 | int icon; |
179 | char * title; | ||
180 | current_subitems_count = 0; | 180 | current_subitems_count = 0; |
181 | 181 | ||
182 | if (type == MT_RETURN_ID) | 182 | if (type == MT_RETURN_ID) |
@@ -206,14 +206,33 @@ static void init_menu_lists(const struct menu_item_ex *menu, | |||
206 | 206 | ||
207 | gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent); | 207 | gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent); |
208 | #ifdef HAVE_LCD_BITMAP | 208 | #ifdef HAVE_LCD_BITMAP |
209 | if (menu->callback_and_desc->icon_id == Icon_NOICON) | 209 | |
210 | icon = Icon_Submenu_Entered; | 210 | if (menu->flags&MENU_HAS_DESC) |
211 | else | 211 | { |
212 | icon = menu->callback_and_desc->icon_id; | 212 | icon = menu->callback_and_desc->icon_id; |
213 | gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), icon); | 213 | title = P2STR(menu->callback_and_desc->desc); |
214 | } | ||
215 | else if (menu->flags&MENU_DYNAMIC_DESC) | ||
216 | { | ||
217 | char buffer[80]; | ||
218 | icon = menu->menu_get_name_and_icon->icon_id; | ||
219 | title = menu->menu_get_name_and_icon-> | ||
220 | list_get_name(-1, menu->menu_get_name_and_icon-> | ||
221 | list_get_name_data, buffer, sizeof(buffer)); | ||
222 | } | ||
223 | else | ||
224 | { | ||
225 | icon = Icon_NOICON; | ||
226 | title = ""; | ||
227 | } | ||
228 | |||
229 | if (icon == Icon_NOICON) | ||
230 | icon = Icon_Submenu_Entered; | ||
231 | gui_synclist_set_title(lists, title, icon); | ||
214 | gui_synclist_set_icon_callback(lists, global_settings.show_icons?menu_get_icon:NULL); | 232 | gui_synclist_set_icon_callback(lists, global_settings.show_icons?menu_get_icon:NULL); |
215 | #else | 233 | #else |
216 | (void)icon; | 234 | (void)icon; |
235 | (void)title; | ||
217 | gui_synclist_set_icon_callback(lists, NULL); | 236 | gui_synclist_set_icon_callback(lists, NULL); |
218 | #endif | 237 | #endif |
219 | if(global_settings.talk_menu) | 238 | if(global_settings.talk_menu) |
@@ -256,8 +275,8 @@ static int talk_menu_item(int selected_item, void *data) | |||
256 | char buffer[80]; | 275 | char buffer[80]; |
257 | str = menu->submenus[sel]->menu_get_name_and_icon-> | 276 | str = menu->submenus[sel]->menu_get_name_and_icon-> |
258 | list_get_name(sel, menu->submenus[sel]-> | 277 | list_get_name(sel, menu->submenus[sel]-> |
259 | menu_get_name_and_icon-> | 278 | menu_get_name_and_icon-> |
260 | list_get_name_data, buffer); | 279 | list_get_name_data, buffer, sizeof(buffer)); |
261 | id = P2ID(str); | 280 | id = P2ID(str); |
262 | } | 281 | } |
263 | } | 282 | } |
diff --git a/apps/menu.h b/apps/menu.h index df5f7ced9f..7ace51329f 100644 --- a/apps/menu.h +++ b/apps/menu.h | |||
@@ -91,7 +91,8 @@ struct menu_item_ex { | |||
91 | const struct menu_get_name_and_icon { | 91 | const struct menu_get_name_and_icon { |
92 | int (*menu_callback)(int action, | 92 | int (*menu_callback)(int action, |
93 | const struct menu_item_ex *this_item); | 93 | const struct menu_item_ex *this_item); |
94 | char *(*list_get_name)(int selected_item, void * data, char *buffer); | 94 | char *(*list_get_name)(int selected_item, void * data, |
95 | char *buffer, size_t buffer_len); | ||
95 | int (*list_speak_item)(int selected_item, void * data); | 96 | int (*list_speak_item)(int selected_item, void * data); |
96 | void *list_get_name_data; | 97 | void *list_get_name_data; |
97 | int icon_id; | 98 | int icon_id; |
diff --git a/apps/menus/audiohw_eq_menu.c b/apps/menus/audiohw_eq_menu.c index 1027d6a0b8..8dfb6e8450 100644 --- a/apps/menus/audiohw_eq_menu.c +++ b/apps/menus/audiohw_eq_menu.c | |||
@@ -41,9 +41,10 @@ static unsigned short hw_eq_setting_lang_ids[AUDIOHW_EQ_SETTING_NUM] = | |||
41 | #endif | 41 | #endif |
42 | }; | 42 | }; |
43 | 43 | ||
44 | static char * hw_eq_get_name(int selected_item, void * data, char *buffer) | 44 | static char * hw_eq_get_name(int selected_item, void * data, |
45 | char *buffer, size_t buffer_len) | ||
45 | { | 46 | { |
46 | snprintf(buffer, MAX_PATH, | 47 | snprintf(buffer, buffer_len, |
47 | str(hw_eq_setting_lang_ids[HW_EQ_IDX_SETTING(data)]), | 48 | str(hw_eq_setting_lang_ids[HW_EQ_IDX_SETTING(data)]), |
48 | HW_EQ_IDX_BAND(data) + 1); | 49 | HW_EQ_IDX_BAND(data) + 1); |
49 | return buffer; | 50 | return buffer; |
diff --git a/apps/menus/radio_menu.c b/apps/menus/radio_menu.c index fb3d2b7fee..8871421c11 100644 --- a/apps/menus/radio_menu.c +++ b/apps/menus/radio_menu.c | |||
@@ -100,11 +100,12 @@ MENUITEM_SETTING(force_mono, &global_settings.fm_force_mono, NULL); | |||
100 | 100 | ||
101 | #ifndef FM_MODE | 101 | #ifndef FM_MODE |
102 | extern int radio_mode; | 102 | extern int radio_mode; |
103 | static char* get_mode_text(int selected_item, void * data, char *buffer) | 103 | static char* get_mode_text(int selected_item, void * data, |
104 | char *buffer, size_t buffer_len) | ||
104 | { | 105 | { |
105 | (void)selected_item; | 106 | (void)selected_item; |
106 | (void)data; | 107 | (void)data; |
107 | snprintf(buffer, MAX_PATH, "%s %s", str(LANG_MODE), | 108 | snprintf(buffer, buffer_len, "%s %s", str(LANG_MODE), |
108 | radio_mode ? str(LANG_PRESET) : | 109 | radio_mode ? str(LANG_PRESET) : |
109 | str(LANG_RADIO_SCAN_MODE)); | 110 | str(LANG_RADIO_SCAN_MODE)); |
110 | return buffer; | 111 | return buffer; |
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index ca0ec91967..67595498ad 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c | |||
@@ -500,14 +500,15 @@ static int seconds_to_min(int secs) | |||
500 | 500 | ||
501 | /* A string representation of either whether a sleep timer will be started or | 501 | /* A string representation of either whether a sleep timer will be started or |
502 | canceled, and how long it will be or how long is remaining in brackets */ | 502 | canceled, and how long it will be or how long is remaining in brackets */ |
503 | static char* sleep_timer_getname(int selected_item, void * data, char *buffer) | 503 | static char* sleep_timer_getname(int selected_item, void * data, |
504 | char *buffer, size_t buffer_len) | ||
504 | { | 505 | { |
505 | (void)selected_item; | 506 | (void)selected_item; |
506 | (void)data; | 507 | (void)data; |
507 | int sec = get_sleep_timer(); | 508 | int sec = get_sleep_timer(); |
508 | char timer_buf[10]; | 509 | char timer_buf[10]; |
509 | /* we have no sprintf, so MAX_PATH is a guess */ | 510 | |
510 | snprintf(buffer, MAX_PATH, "%s (%s)", | 511 | snprintf(buffer, buffer_len, "%s (%s)", |
511 | str(sec ? LANG_SLEEP_TIMER_CANCEL_CURRENT | 512 | str(sec ? LANG_SLEEP_TIMER_CANCEL_CURRENT |
512 | : LANG_SLEEP_TIMER_START_CURRENT), | 513 | : LANG_SLEEP_TIMER_START_CURRENT), |
513 | sleep_timer_formatter(timer_buf, sizeof(timer_buf), | 514 | sleep_timer_formatter(timer_buf, sizeof(timer_buf), |
diff --git a/apps/root_menu.c b/apps/root_menu.c index 6b3e213831..584328bd4b 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c | |||
@@ -454,9 +454,10 @@ MENUITEM_RETURNVALUE(rocks_browser, ID2P(LANG_PLUGINS), GO_TO_BROWSEPLUGINS, | |||
454 | MENUITEM_RETURNVALUE(playlist_browser, ID2P(LANG_CATALOG), GO_TO_PLAYLIST_VIEWER, | 454 | MENUITEM_RETURNVALUE(playlist_browser, ID2P(LANG_CATALOG), GO_TO_PLAYLIST_VIEWER, |
455 | NULL, Icon_Playlist); | 455 | NULL, Icon_Playlist); |
456 | 456 | ||
457 | static char *get_wps_item_name(int selected_item, void * data, char *buffer) | 457 | static char *get_wps_item_name(int selected_item, void * data, |
458 | char *buffer, size_t buffer_len) | ||
458 | { | 459 | { |
459 | (void)selected_item; (void)data; (void)buffer; | 460 | (void)selected_item; (void)data; (void)buffer; (void)buffer_len; |
460 | if (audio_status()) | 461 | if (audio_status()) |
461 | return ID2P(LANG_NOW_PLAYING); | 462 | return ID2P(LANG_NOW_PLAYING); |
462 | return ID2P(LANG_RESUME_PLAYBACK); | 463 | return ID2P(LANG_RESUME_PLAYBACK); |