diff options
author | Stéphane Doyon <s.doyon@videotron.ca> | 2008-05-04 15:02:46 +0000 |
---|---|---|
committer | Stéphane Doyon <s.doyon@videotron.ca> | 2008-05-04 15:02:46 +0000 |
commit | 7e86e5d8669347921296887a20203c9da9801c40 (patch) | |
tree | 1feabc167182e9f26670ee705321b89dc3ebcec6 | |
parent | 27f59f64c66282933966034a26ca2566995b45ab (diff) | |
download | rockbox-7e86e5d8669347921296887a20203c9da9801c40.tar.gz rockbox-7e86e5d8669347921296887a20203c9da9801c40.zip |
Polish voicing of quickscreen: make it like in FS#6171: announce
"quickscreen" on entering, announce when leaving, say option name
when changing values in case the user isn't entirely familiar with
the layout...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17358 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/quickscreen.c | 38 | ||||
-rw-r--r-- | apps/lang/english.lang | 28 |
2 files changed, 49 insertions, 17 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index a2770a3586..304d38074b 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c | |||
@@ -230,6 +230,17 @@ static int option_value(const struct settings_list *setting) | |||
230 | else | 230 | else |
231 | return *(int*)setting->setting; | 231 | return *(int*)setting->setting; |
232 | } | 232 | } |
233 | |||
234 | void talk_qs_option(struct settings_list *opt, bool enqueue) | ||
235 | { | ||
236 | if (global_settings.talk_menu) { | ||
237 | if(!enqueue) | ||
238 | talk_shutup(); | ||
239 | talk_id(opt->lang_id, true); | ||
240 | option_talk_value(opt, option_value(opt), true); | ||
241 | } | ||
242 | } | ||
243 | |||
233 | /* | 244 | /* |
234 | * Does the actions associated to the given button if any | 245 | * Does the actions associated to the given button if any |
235 | * - qs : the quickscreen | 246 | * - qs : the quickscreen |
@@ -258,9 +269,7 @@ static bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button) | |||
258 | return false; | 269 | return false; |
259 | } | 270 | } |
260 | option_select_next_val((struct settings_list *)qs->items[item], false, true); | 271 | option_select_next_val((struct settings_list *)qs->items[item], false, true); |
261 | if (global_settings.talk_menu) | 272 | talk_qs_option((struct settings_list *)qs->items[item], false); |
262 | option_talk_value((struct settings_list *)qs->items[item], | ||
263 | option_value((struct settings_list *)qs->items[item]), false); | ||
264 | return true; | 273 | return true; |
265 | } | 274 | } |
266 | 275 | ||
@@ -283,20 +292,13 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) | |||
283 | quickscreen_fix_viewports(qs, &screens[i], &vp[i]); | 292 | quickscreen_fix_viewports(qs, &screens[i], &vp[i]); |
284 | gui_quickscreen_draw(qs, &screens[i], &vp[i]); | 293 | gui_quickscreen_draw(qs, &screens[i], &vp[i]); |
285 | } | 294 | } |
286 | if (global_settings.talk_menu) | 295 | /* Announce current selection on entering this screen. This is all |
287 | { | 296 | queued up, but can be interrupted as soon as a setting is |
288 | talk_id(qs->items[QUICKSCREEN_LEFT]->lang_id, false); | 297 | changed. */ |
289 | option_talk_value(qs->items[QUICKSCREEN_LEFT], | 298 | cond_talk_ids(VOICE_QUICKSCREEN); |
290 | option_value(qs->items[QUICKSCREEN_LEFT]), true); | 299 | talk_qs_option((struct settings_list *)qs->items[QUICKSCREEN_LEFT], true); |
291 | 300 | talk_qs_option((struct settings_list *)qs->items[QUICKSCREEN_BOTTOM], true); | |
292 | talk_id(qs->items[QUICKSCREEN_RIGHT]->lang_id, true); | 301 | talk_qs_option((struct settings_list *)qs->items[QUICKSCREEN_RIGHT], true); |
293 | option_talk_value(qs->items[QUICKSCREEN_RIGHT], | ||
294 | option_value(qs->items[QUICKSCREEN_RIGHT]), true); | ||
295 | |||
296 | talk_id(qs->items[QUICKSCREEN_BOTTOM]->lang_id, true); | ||
297 | option_talk_value(qs->items[QUICKSCREEN_BOTTOM], | ||
298 | option_value(qs->items[QUICKSCREEN_BOTTOM]), true); | ||
299 | } | ||
300 | while (true) { | 302 | while (true) { |
301 | button = get_action(CONTEXT_QUICKSCREEN,HZ/5); | 303 | button = get_action(CONTEXT_QUICKSCREEN,HZ/5); |
302 | if(default_event_handler(button) == SYS_USB_CONNECTED) | 304 | if(default_event_handler(button) == SYS_USB_CONNECTED) |
@@ -321,6 +323,8 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) | |||
321 | 323 | ||
322 | gui_syncstatusbar_draw(&statusbars, false); | 324 | gui_syncstatusbar_draw(&statusbars, false); |
323 | } | 325 | } |
326 | /* Notify that we're exiting this screen */ | ||
327 | cond_talk_ids_fq(VOICE_OK); | ||
324 | return changed; | 328 | return changed; |
325 | } | 329 | } |
326 | 330 | ||
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index dd1cfc37ba..e7cf17ea70 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -11660,3 +11660,31 @@ | |||
11660 | *: "Disable Study Mode" | 11660 | *: "Disable Study Mode" |
11661 | </voice> | 11661 | </voice> |
11662 | </phrase> | 11662 | </phrase> |
11663 | <phrase> | ||
11664 | id: VOICE_QUICKSCREEN | ||
11665 | desc: spoken only, Announces entering the "quick screen" | ||
11666 | user: | ||
11667 | <source> | ||
11668 | *: "" | ||
11669 | </source> | ||
11670 | <dest> | ||
11671 | *: "" | ||
11672 | </dest> | ||
11673 | <voice> | ||
11674 | *: "Quick screen" | ||
11675 | </voice> | ||
11676 | </phrase> | ||
11677 | <phrase> | ||
11678 | id: VOICE_OK | ||
11679 | desc: spoken only, On exiting a context, specifically the quick screen | ||
11680 | user: | ||
11681 | <source> | ||
11682 | *: "" | ||
11683 | </source> | ||
11684 | <dest> | ||
11685 | *: "" | ||
11686 | </dest> | ||
11687 | <voice> | ||
11688 | *: "OK" | ||
11689 | </voice> | ||
11690 | </phrase> | ||