Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Patches
  • Category Applications
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Mario Lang - 2007-09-03
Last edited by Alex Parker - 2010-06-06

FS#7704 - Talk support for plugins

This patch does two things: It exports the talk functions
to plugins (through plugin.h) and changes genlang to create
a separate header (lang_enum.h) for only the string enums so
that these can be used in a plugin to feed talk_id() without
having to link lang.o.
It also changes chessbox.c to make basic voice support available.
You can navigate the board, get pieces announced, and get the opponent move announced.
So with a little practice, you can play chess blind on the rockbox!!!!!

The task blocks this from closing
ID Project Summary Priority Severity Assigned To Progress
7705 Rockbox  FS#7705 - Add speech to battery bench  Very Low Low
100%
Closed by  Alex Parker
2010-06-06 00:04
Reason for closing:  Out of Date
Daniel Dalton commented on 2007-09-03 22:16

I haven’t tried this out yet. But does it add all the strings to english.lang? If so won’t the voice become to big? Because once it is working well that is all I can see stopping it getting committed. Maybe there should be a separate voice file for plugins?

Daniel Dalton commented on 2007-09-04 09:37

Very nice patch!
I have got it working.
Also I have now got voice for battery bench. Thanks to this patch.
But I really think we just need a voice file for plugins. Maybe if this gets committed you can just download the voice file so if your player doesn’t support the large voice file it won’t be a problem.

Daniel Dalton commented on 2007-09-04 11:40

This patch just removes the Chess box stuff. So it just contains all the stuff needed to voice other plugins.
I found it pretty difficult to use chess box with the voice.

Mario Lang commented on 2007-09-04 19:42

If we want separate voice files for each plugin, how are we going to reuse
voice snippets that are already available in the core? It doesnt seem like very effective to
re-generate these for each plugin. For instance, the chessbox voice feature
uses 16 snippets from the core, and only adds (right now) 8 snippets (the piece colours and names).
One other problem I see with splitting this up for each plugin is the fact that
voice feedback for menus is hardcoded in the core (menu.c). So if a plugin uses the menu api,
the menu code will have a hard time to figure out which voice file to actually use.

Daniel Dalton commented on 2007-09-04 22:01

Ok I see what your saying. Do you have any other ideas? I just think if we use english.voice for everything it is going to get too big. Maybe a voice file called plugin.voice? And then we could just add the strings we need? But I don’t know.

Also is it ok that I removed the chess box part from your patch? Maybe you could put this in another task. But I thought it would be good if people just want to have some plugins talking they don’t need the chessbox stuff.

Daniel Dalton commented on 2007-10-06 08:46

Update.

Daniel Dalton commented on 2007-10-06 08:47

Should the voicing of plugin error messages. (From the core) be kept in
 FS#7764  Or should I move them to this patch?

Mario Lang commented on 2007-10-09 15:54

This is an update of the plugin-talk.diff without the chessbox modifications.
With this patch plugins can simply use IDs from the core language file for splash screens and menus.
This can come handy even without further bloating the language files, especially for things like yes/no questions or any other sort of thing that might want to reuse a core language ID.
To describe the idea behind the patch a little more: lang_enum.h is split out to contain only the enum for the language IDs.
This header is included in lang.h and in plugin.h (if plugin.h has PLUGIN defined).
Furthermore, the plugin api struct is modified to include the talk_* functions.
We recently have seen talk_{disable,enable}_menus() added to SVN (for the benefit of mpegplayer), so I took the opportunity to merge these functions into a logical order… This patch has been in use by me (and several friends) for over a month now, and it has proofen stable.
A patch to voice-enable chessbox is going to be added in a different task.

Mario Lang commented on 2007-10-10 09:41

An update (without functional changes) to account for recent changes to plugin.{c,h} in svn.

Mario Lang commented on 2007-10-10 14:19

As mentioned in my previous comment, some core language IDs could as well be reused in plugin code.
This patch now changes most struct opt_item definitions in plguins that currently have a -1 voice_id (or wrongly set to NULL).
This makes many value selection menus in plugins voice enabled without adding anything further to the language file, we just set the correct voice_id values in struct opt_item.
For full accessibility of the menus inside plugins changes to the language file (or a plugin specific lang file) would be needed to avoid bloating the core. This will go in a different task.
This patch also fixed a “off-by-one” in the fireworks plugin (autofire_delay_settings mentions 300ms item twice) that I spotted when adding the correct voice_id.

Mario Lang commented on 2007-10-14 08:52

Update to follow recent changes to plugin.h in SVN and account for the fix to fireworks.c ( FS#7933 ) which was originally part of this patch.
No functional changes.

Mario Lang commented on 2007-10-15 13:35

Yet another update with no functional changes.
Just follow recent changes to plugin code sto make this patch apply again.

harry tu commented on 2007-10-23 20:46

needs resync

harry tu commented on 2007-11-24 16:08

Needs a huge resync. It won’t even work.

alex wallis commented on 2008-01-14 04:37

Hi. could this please be updated? Personally i don’t care if i have a monster sized voice file well not unless it means the speech doesn’t work very well.

harry tu commented on 2008-03-16 03:47

This needs a r e s y n c!

Jonathan Gordon commented on 2008-03-16 05:10

then get off your ass and do it! youve been told before on numerous occasions to not ask for a sync

alex wallis commented on 2008-03-16 12:54

Hi. I have been in contact with theoriginal creator of this patch, and he has stated to me, that due to the fact that this patch is unlikely to be committed due to the attitude of the devs and the fact it needs resyncing quite a bit he won’t be updating it on the tracker any more, though he did invite anyone who felt like it to go ahead and resync it. He also said to me that to get plugins talking you’d probably have to do modifications to individual plugins, as all this does is give access to the speech to the right API. Just another thought as well, although I am blind at the moment there really isn’t a lot someone who is blind could do with most of the plugins, as most of them are graphical and from our point of view not very useful. The only ones off the top of my head I think we could use would be battery bench or chess. Although I could see a lot of potential with plugins, even if they were not talking for lots of different types of card games, they if made correctly would be useable with speech.

alex wallis commented on 2008-03-16 12:59

One other plugin we could use with speech is sudoku, and I as much as the next man would be keen to have talking plugins, and i’d be very happy if a solution was implemented, I wasn’t trying to discourage anyone from getting speech working in a state that could be committed.

harry tu commented on 2008-03-16 16:23

Hi, I am blind as well and my feeling is we should have accese to the apps and some of the games (the ones we could play).

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing