alex wallis wrote:
But supposing the option isn't voiced in the first place.
i'm guessing we can't just add entrys to the lang file.
i mean for example if i want to add an entry so rockbox announces the
option dump rom contents under debug i'm guessing you can't just add a
string to the lang file and expect it to no instantly where that option
is or when to use the string.
You didn't tell me what your objective was, so I assumed that you knew
that much. The debug menu doesn't use string ID's because it isn't meant
to be localized, and not voiced either. It's a menu for the developers,
for debugging.
If you still want to do this for your own benefit, add a new LANG ID
called LANG_DUMPROM last in english.lang, like I described, then change
the string "Dump ROM contents" to ID2P(LANG_DUMPROM) in the menuitems[]
array. Then you have to add a get_talk callback in the simplelist in the
debug menu.
Here is an example patch that does this:
------------------------------------------------------------------------------------
Index: apps/lang/english.lang
===================================================================
--- apps/lang/english.lang (revision 15908)
+++ apps/lang/english.lang (working copy)
@@ -11512,4 +11512,18 @@
ipodvideo: "Treble Cutoff"
</voice>
</phrase>
+<phrase>
+ id: LANG_DUMPROM
+ desc: Dump ROM contents (in the debug menu)
+ user:
+ <source>
+ *: "Dump ROM contents"
+ </source>
+ <dest>
+ *: "Dump ROM contents"
+ </dest>
+ <voice>
+ *: "Dump ROM contents"
+ </voice>
+</phrase>
Index: apps/debug_menu.c
===================================================================
--- apps/debug_menu.c (revision 15908)
+++ apps/debug_menu.c (working copy)
@@ -21,6 +21,8 @@
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
+#include "lang.h"
+#include "talk.h"
#include "lcd.h"
#include "menu.h"
#include "debug_menu.h"
@@ -2263,7 +2265,7 @@
#endif
#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || \
(defined(CPU_PP) && !(defined(SANSA_E200) || defined(SANSA_C200)))
- { "Dump ROM contents", dbg_save_roms },
+ { ID2P(LANG_DUMPROM), dbg_save_roms },
#endif
#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE) || defined(CPU_PP)
|| CONFIG_CPU == S3C2440
{ "View I/O ports", dbg_ports },
@@ -2342,6 +2344,14 @@
(void)data; (void)buffer;
return menuitems[item].desc;
}
+
+static int debug_speak_item(int selected_item, void * data)
+{
+ (void)data;
+ talk_id(P2ID(menuitems[selected_item].desc), false);
+ return 0;
+}
+
bool debug_menu(void)
{
struct simplelist_info info;
@@ -2349,6 +2359,8 @@
simplelist_info_init(&info, "Debug Menu", ARRAYLEN(menuitems), NULL);
info.action_callback = menu_action_callback;
info.get_name = dbg_menu_getname;
+ if(global_settings.talk_menu)
+ info.get_talk = debug_speak_item;
return simplelist_show_list(&info);
}
------------------------------------------------------------------------------------
Enjoy!
Linus