From 100d343963ad2cc86727be8d438eb7e66ef40db3 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Wed, 10 Oct 2007 05:56:53 +0000 Subject: Fix red Ondio builds. Hwcodec targets can't beep that way, so disable that beep for them.* Port the other vkeyboard enhancements (fixed character spelling and edit mode announcement) to the charcell vkeyboard (Player). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15064 a1c6a512-1295-4272-9138-f99709370657 --- apps/player/keyboard.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'apps/player/keyboard.c') diff --git a/apps/player/keyboard.c b/apps/player/keyboard.c index dcff7e7d62..6baa0d5c90 100644 --- a/apps/player/keyboard.c +++ b/apps/player/keyboard.c @@ -28,6 +28,7 @@ #include "talk.h" #include "misc.h" #include "rbunicode.h" +#include "lang.h" #define KBD_BUF_SIZE 64 #define KEYBOARD_PAGES 3 @@ -73,15 +74,25 @@ static unsigned short *kbd_setupkeys(int page, int* len) /* helper function to spell a char if voice UI is enabled */ static void kbd_spellchar(char c) { - static char spell_char[2] = "\0\0"; /* store char to pass to talk_spell */ - if (talk_menus_enabled()) /* voice UI? */ { - spell_char[0] = c; - talk_spell(spell_char, false); + unsigned char tmp[5]; + /* store char to pass to talk_spell */ + unsigned char* utf8 = utf8encode(c, tmp); + *utf8 = 0; + + if(c == ' ') + talk_id(VOICE_BLANK, false); + else talk_spell(tmp, false); } } +static void say_edit(void) +{ + if (talk_menus_enabled()) + talk_id(VOICE_EDIT, false); +} + int kbd_input(char* text, int buflen) { bool done = false; @@ -184,7 +195,9 @@ int kbd_input(char* text, int buflen) case BUTTON_ON: /* toggle mode */ line_edit = !line_edit; - if (!line_edit) + if (line_edit) + say_edit(); + else kbd_spellchar(line[x]); break; -- cgit v1.2.3