summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-09-25 02:44:50 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-09-25 02:44:50 +0000
commit4196e7c59c16b3fea4b85f9b9c5373a624094f91 (patch)
tree0d5e3d21ba61aa67f6fc5faa2dd2426223139774
parent968ba0a277d2437f109b8b1dde66dacfc5ee2126 (diff)
downloadrockbox-4196e7c59c16b3fea4b85f9b9c5373a624094f91.tar.gz
rockbox-4196e7c59c16b3fea4b85f9b9c5373a624094f91.zip
Fix the eq menu so changes are applied after using the "simple eq settings" menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14849 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/menus/eq_menu.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 883c55d830..36f925a036 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -46,6 +46,7 @@
46#include "keyboard.h" 46#include "keyboard.h"
47#include "gui/scrollbar.h" 47#include "gui/scrollbar.h"
48#include "eq_menu.h" 48#include "eq_menu.h"
49#include "pcmbuf.h"
49#ifdef HAVE_WM8758 50#ifdef HAVE_WM8758
50#include "wm8758.h" 51#include "wm8758.h"
51#endif 52#endif
@@ -78,23 +79,25 @@ void eq_precut_format(char* buffer, size_t buffer_size, int value, const char* u
78/* 79/*
79 * Settings functions 80 * Settings functions
80 */ 81 */
81int enable_callback(int action, const struct menu_item_ex *this_item) 82void eq_apply(void)
82{ 83{
83 int i; 84 int i;
85 dsp_set_eq(global_settings.eq_enabled);
86 dsp_set_eq_precut(global_settings.eq_precut);
87 /* Update all bands */
88 for(i = 0; i < 5; i++) {
89 dsp_set_eq_coefs(i);
90 }
91}
92int enable_callback(int action, const struct menu_item_ex *this_item)
93{
84 (void)this_item; 94 (void)this_item;
85 if (action == ACTION_EXIT_MENUITEM) 95 if (action == ACTION_EXIT_MENUITEM)
86 { 96 eq_apply();
87 dsp_set_eq(global_settings.eq_enabled);
88 dsp_set_eq_precut(global_settings.eq_precut);
89 /* Update all bands */
90 for(i = 0; i < 5; i++) {
91 dsp_set_eq_coefs(i);
92 }
93 }
94 return action; 97 return action;
95} 98}
96MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, enable_callback); 99MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, enable_callback);
97MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, NULL); 100MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, enable_callback);
98 101
99int dsp_set_coefs_callback(int action, const struct menu_item_ex *this_item) 102int dsp_set_coefs_callback(int action, const struct menu_item_ex *this_item)
100{ 103{
@@ -121,6 +124,7 @@ int do_option(void* param)
121{ 124{
122 const struct menu_item_ex *setting = (const struct menu_item_ex*)param; 125 const struct menu_item_ex *setting = (const struct menu_item_ex*)param;
123 do_setting_from_menu(setting); 126 do_setting_from_menu(setting);
127 eq_apply();
124 return 0; 128 return 0;
125} 129}
126 130
@@ -636,7 +640,7 @@ MENUITEM_FUNCTION(eq_browse, 0, ID2P(LANG_EQUALIZER_BROWSE),
636 (int(*)(void))eq_browse_presets, NULL, NULL, Icon_NOICON); 640 (int(*)(void))eq_browse_presets, NULL, NULL, Icon_NOICON);
637 641
638int soundmenu_callback(int action,const struct menu_item_ex *this_item); 642int soundmenu_callback(int action,const struct menu_item_ex *this_item);
639MAKE_MENU(equalizer_menu, ID2P(LANG_EQUALIZER), soundmenu_callback, Icon_EQ, 643MAKE_MENU(equalizer_menu, ID2P(LANG_EQUALIZER), NULL, Icon_EQ,
640 &eq_enable, &eq_graphical, &eq_precut, &gain_menu, 644 &eq_enable, &eq_graphical, &eq_precut, &gain_menu,
641 &advanced_eq_menu_, &eq_save, &eq_browse); 645 &advanced_eq_menu_, &eq_save, &eq_browse);
642 646