aboutsummaryrefslogtreecommitdiffstats
path: root/android/console.c
diff options
context:
space:
mode:
authorVladimir Chtchetkine <vchtchetkine@google.com>2010-07-07 15:57:00 -0700
committerVladimir Chtchetkine <vchtchetkine@google.com>2010-07-07 16:49:12 -0700
commit71bb14f826775867d16e7d382cfdc48e6ca46ccb (patch)
tree9e533673a8c4f7e8bc4b2b1f83589196e0957c0f /android/console.c
parenta21ac6912568a1d36a2919669f905bc58be21244 (diff)
downloadexternal_qemu-71bb14f826775867d16e7d382cfdc48e6ca46ccb.zip
external_qemu-71bb14f826775867d16e7d382cfdc48e6ca46ccb.tar.gz
external_qemu-71bb14f826775867d16e7d382cfdc48e6ca46ccb.tar.bz2
Move key event generation out of the UI realm into neutral space.
Abstracted keycode event array into keycode_array.[hc], Moved key to keycode translation into charmap.c Change-Id: I4de0c9853fa93d675895fc361e62ee36c1c0a652
Diffstat (limited to 'android/console.c')
-rw-r--r--android/console.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/android/console.c b/android/console.c
index c6b8a4e..8dc8c98 100644
--- a/android/console.c
+++ b/android/console.c
@@ -46,8 +46,9 @@
#include <unistd.h>
#include <fcntl.h>
#include "android/hw-events.h"
-#include "android/skin/keyboard.h"
#include "user-events.h"
+#include "android/keycode-array.h"
+#include "android/charmap.h"
#if defined(CONFIG_SLIRP)
#include "libslirp.h"
@@ -701,7 +702,7 @@ do_network_speed( ControlClient client, char* args )
netshaper_set_rate( slirp_shaper_out, qemu_net_upload_speed );
if (android_modem) {
- amodem_set_data_network_type( android_modem,
+ amodem_set_data_network_type( android_modem,
android_parse_network_type( args ) );
}
return 0;
@@ -1793,21 +1794,26 @@ utf8_next( unsigned char* *pp, unsigned char* end )
static int
do_event_text( ControlClient client, char* args )
{
- SkinKeyboard* keyboard;
+ AKeycodeBuffer keycodes;
unsigned char* p = (unsigned char*) args;
unsigned char* end = p + strlen(args);
int textlen;
+ const AKeyCharmap* charmap;
if (!args) {
control_write( client, "KO: argument missing, try 'event text <message>'\r\n" );
return -1;
}
- keyboard = android_emulator_get_keyboard();
- if (keyboard == NULL) {
- control_write( client, "KO: no keyboard active in current device layout/config\r\n" );
+
+ /* Get default charmap. */
+ charmap = android_get_charmap_by_index(0);
+ if (charmap == NULL) {
+ control_write( client, "KO: no character map active in current device layout/config\r\n" );
return -1;
}
+ keycodes.keycode_count = 0;
+
/* un-secape message text into proper utf-8 (conversion happens in-site) */
textlen = strlen((char*)p);
textlen = sms_utf8_from_message_str( args, textlen, (unsigned char*)p, textlen );
@@ -1828,9 +1834,9 @@ do_event_text( ControlClient client, char* args )
if (c <= 0)
break;
- skin_keyboard_process_unicode_event( keyboard, (unsigned)c, 1 );
- skin_keyboard_process_unicode_event( keyboard, (unsigned)c, 0 );
- skin_keyboard_flush( keyboard );
+ android_charmap_reverse_map_unicode( NULL, (unsigned)c, 1, &keycodes );
+ android_charmap_reverse_map_unicode( NULL, (unsigned)c, 0, &keycodes );
+ android_keycodes_flush( &keycodes );
}
return 0;