diff options
author | Steve Bavin <pondlife@pondlife.me> | 2007-06-07 09:24:53 +0000 |
---|---|---|
committer | Steve Bavin <pondlife@pondlife.me> | 2007-06-07 09:24:53 +0000 |
commit | 6fd10bacceb576ee39e7ecfa32510ae8c97815ba (patch) | |
tree | d7a55ab832c6943fb469c34bd85d15e0fc7e2f2c /apps/menus | |
parent | 44034055500509b3b2b85b6df66172abbf77399c (diff) | |
download | rockbox-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.c | 20 |
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 */ |
399 | static int talk_callback(int action,const struct menu_item_ex *this_item); | 399 | static int talk_callback(int action,const struct menu_item_ex *this_item); |
400 | MENUITEM_SETTING(talk_menu, &global_settings.talk_menu, NULL); | 400 | MENUITEM_SETTING(talk_menu_item, &global_settings.talk_menu, NULL); |
401 | MENUITEM_SETTING(talk_dir, &global_settings.talk_dir, talk_callback); | 401 | MENUITEM_SETTING(talk_dir_item, &global_settings.talk_dir, NULL); |
402 | MENUITEM_SETTING(talk_file_item, &global_settings.talk_file, talk_callback); | 402 | MENUITEM_SETTING(talk_dir_clip_item, &global_settings.talk_dir_clip, talk_callback); |
403 | MENUITEM_SETTING(talk_file_item, &global_settings.talk_file, NULL); | ||
404 | MENUITEM_SETTING(talk_file_clip_item, &global_settings.talk_file_clip, talk_callback); | ||
403 | static int talk_callback(int action,const struct menu_item_ex *this_item) | 405 | static 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 | } |
426 | MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, Icon_Voice, | 429 | MAKE_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 | ||