diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2012-03-09 16:38:33 -0500 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2012-03-12 00:18:33 +0100 |
commit | f6370726323c5e3351d23341be9fc0a5af950a67 (patch) | |
tree | 1a74e96a494f68cadddec9942b600c98bdd9bd49 /apps/menus/eq_menu.c | |
parent | 64bb720edf8a738685c9f0a18957a1b15e984cf6 (diff) | |
download | rockbox-f6370726323c5e3351d23341be9fc0a5af950a67.tar.gz rockbox-f6370726323c5e3351d23341be9fc0a5af950a67.zip |
Change EQ settings to use a struct array in global_settings.
The previous pseudo array access of separate members wasn't very
nice or clear.
Change-Id: I74a2b39bb9c71a1370a455c01c4d5a860765e040
Reviewed-on: http://gerrit.rockbox.org/179
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
Diffstat (limited to 'apps/menus/eq_menu.c')
-rw-r--r-- | apps/menus/eq_menu.c | 88 |
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) | |||
97 | MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, eq_setting_callback); | 97 | MENUITEM_SETTING(eq_enable, &global_settings.eq_enabled, eq_setting_callback); |
98 | MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, eq_setting_callback); | 98 | MENUITEM_SETTING(eq_precut, &global_settings.eq_precut, eq_setting_callback); |
99 | 99 | ||
100 | MENUITEM_SETTING(cutoff_0, &global_settings.eq_band0_cutoff, eq_setting_callback); | 100 | MENUITEM_SETTING(cutoff_0, &global_settings.eq_band_settings[0].cutoff, |
101 | MENUITEM_SETTING(cutoff_1, &global_settings.eq_band1_cutoff, eq_setting_callback); | 101 | eq_setting_callback); |
102 | MENUITEM_SETTING(cutoff_2, &global_settings.eq_band2_cutoff, eq_setting_callback); | 102 | MENUITEM_SETTING(cutoff_1, &global_settings.eq_band_settings[1].cutoff, |
103 | MENUITEM_SETTING(cutoff_3, &global_settings.eq_band3_cutoff, eq_setting_callback); | 103 | eq_setting_callback); |
104 | MENUITEM_SETTING(cutoff_4, &global_settings.eq_band4_cutoff, eq_setting_callback); | 104 | MENUITEM_SETTING(cutoff_2, &global_settings.eq_band_settings[2].cutoff, |
105 | 105 | eq_setting_callback); | |
106 | MENUITEM_SETTING(q_0, &global_settings.eq_band0_q, eq_setting_callback); | 106 | MENUITEM_SETTING(cutoff_3, &global_settings.eq_band_settings[3].cutoff, |
107 | MENUITEM_SETTING(q_1, &global_settings.eq_band1_q, eq_setting_callback); | 107 | eq_setting_callback); |
108 | MENUITEM_SETTING(q_2, &global_settings.eq_band2_q, eq_setting_callback); | 108 | MENUITEM_SETTING(cutoff_4, &global_settings.eq_band_settings[4].cutoff, |
109 | MENUITEM_SETTING(q_3, &global_settings.eq_band3_q, eq_setting_callback); | 109 | eq_setting_callback); |
110 | MENUITEM_SETTING(q_4, &global_settings.eq_band4_q, eq_setting_callback); | 110 | |
111 | 111 | MENUITEM_SETTING(q_0, &global_settings.eq_band_settings[0].q, | |
112 | MENUITEM_SETTING(gain_0, &global_settings.eq_band0_gain, eq_setting_callback); | 112 | eq_setting_callback); |
113 | MENUITEM_SETTING(gain_1, &global_settings.eq_band1_gain, eq_setting_callback); | 113 | MENUITEM_SETTING(q_1, &global_settings.eq_band_settings[1].q, |
114 | MENUITEM_SETTING(gain_2, &global_settings.eq_band2_gain, eq_setting_callback); | 114 | eq_setting_callback); |
115 | MENUITEM_SETTING(gain_3, &global_settings.eq_band3_gain, eq_setting_callback); | 115 | MENUITEM_SETTING(q_2, &global_settings.eq_band_settings[2].q, |
116 | MENUITEM_SETTING(gain_4, &global_settings.eq_band4_gain, eq_setting_callback); | 116 | eq_setting_callback); |
117 | MENUITEM_SETTING(q_3, &global_settings.eq_band_settings[3].q, | ||
118 | eq_setting_callback); | ||
119 | MENUITEM_SETTING(q_4, &global_settings.eq_band_settings[4].q, | ||
120 | eq_setting_callback); | ||
121 | |||
122 | MENUITEM_SETTING(gain_0, &global_settings.eq_band_settings[0].gain, | ||
123 | eq_setting_callback); | ||
124 | MENUITEM_SETTING(gain_1, &global_settings.eq_band_settings[1].gain, | ||
125 | eq_setting_callback); | ||
126 | MENUITEM_SETTING(gain_2, &global_settings.eq_band_settings[2].gain, | ||
127 | eq_setting_callback); | ||
128 | MENUITEM_SETTING(gain_3, &global_settings.eq_band_settings[3].gain, | ||
129 | eq_setting_callback); | ||
130 | MENUITEM_SETTING(gain_4, &global_settings.eq_band_settings[4].gain, | ||
131 | eq_setting_callback); | ||
117 | 132 | ||
118 | static char* gainitem_get_name(int selected_item, void * data, char *buffer) | 133 | static char* gainitem_get_name(int selected_item, void * data, char *buffer) |
119 | { | 134 | { |
@@ -145,23 +160,28 @@ static int do_option(void * param) | |||
145 | MENUITEM_FUNCTION_DYNTEXT(gain_item_0, MENU_FUNC_USEPARAM, | 160 | MENUITEM_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); | ||
149 | MENUITEM_FUNCTION_DYNTEXT(gain_item_1, MENU_FUNC_USEPARAM, | 165 | MENUITEM_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); | ||
153 | MENUITEM_FUNCTION_DYNTEXT(gain_item_2, MENU_FUNC_USEPARAM, | 170 | MENUITEM_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); | ||
157 | MENUITEM_FUNCTION_DYNTEXT(gain_item_3, MENU_FUNC_USEPARAM, | 175 | MENUITEM_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); | ||
161 | MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM, | 180 | MENUITEM_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 | ||
166 | MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0, | 186 | MAKE_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; |