summaryrefslogtreecommitdiff
path: root/apps/menus/eq_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menus/eq_menu.c')
-rw-r--r--apps/menus/eq_menu.c88
1 files changed, 53 insertions, 35 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index c1d9792c44..d920c93ca3 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -97,23 +97,38 @@ static int eq_setting_callback(int action, const struct menu_item_ex *this_item)
97MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, eq_setting_callback); 97MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, eq_setting_callback);
98MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, eq_setting_callback); 98MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, eq_setting_callback);
99 99
100MENUITEM_SETTING(cutoff_0, &global_settings.eq_band0_cutoff, eq_setting_callback); 100MENUITEM_SETTING(cutoff_0, &global_settings.eq_band_settings[0].cutoff,
101MENUITEM_SETTING(cutoff_1, &global_settings.eq_band1_cutoff, eq_setting_callback); 101 eq_setting_callback);
102MENUITEM_SETTING(cutoff_2, &global_settings.eq_band2_cutoff, eq_setting_callback); 102MENUITEM_SETTING(cutoff_1, &global_settings.eq_band_settings[1].cutoff,
103MENUITEM_SETTING(cutoff_3, &global_settings.eq_band3_cutoff, eq_setting_callback); 103 eq_setting_callback);
104MENUITEM_SETTING(cutoff_4, &global_settings.eq_band4_cutoff, eq_setting_callback); 104MENUITEM_SETTING(cutoff_2, &global_settings.eq_band_settings[2].cutoff,
105 105 eq_setting_callback);
106MENUITEM_SETTING(q_0, &global_settings.eq_band0_q, eq_setting_callback); 106MENUITEM_SETTING(cutoff_3, &global_settings.eq_band_settings[3].cutoff,
107MENUITEM_SETTING(q_1, &global_settings.eq_band1_q, eq_setting_callback); 107 eq_setting_callback);
108MENUITEM_SETTING(q_2, &global_settings.eq_band2_q, eq_setting_callback); 108MENUITEM_SETTING(cutoff_4, &global_settings.eq_band_settings[4].cutoff,
109MENUITEM_SETTING(q_3, &global_settings.eq_band3_q, eq_setting_callback); 109 eq_setting_callback);
110MENUITEM_SETTING(q_4, &global_settings.eq_band4_q, eq_setting_callback); 110
111 111MENUITEM_SETTING(q_0, &global_settings.eq_band_settings[0].q,
112MENUITEM_SETTING(gain_0, &global_settings.eq_band0_gain, eq_setting_callback); 112 eq_setting_callback);
113MENUITEM_SETTING(gain_1, &global_settings.eq_band1_gain, eq_setting_callback); 113MENUITEM_SETTING(q_1, &global_settings.eq_band_settings[1].q,
114MENUITEM_SETTING(gain_2, &global_settings.eq_band2_gain, eq_setting_callback); 114 eq_setting_callback);
115MENUITEM_SETTING(gain_3, &global_settings.eq_band3_gain, eq_setting_callback); 115MENUITEM_SETTING(q_2, &global_settings.eq_band_settings[2].q,
116MENUITEM_SETTING(gain_4, &global_settings.eq_band4_gain, eq_setting_callback); 116 eq_setting_callback);
117MENUITEM_SETTING(q_3, &global_settings.eq_band_settings[3].q,
118 eq_setting_callback);
119MENUITEM_SETTING(q_4, &global_settings.eq_band_settings[4].q,
120 eq_setting_callback);
121
122MENUITEM_SETTING(gain_0, &global_settings.eq_band_settings[0].gain,
123 eq_setting_callback);
124MENUITEM_SETTING(gain_1, &global_settings.eq_band_settings[1].gain,
125 eq_setting_callback);
126MENUITEM_SETTING(gain_2, &global_settings.eq_band_settings[2].gain,
127 eq_setting_callback);
128MENUITEM_SETTING(gain_3, &global_settings.eq_band_settings[3].gain,
129 eq_setting_callback);
130MENUITEM_SETTING(gain_4, &global_settings.eq_band_settings[4].gain,
131 eq_setting_callback);
117 132
118static char* gainitem_get_name(int selected_item, void * data, char *buffer) 133static char* gainitem_get_name(int selected_item, void * data, char *buffer)
119{ 134{
@@ -145,23 +160,28 @@ static int do_option(void * param)
145MENUITEM_FUNCTION_DYNTEXT(gain_item_0, MENU_FUNC_USEPARAM, 160MENUITEM_FUNCTION_DYNTEXT(gain_item_0, MENU_FUNC_USEPARAM,
146 do_option, (void*)&gain_0, 161 do_option, (void*)&gain_0,
147 gainitem_get_name, gainitem_speak_item, 162 gainitem_get_name, gainitem_speak_item,
148 &global_settings.eq_band0_cutoff, NULL, Icon_NOICON); 163 &global_settings.eq_band_settings[0].cutoff,
164 NULL, Icon_NOICON);
149MENUITEM_FUNCTION_DYNTEXT(gain_item_1, MENU_FUNC_USEPARAM, 165MENUITEM_FUNCTION_DYNTEXT(gain_item_1, MENU_FUNC_USEPARAM,
150 do_option, (void*)&gain_1, 166 do_option, (void*)&gain_1,
151 gainitem_get_name, gainitem_speak_item, 167 gainitem_get_name, gainitem_speak_item,
152 &global_settings.eq_band1_cutoff, NULL, Icon_NOICON); 168 &global_settings.eq_band_settings[1].cutoff,
169 NULL, Icon_NOICON);
153MENUITEM_FUNCTION_DYNTEXT(gain_item_2, MENU_FUNC_USEPARAM, 170MENUITEM_FUNCTION_DYNTEXT(gain_item_2, MENU_FUNC_USEPARAM,
154 do_option, (void*)&gain_2, 171 do_option, (void*)&gain_2,
155 gainitem_get_name, gainitem_speak_item, 172 gainitem_get_name, gainitem_speak_item,
156 &global_settings.eq_band2_cutoff, NULL, Icon_NOICON); 173 &global_settings.eq_band_settings[2].cutoff,
174 NULL, Icon_NOICON);
157MENUITEM_FUNCTION_DYNTEXT(gain_item_3, MENU_FUNC_USEPARAM, 175MENUITEM_FUNCTION_DYNTEXT(gain_item_3, MENU_FUNC_USEPARAM,
158 do_option, (void*)&gain_3, 176 do_option, (void*)&gain_3,
159 gainitem_get_name, gainitem_speak_item, 177 gainitem_get_name, gainitem_speak_item,
160 &global_settings.eq_band3_cutoff, NULL, Icon_NOICON); 178 &global_settings.eq_band_settings[3].cutoff,
179 NULL, Icon_NOICON);
161MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM, 180MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM,
162 do_option, (void*)&gain_4, 181 do_option, (void*)&gain_4,
163 gainitem_get_name, gainitem_speak_item, 182 gainitem_get_name, gainitem_speak_item,
164 &global_settings.eq_band4_cutoff, NULL, Icon_NOICON); 183 &global_settings.eq_band_settings[4].cutoff,
184 NULL, Icon_NOICON);
165 185
166MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0, 186MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0,
167 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4); 187 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4);
@@ -349,15 +369,15 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
349 int nb_eq_sliders, int start_item, 369 int nb_eq_sliders, int start_item,
350 int current_band, enum eq_slider_mode mode) 370 int current_band, enum eq_slider_mode mode)
351{ 371{
352 int i, gain, q, cutoff;
353 int height = y; 372 int height = y;
354 int *setting = &global_settings.eq_band0_cutoff;
355 373
356 start_item = MIN(start_item, 5-nb_eq_sliders); 374 start_item = MIN(start_item, 5 - nb_eq_sliders);
357 for (i=0; i<5; i++) { 375
358 cutoff = *setting++; 376 for (int i = 0; i < 5; i++) {
359 q = *setting++; 377 struct eq_band_setting *setting = &global_settings.eq_band_settings[i];
360 gain = *setting++; 378 int cutoff = setting->cutoff;
379 int q = setting->q;
380 int gain = setting->gain;
361 381
362 if (i == start_item + nb_eq_sliders) 382 if (i == start_item + nb_eq_sliders)
363 break; 383 break;
@@ -370,6 +390,7 @@ static void draw_eq_sliders(struct screen * screen, int x, int y,
370 height++; 390 height++;
371 } 391 }
372 } 392 }
393
373 if (nb_eq_sliders != 5) 394 if (nb_eq_sliders != 5)
374 gui_scrollbar_draw(screen, 0, y, SCROLLBAR_SIZE - 1, 395 gui_scrollbar_draw(screen, 0, y, SCROLLBAR_SIZE - 1,
375 screen->lcdheight - y, 5, 396 screen->lcdheight - y, 5,
@@ -429,8 +450,7 @@ bool eq_menu_graphical(void)
429 /* Set pointer to the band data currently editable */ 450 /* Set pointer to the band data currently editable */
430 if (mode == GAIN) { 451 if (mode == GAIN) {
431 /* gain */ 452 /* gain */
432 setting = &global_settings.eq_band0_gain; 453 setting = &global_settings.eq_band_settings[current_band].gain;
433 setting += current_band * 3;
434 454
435 step = EQ_GAIN_STEP; 455 step = EQ_GAIN_STEP;
436 fast_step = EQ_GAIN_FAST_STEP; 456 fast_step = EQ_GAIN_FAST_STEP;
@@ -443,8 +463,7 @@ bool eq_menu_graphical(void)
443 screens[i].putsxy(0, 0, buf); 463 screens[i].putsxy(0, 0, buf);
444 } else if (mode == CUTOFF) { 464 } else if (mode == CUTOFF) {
445 /* cutoff */ 465 /* cutoff */
446 setting = &global_settings.eq_band0_cutoff; 466 setting = &global_settings.eq_band_settings[current_band].cutoff;
447 setting += current_band * 3;
448 467
449 step = EQ_CUTOFF_STEP; 468 step = EQ_CUTOFF_STEP;
450 fast_step = EQ_CUTOFF_FAST_STEP; 469 fast_step = EQ_CUTOFF_FAST_STEP;
@@ -457,8 +476,7 @@ bool eq_menu_graphical(void)
457 screens[i].putsxy(0, 0, buf); 476 screens[i].putsxy(0, 0, buf);
458 } else { 477 } else {
459 /* Q */ 478 /* Q */
460 setting = &global_settings.eq_band0_q; 479 setting = &global_settings.eq_band_settings[current_band].q;
461 setting += current_band * 3;
462 480
463 step = EQ_Q_STEP; 481 step = EQ_Q_STEP;
464 fast_step = EQ_Q_FAST_STEP; 482 fast_step = EQ_Q_FAST_STEP;