FS#5074 - voice UI does not speak initially selected menu choice

Attached to Project: Rockbox
Opened by James Teh (jteh) - Sunday, 09 April 2006, 13:57 GMT
Last edited by Brandon Low (lostlogic) - Monday, 10 April 2006, 22:00 GMT
Task Type Bugs
Category User Interface
Status Closed
Assigned To No-one
Operating System Iriver H300 series
Severity Low
Priority Normal
Reported Version
Due in Version Version 3.0
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


When using an option selection screen (such as in the settings menu) while playing audio, the initially selected option is not spoken. For example, if one enters menu->Playback->Repeat, no option is initially spoken. However, if one moves through the options, they are spoken. The work around is to simply press up and then down (or vice versa) to determine the initial selection, but this is a little tedious. Note that this works correctly while audio is playing.

I was snooping around the code and noticed that this should in fact be happening. In set_option in settings.c:
bool set_option(const char* string, void* variable, enum optiontype type,
const struct opt_items* options, int numoptions, void (*function)(int))
if (global_settings.talk_menu)
talk_id(options[select.options.option].voice_id, true);

I noticed that options using unit values (such as Sound Settings->Volume) do speak the initial setting. Looking at the code for talk_unit, I notice that it always sets enqueue to false. I have no idea why setting enqueue to true should fail for the voicing of the initial selection with set_option (talk_unit successfully speaks the unit type with enqueue set to false, as it should), but this seems to be the only difference I can spot. I am also curious as to why enqueue is set to true for the voicing of the initial selection with set_option anyway, as I would have thought one would want to have the previous voicing shut up when entering an option selection.
This task depends upon

Closed by  Linus Nielsen Feltzing (linusnielsen)
Wednesday, 26 April 2006, 12:58 GMT
Reason for closing:  Fixed
Comment by James Teh (jteh) - Sunday, 23 April 2006, 12:15 GMT
This has been fixed in the rework of the voice UI in cvs. Thanks!