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.c72
1 files changed, 48 insertions, 24 deletions
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 7cb88065f5..4dd8c06c65 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -118,6 +118,14 @@ char* gainitem_get_name(int selected_item, void * data, char *buffer)
118 snprintf(buffer, MAX_PATH, str(LANG_EQUALIZER_GAIN_ITEM), *setting); 118 snprintf(buffer, MAX_PATH, str(LANG_EQUALIZER_GAIN_ITEM), *setting);
119 return buffer; 119 return buffer;
120} 120}
121int gainitem_speak_item(int selected_item, void * data)
122{
123 (void)selected_item;
124 int *setting = (int*)data;
125 talk_number(*setting, false);
126 talk_id(LANG_EQUALIZER_GAIN_ITEM, true);
127 return 0;
128}
121 129
122int do_option(void* param) 130int do_option(void* param)
123{ 131{
@@ -145,21 +153,26 @@ MENUITEM_SETTING(gain_2, &global_settings.eq_band2_gain, dsp_set_coefs_callback)
145MENUITEM_SETTING(gain_3, &global_settings.eq_band3_gain, dsp_set_coefs_callback); 153MENUITEM_SETTING(gain_3, &global_settings.eq_band3_gain, dsp_set_coefs_callback);
146MENUITEM_SETTING(gain_4, &global_settings.eq_band4_gain, dsp_set_coefs_callback); 154MENUITEM_SETTING(gain_4, &global_settings.eq_band4_gain, dsp_set_coefs_callback);
147 155
148MENUITEM_FUNCTION_DYNTEXT(gain_item_0, MENU_FUNC_USEPARAM, do_option, 156MENUITEM_FUNCTION_DYNTEXT(gain_item_0, MENU_FUNC_USEPARAM,
149 (void*)&gain_0, gainitem_get_name, NULL, &global_settings.eq_band0_cutoff, 157 do_option, (void*)&gain_0,
150 NULL, Icon_NOICON); 158 gainitem_get_name, gainitem_speak_item,
151MENUITEM_FUNCTION_DYNTEXT(gain_item_1, MENU_FUNC_USEPARAM, do_option, 159 &global_settings.eq_band0_cutoff, NULL, Icon_NOICON);
152 (void*)&gain_1, gainitem_get_name, NULL, &global_settings.eq_band1_cutoff, 160MENUITEM_FUNCTION_DYNTEXT(gain_item_1, MENU_FUNC_USEPARAM,
153 NULL, Icon_NOICON); 161 do_option, (void*)&gain_1,
154MENUITEM_FUNCTION_DYNTEXT(gain_item_2, MENU_FUNC_USEPARAM, do_option, 162 gainitem_get_name, gainitem_speak_item,
155 (void*)&gain_2, gainitem_get_name, NULL, &global_settings.eq_band2_cutoff, 163 &global_settings.eq_band1_cutoff, NULL, Icon_NOICON);
156 NULL, Icon_NOICON); 164MENUITEM_FUNCTION_DYNTEXT(gain_item_2, MENU_FUNC_USEPARAM,
157MENUITEM_FUNCTION_DYNTEXT(gain_item_3, MENU_FUNC_USEPARAM, do_option, 165 do_option, (void*)&gain_2,
158 (void*)&gain_3, gainitem_get_name, NULL, &global_settings.eq_band3_cutoff, 166 gainitem_get_name, gainitem_speak_item,
159 NULL, Icon_NOICON); 167 &global_settings.eq_band2_cutoff, NULL, Icon_NOICON);
160MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM, do_option, 168MENUITEM_FUNCTION_DYNTEXT(gain_item_3, MENU_FUNC_USEPARAM,
161 (void*)&gain_4, gainitem_get_name, NULL, &global_settings.eq_band4_cutoff, 169 do_option, (void*)&gain_3,
162 NULL, Icon_NOICON); 170 gainitem_get_name, gainitem_speak_item,
171 &global_settings.eq_band3_cutoff, NULL, Icon_NOICON);
172MENUITEM_FUNCTION_DYNTEXT(gain_item_4, MENU_FUNC_USEPARAM,
173 do_option, (void*)&gain_4,
174 gainitem_get_name, gainitem_speak_item,
175 &global_settings.eq_band4_cutoff, NULL, Icon_NOICON);
163 176
164MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0, 177MAKE_MENU(gain_menu, ID2P(LANG_EQUALIZER_GAIN), NULL, Icon_NOICON, &gain_item_0,
165 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4); 178 &gain_item_1, &gain_item_2, &gain_item_3, &gain_item_4);
@@ -176,6 +189,14 @@ char* centerband_get_name(int selected_item, void * data, char *buffer)
176 snprintf(buffer, MAX_PATH, str(LANG_EQUALIZER_BAND_PEAK), band); 189 snprintf(buffer, MAX_PATH, str(LANG_EQUALIZER_BAND_PEAK), band);
177 return buffer; 190 return buffer;
178} 191}
192int centerband_speak_item(int selected_item, void * data)
193{
194 (void)selected_item;
195 int band = (intptr_t)data;
196 talk_id(LANG_EQUALIZER_BAND_PEAK, false);
197 talk_number(band, true);
198 return 0;
199}
179int do_center_band_menu(void* param) 200int do_center_band_menu(void* param)
180{ 201{
181 int band = (intptr_t)param; 202 int band = (intptr_t)param;
@@ -196,14 +217,17 @@ int do_center_band_menu(void* param)
196MAKE_MENU(band_0_menu, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL, 217MAKE_MENU(band_0_menu, ID2P(LANG_EQUALIZER_BAND_LOW_SHELF), NULL,
197 Icon_EQ, &cutoff_0, &q_0, &gain_0); 218 Icon_EQ, &cutoff_0, &q_0, &gain_0);
198MENUITEM_FUNCTION_DYNTEXT(band_1_menu, MENU_FUNC_USEPARAM, 219MENUITEM_FUNCTION_DYNTEXT(band_1_menu, MENU_FUNC_USEPARAM,
199 do_center_band_menu, (void*)1, 220 do_center_band_menu, (void*)1,
200 centerband_get_name, NULL, (void*)1, NULL, Icon_EQ); 221 centerband_get_name, centerband_speak_item,
222 (void*)1, NULL, Icon_EQ);
201MENUITEM_FUNCTION_DYNTEXT(band_2_menu, MENU_FUNC_USEPARAM, 223MENUITEM_FUNCTION_DYNTEXT(band_2_menu, MENU_FUNC_USEPARAM,
202 do_center_band_menu, (void*)2, 224 do_center_band_menu, (void*)2,
203 centerband_get_name, NULL, (void*)2, NULL, Icon_EQ); 225 centerband_get_name, centerband_speak_item,
226 (void*)2, NULL, Icon_EQ);
204MENUITEM_FUNCTION_DYNTEXT(band_3_menu, MENU_FUNC_USEPARAM, 227MENUITEM_FUNCTION_DYNTEXT(band_3_menu, MENU_FUNC_USEPARAM,
205 do_center_band_menu, (void*)3, 228 do_center_band_menu, (void*)3,
206 centerband_get_name, NULL, (void*)3, NULL, Icon_EQ); 229 centerband_get_name, centerband_speak_item,
230 (void*)3, NULL, Icon_EQ);
207MAKE_MENU(band_4_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL, 231MAKE_MENU(band_4_menu, ID2P(LANG_EQUALIZER_BAND_HIGH_SHELF), NULL,
208 Icon_EQ, &cutoff_4, &q_4, &gain_4); 232 Icon_EQ, &cutoff_4, &q_4, &gain_4);
209 233
@@ -594,12 +618,12 @@ static bool eq_save_preset(void)
594 if (!kbd_input(filename, sizeof filename)) { 618 if (!kbd_input(filename, sizeof filename)) {
595 fd = creat(filename); 619 fd = creat(filename);
596 if (fd < 0) 620 if (fd < 0)
597 gui_syncsplash(HZ, str(LANG_FAILED)); 621 gui_syncsplash(HZ, ID2P(LANG_FAILED));
598 else 622 else
599 break; 623 break;
600 } 624 }
601 else { 625 else {
602 gui_syncsplash(HZ, str(LANG_CANCEL)); 626 gui_syncsplash(HZ, ID2P(LANG_CANCEL));
603 return false; 627 return false;
604 } 628 }
605 } 629 }
@@ -618,7 +642,7 @@ static bool eq_save_preset(void)
618 642
619 close(fd); 643 close(fd);
620 644
621 gui_syncsplash(HZ, str(LANG_SETTINGS_SAVED)); 645 gui_syncsplash(HZ, ID2P(LANG_SETTINGS_SAVED));
622 646
623 return true; 647 return true;
624} 648}