231  {
  232    if (initialized)
  233      return;
  234 
  235    keymapAndroid = new int[256];
  236 
  237    keymapAndroid[KeyEvent.KEYCODE_0] = VK_KEY_0;
  238    keymapAndroid[KeyEvent.KEYCODE_1] = VK_KEY_1;
  239    keymapAndroid[KeyEvent.KEYCODE_2] = VK_KEY_2;
  240    keymapAndroid[KeyEvent.KEYCODE_3] = VK_KEY_3;
  241    keymapAndroid[KeyEvent.KEYCODE_4] = VK_KEY_4;
  242    keymapAndroid[KeyEvent.KEYCODE_5] = VK_KEY_5;
  243    keymapAndroid[KeyEvent.KEYCODE_6] = VK_KEY_6;
  244    keymapAndroid[KeyEvent.KEYCODE_7] = VK_KEY_7;
  245    keymapAndroid[KeyEvent.KEYCODE_8] = VK_KEY_8;
  246    keymapAndroid[KeyEvent.KEYCODE_9] = VK_KEY_9;
  247 
  248    keymapAndroid[KeyEvent.KEYCODE_A] = VK_KEY_A;
  249    keymapAndroid[KeyEvent.KEYCODE_B] = VK_KEY_B;
  250    keymapAndroid[KeyEvent.KEYCODE_C] = VK_KEY_C;
  251    keymapAndroid[KeyEvent.KEYCODE_D] = VK_KEY_D;
  252    keymapAndroid[KeyEvent.KEYCODE_E] = VK_KEY_E;
  253    keymapAndroid[KeyEvent.KEYCODE_F] = VK_KEY_F;
  254    keymapAndroid[KeyEvent.KEYCODE_G] = VK_KEY_G;
  255    keymapAndroid[KeyEvent.KEYCODE_H] = VK_KEY_H;
  256    keymapAndroid[KeyEvent.KEYCODE_I] = VK_KEY_I;
  257    keymapAndroid[KeyEvent.KEYCODE_J] = VK_KEY_J;
  258    keymapAndroid[KeyEvent.KEYCODE_K] = VK_KEY_K;
  259    keymapAndroid[KeyEvent.KEYCODE_L] = VK_KEY_L;
  260    keymapAndroid[KeyEvent.KEYCODE_M] = VK_KEY_M;
  261    keymapAndroid[KeyEvent.KEYCODE_N] = VK_KEY_N;
  262    keymapAndroid[KeyEvent.KEYCODE_O] = VK_KEY_O;
  263    keymapAndroid[KeyEvent.KEYCODE_P] = VK_KEY_P;
  264    keymapAndroid[KeyEvent.KEYCODE_Q] = VK_KEY_Q;
  265    keymapAndroid[KeyEvent.KEYCODE_R] = VK_KEY_R;
  266    keymapAndroid[KeyEvent.KEYCODE_S] = VK_KEY_S;
  267    keymapAndroid[KeyEvent.KEYCODE_T] = VK_KEY_T;
  268    keymapAndroid[KeyEvent.KEYCODE_U] = VK_KEY_U;
  269    keymapAndroid[KeyEvent.KEYCODE_V] = VK_KEY_V;
  270    keymapAndroid[KeyEvent.KEYCODE_W] = VK_KEY_W;
  271    keymapAndroid[KeyEvent.KEYCODE_X] = VK_KEY_X;
  272    keymapAndroid[KeyEvent.KEYCODE_Y] = VK_KEY_Y;
  273    keymapAndroid[KeyEvent.KEYCODE_Z] = VK_KEY_Z;
  274 
  275    keymapAndroid[KeyEvent.KEYCODE_DEL] = VK_BACK;
  276    keymapAndroid[KeyEvent.KEYCODE_ENTER] = VK_RETURN;
  277    keymapAndroid[KeyEvent.KEYCODE_SPACE] = VK_SPACE;
  278    keymapAndroid[KeyEvent.KEYCODE_TAB] = VK_TAB;
  279    
  280    
  281 
  282    
  283    
  284    
  285    
  286 
  287    
  288    
  289    
  290    
  291 
  292    
  293    
  294 
  295    
  296    
  297    
  298    
  299    
  300    
  301    
  302    
  303    
  304    
  305    
  306    
  307    
  308    
  309    
  310 
  311    
  312    keymapExt = new int[256];
  313    keymapExt[context.getResources().getInteger(R.integer.keycode_F1)] = VK_F1;
  314    keymapExt[context.getResources().getInteger(R.integer.keycode_F2)] = VK_F2;
  315    keymapExt[context.getResources().getInteger(R.integer.keycode_F3)] = VK_F3;
  316    keymapExt[context.getResources().getInteger(R.integer.keycode_F4)] = VK_F4;
  317    keymapExt[context.getResources().getInteger(R.integer.keycode_F5)] = VK_F5;
  318    keymapExt[context.getResources().getInteger(R.integer.keycode_F6)] = VK_F6;
  319    keymapExt[context.getResources().getInteger(R.integer.keycode_F7)] = VK_F7;
  320    keymapExt[context.getResources().getInteger(R.integer.keycode_F8)] = VK_F8;
  321    keymapExt[context.getResources().getInteger(R.integer.keycode_F9)] = VK_F9;
  322    keymapExt[context.getResources().getInteger(R.integer.keycode_F10)] = VK_F10;
  323    keymapExt[context.getResources().getInteger(R.integer.keycode_F11)] = VK_F11;
  324    keymapExt[context.getResources().getInteger(R.integer.keycode_F12)] = VK_F12;
  325    keymapExt[context.getResources().getInteger(R.integer.keycode_tab)] = VK_TAB;
  326    keymapExt[context.getResources().getInteger(R.integer.keycode_print)] = VK_PRINT;
  327    keymapExt[context.getResources().getInteger(R.integer.keycode_insert)] =
  328        VK_INSERT | VK_EXT_KEY;
  329    keymapExt[context.getResources().getInteger(R.integer.keycode_delete)] =
  330        VK_DELETE | VK_EXT_KEY;
  331    keymapExt[context.getResources().getInteger(R.integer.keycode_home)] = VK_HOME | VK_EXT_KEY;
  332    keymapExt[context.getResources().getInteger(R.integer.keycode_end)] = VK_END | VK_EXT_KEY;
  333    keymapExt[context.getResources().getInteger(R.integer.keycode_pgup)] =
  334        VK_PRIOR | VK_EXT_KEY;
  335    keymapExt[context.getResources().getInteger(R.integer.keycode_pgdn)] = VK_NEXT | VK_EXT_KEY;
  336 
  337    
  338    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_0)] = VK_NUMPAD0;
  339    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_1)] = VK_NUMPAD1;
  340    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_2)] = VK_NUMPAD2;
  341    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_3)] = VK_NUMPAD3;
  342    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_4)] = VK_NUMPAD4;
  343    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_5)] = VK_NUMPAD5;
  344    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_6)] = VK_NUMPAD6;
  345    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_7)] = VK_NUMPAD7;
  346    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_8)] = VK_NUMPAD8;
  347    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_9)] = VK_NUMPAD9;
  348    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_numlock)] = VK_NUMLOCK;
  349    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_add)] = VK_ADD;
  350    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_comma)] = VK_DECIMAL;
  351    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_divide)] =
  352        VK_DIVIDE | VK_EXT_KEY;
  353    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_enter)] =
  354        VK_RETURN | VK_EXT_KEY;
  355    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_multiply)] =
  356        VK_MULTIPLY;
  357    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_subtract)] =
  358        VK_SUBTRACT;
  359    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_equals)] =
  360        (KEY_FLAG_UNICODE | 61);
  361    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_left_paren)] =
  362        (KEY_FLAG_UNICODE | 40);
  363    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_right_paren)] =
  364        (KEY_FLAG_UNICODE | 41);
  365 
  366    
  367    keymapExt[context.getResources().getInteger(R.integer.keycode_up)] = VK_UP | VK_EXT_KEY;
  368    keymapExt[context.getResources().getInteger(R.integer.keycode_down)] = VK_DOWN | VK_EXT_KEY;
  369    keymapExt[context.getResources().getInteger(R.integer.keycode_left)] = VK_LEFT | VK_EXT_KEY;
  370    keymapExt[context.getResources().getInteger(R.integer.keycode_right)] =
  371        VK_RIGHT | VK_EXT_KEY;
  372    keymapExt[context.getResources().getInteger(R.integer.keycode_enter)] =
  373        VK_RETURN | VK_EXT_KEY;
  374    keymapExt[context.getResources().getInteger(R.integer.keycode_backspace)] = VK_BACK;
  375 
  376    
  377    keymapExt[context.getResources().getInteger(R.integer.keycode_win)] = VK_LWIN | VK_EXT_KEY;
  378    keymapExt[context.getResources().getInteger(R.integer.keycode_menu)] = VK_APPS | VK_EXT_KEY;
  379    keymapExt[context.getResources().getInteger(R.integer.keycode_esc)] = VK_ESCAPE;
  380 
  381    
  382
  383
  384
  385
  386
  387    
  388    keymapExt[context.getResources().getInteger(R.integer.keycode_specialkeys_keyboard)] =
  389        EXTKEY_KBFUNCTIONKEYS;
  390    keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_keyboard)] =
  391        EXTKEY_KBNUMPAD;
  392    keymapExt[context.getResources().getInteger(R.integer.keycode_cursor_keyboard)] =
  393        EXTKEY_KBCURSOR;
  394 
  395    keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_shift)] =
  396        (KEY_FLAG_TOGGLE | VK_LSHIFT);
  397    keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_ctrl)] =
  398        (KEY_FLAG_TOGGLE | VK_LCONTROL);
  399    keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_alt)] =
  400        (KEY_FLAG_TOGGLE | VK_LMENU);
  401    keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_win)] =
  402        (KEY_FLAG_TOGGLE | VK_LWIN);
  403 
  404    initialized = true;
  405  }