summaryrefslogtreecommitdiff
path: root/apps/menu.h
diff options
context:
space:
mode:
authorStéphane Doyon <s.doyon@videotron.ca>2007-10-09 03:48:56 +0000
committerStéphane Doyon <s.doyon@videotron.ca>2007-10-09 03:48:56 +0000
commit5acf09104644a7942cf264d80a99f6bf5ae20792 (patch)
treea9705adea534e53795112eecde1d5b08171c9ac1 /apps/menu.h
parent3fd073ed4d5e0bb819b30ee71546151f13aa2150 (diff)
downloadrockbox-5acf09104644a7942cf264d80a99f6bf5ae20792.tar.gz
rockbox-5acf09104644a7942cf264d80a99f6bf5ae20792.zip
Add a voice callback to dynamic menus, along side the text_callback.
From FS#7563. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15042 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menu.h')
-rw-r--r--apps/menu.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/apps/menu.h b/apps/menu.h
index 0c1000ab2f..d3f7099267 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -90,6 +90,7 @@ struct menu_item_ex {
90 int (*menu_callback)(int action, 90 int (*menu_callback)(int action,
91 const struct menu_item_ex *this_item); 91 const struct menu_item_ex *this_item);
92 char *(*list_get_name)(int selected_item, void * data, char *buffer); 92 char *(*list_get_name)(int selected_item, void * data, char *buffer);
93 int (*list_speak_item)(int selected_item, void * data);
93 void *list_get_name_data; 94 void *list_get_name_data;
94 int icon_id; 95 int icon_id;
95 } *menu_get_name_and_icon; 96 } *menu_get_name_and_icon;
@@ -165,9 +166,9 @@ int do_menu(const struct menu_item_ex *menu, int *start_selected);
165 166
166/* same as above, except the item name is dynamic */ 167/* same as above, except the item name is dynamic */
167#define MENUITEM_RETURNVALUE_DYNTEXT(name, val, cb, text_callback, \ 168#define MENUITEM_RETURNVALUE_DYNTEXT(name, val, cb, text_callback, \
168 text_cb_data, icon) \ 169 voice_callback, text_cb_data, icon) \
169 static const struct menu_get_name_and_icon name##_ \ 170 static const struct menu_get_name_and_icon name##_ \
170 = {cb,text_callback,text_cb_data,icon}; \ 171 = {cb,text_callback,voice_callback,text_cb_data,icon}; \
171 static const struct menu_item_ex name = \ 172 static const struct menu_item_ex name = \
172 { MT_RETURN_VALUE|MENU_DYNAMIC_DESC, { .value = val}, \ 173 { MT_RETURN_VALUE|MENU_DYNAMIC_DESC, { .value = val}, \
173 {.menu_get_name_and_icon = & name##_}}; 174 {.menu_get_name_and_icon = & name##_}};
@@ -187,10 +188,11 @@ int do_menu(const struct menu_item_ex *menu, int *start_selected);
187 { .function = & name##__}, {.callback_and_desc = & name##_}}; 188 { .function = & name##__}, {.callback_and_desc = & name##_}};
188 189
189/* As above, except the text is dynamic */ 190/* As above, except the text is dynamic */
190#define MENUITEM_FUNCTION_DYNTEXT(name, flags, func, param, \ 191#define MENUITEM_FUNCTION_DYNTEXT(name, flags, func, param, \
191 text_callback, text_cb_data, callback, icon) \ 192 text_callback, voice_callback, \
192 static const struct menu_get_name_and_icon name##_ \ 193 text_cb_data, callback, icon) \
193 = {callback,text_callback,text_cb_data,icon}; \ 194 static const struct menu_get_name_and_icon name##_ \
195 = {callback,text_callback,voice_callback,text_cb_data,icon}; \
194 static const struct menu_func name##__ = {{(void*)func}, param}; \ 196 static const struct menu_func name##__ = {{(void*)func}, param}; \
195 static const struct menu_item_ex name = \ 197 static const struct menu_item_ex name = \
196 { MT_FUNCTION_CALL|MENU_DYNAMIC_DESC|flags, \ 198 { MT_FUNCTION_CALL|MENU_DYNAMIC_DESC|flags, \