summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2007-03-05 00:32:33 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2007-03-05 00:32:33 +0000
commit298c2bbd8343109fdd1e3fc0a5fe1afed0346508 (patch)
tree7f1d42666751ffe20cd68d17ee2d4f833cdd0522 /apps/menu.c
parent8daa916aaa68614f4ac07e551d05b98b931992be (diff)
downloadrockbox-298c2bbd8343109fdd1e3fc0a5fe1afed0346508.zip
rockbox-298c2bbd8343109fdd1e3fc0a5fe1afed0346508.tar.gz
rockbox-298c2bbd8343109fdd1e3fc0a5fe1afed0346508.tar.bz2
rockbox-298c2bbd8343109fdd1e3fc0a5fe1afed0346508.tar.xz
Allow dynamic menu items to be spoken, especially the resume/now playing item
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12614 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/apps/menu.c b/apps/menu.c
index df786dd..03fb1ac 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -440,6 +440,8 @@ static void talk_menu_item(const struct menu_item_ex *menu,
{
int id = -1;
int type;
+ unsigned char *str;
+
if (global_settings.talk_menu)
{
int sel = get_menu_selection(gui_synclist_get_sel_pos(lists),menu);
@@ -450,7 +452,17 @@ static void talk_menu_item(const struct menu_item_ex *menu,
talk_setting(menu->submenus[sel]->variable);
else
{
- id = P2ID(menu->submenus[sel]->callback_and_desc->desc);
+ if (menu->submenus[sel]->flags&(MENU_DYNAMIC_DESC))
+ {
+ char buffer[80];
+ str = menu->submenus[sel]->menu_get_name_and_icon->
+ list_get_name(sel, menu->submenus[sel]->
+ menu_get_name_and_icon->
+ list_get_name_data, buffer);
+ id = P2ID(str);
+ }
+ else
+ id = P2ID(menu->submenus[sel]->callback_and_desc->desc);
if (id != -1)
talk_id(id,false);
}