diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2007-03-05 00:32:33 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2007-03-05 00:32:33 +0000 |
| commit | 298c2bbd8343109fdd1e3fc0a5fe1afed0346508 (patch) | |
| tree | 7f1d42666751ffe20cd68d17ee2d4f833cdd0522 /apps/menu.c | |
| parent | 8daa916aaa68614f4ac07e551d05b98b931992be (diff) | |
| download | rockbox-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.c | 14 |
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); } |