summaryrefslogtreecommitdiff
path: root/apps/menus
diff options
context:
space:
mode:
authorSteve Bavin <pondlife@pondlife.me>2007-06-07 09:24:53 +0000
committerSteve Bavin <pondlife@pondlife.me>2007-06-07 09:24:53 +0000
commit6fd10bacceb576ee39e7ecfa32510ae8c97815ba (patch)
treed7a55ab832c6943fb469c34bd85d15e0fc7e2f2c /apps/menus
parent44034055500509b3b2b85b6df66172abbf77399c (diff)
downloadrockbox-6fd10bacceb576ee39e7ecfa32510ae8c97815ba.tar.gz
rockbox-6fd10bacceb576ee39e7ecfa32510ae8c97815ba.zip
Separate out voice options for .talk clips (FS #7249). This removes the assumptions about what to speak if a .talk clip is not available for a particular file or directory,
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13584 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menus')
-rw-r--r--apps/menus/settings_menu.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index 6d962824f1..a11a7f0c40 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -397,25 +397,28 @@ MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0,
397/***********************************/ 397/***********************************/
398/* VOICE MENU */ 398/* VOICE MENU */
399static int talk_callback(int action,const struct menu_item_ex *this_item); 399static int talk_callback(int action,const struct menu_item_ex *this_item);
400MENUITEM_SETTING(talk_menu, &global_settings.talk_menu, NULL); 400MENUITEM_SETTING(talk_menu_item, &global_settings.talk_menu, NULL);
401MENUITEM_SETTING(talk_dir, &global_settings.talk_dir, talk_callback); 401MENUITEM_SETTING(talk_dir_item, &global_settings.talk_dir, NULL);
402MENUITEM_SETTING(talk_file_item, &global_settings.talk_file, talk_callback); 402MENUITEM_SETTING(talk_dir_clip_item, &global_settings.talk_dir_clip, talk_callback);
403MENUITEM_SETTING(talk_file_item, &global_settings.talk_file, NULL);
404MENUITEM_SETTING(talk_file_clip_item, &global_settings.talk_file_clip, talk_callback);
403static int talk_callback(int action,const struct menu_item_ex *this_item) 405static int talk_callback(int action,const struct menu_item_ex *this_item)
404{ 406{
405 static int oldval = 0; 407 static int oldval = 0;
406 switch (action) 408 switch (action)
407 { 409 {
408 case ACTION_ENTER_MENUITEM: 410 case ACTION_ENTER_MENUITEM:
409 oldval = global_settings.talk_file; 411 oldval = global_settings.talk_file_clip;
410 break; 412 break;
411 case ACTION_EXIT_MENUITEM: 413 case ACTION_EXIT_MENUITEM:
412#if CONFIG_CODEC == SWCODEC 414#if CONFIG_CODEC == SWCODEC
413 audio_set_crossfade(global_settings.crossfade); 415 audio_set_crossfade(global_settings.crossfade);
414#endif 416#endif
415 if (this_item == &talk_dir) 417 if (this_item == &talk_dir_clip_item)
416 break; 418 break;
417 if (oldval != 3 && global_settings.talk_file == 3) 419 if (!oldval && global_settings.talk_file_clip)
418 { /* force reload if newly talking thumbnails, 420 {
421 /* force reload if newly talking thumbnails,
419 because the clip presence is cached only if enabled */ 422 because the clip presence is cached only if enabled */
420 reload_directory(); 423 reload_directory();
421 } 424 }
@@ -424,7 +427,8 @@ static int talk_callback(int action,const struct menu_item_ex *this_item)
424 return action; 427 return action;
425} 428}
426MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, Icon_Voice, 429MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, Icon_Voice,
427 &talk_menu, &talk_dir, &talk_file_item); 430 &talk_menu_item, &talk_dir_item, &talk_dir_clip_item,
431 &talk_file_item, &talk_file_clip_item);
428/* VOICE MENU */ 432/* VOICE MENU */
429/***********************************/ 433/***********************************/
430 434