summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStéphane Doyon <s.doyon@videotron.ca>2007-10-09 03:53:46 +0000
committerStéphane Doyon <s.doyon@videotron.ca>2007-10-09 03:53:46 +0000
commit26e47f2ad5e9450dfa4a94473f8c8bd1c59a2412 (patch)
tree34dd30257e1f0f6e66d4fb403c378919320128f7
parent5acf09104644a7942cf264d80a99f6bf5ae20792 (diff)
downloadrockbox-26e47f2ad5e9450dfa4a94473f8c8bd1c59a2412.tar.gz
rockbox-26e47f2ad5e9450dfa4a94473f8c8bd1c59a2412.zip
Use dynamic menu voice callbacks to speak menu item names in the
"Simple EQ Settings" menu and the Peak filter item names in the "Advanced EQ Settings" menu. From FS#7563. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15043 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/lang/english.lang2
-rw-r--r--apps/menus/eq_menu.c72
2 files changed, 49 insertions, 25 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 94a280ecff..ce798fded3 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -1109,7 +1109,7 @@
1109 </dest> 1109 </dest>
1110 <voice> 1110 <voice>
1111 *: none 1111 *: none
1112 swcodec: "" 1112 swcodec: "hertz band gain"
1113 </voice> 1113 </voice>
1114</phrase> 1114</phrase>
1115<phrase> 1115<phrase>
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}