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
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 @@
     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 @@
 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 @@
         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;