summaryrefslogtreecommitdiff
path: root/apps/menus/settings_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menus/settings_menu.c')
-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