diff --git a/src/kb-sdl/keyboard.cpp b/src/kb-sdl/keyboard.cpp deleted file mode 100644 index 7e42cbc2..00000000 --- a/src/kb-sdl/keyboard.cpp +++ /dev/null @@ -1,428 +0,0 @@ -#include "sysconfig.h" -#include "sysdeps.h" -#include "config.h" -#include "options.h" -#include "uae.h" -#include "memory.h" -#include "newcpu.h" -#include "events.h" -#include "custom.h" -#include "xwin.h" -#include "drawing.h" -#include "keyboard.h" -#include "keybuf.h" -#include "gui.h" -#include - - -#define KEYCODE_UNK 0 -#define KEYCODE_X11 1 -#define KEYCODE_FBCON 2 - - -char keyboard_type = 2; - -void init_keyboard(void) -{ - char vid_drv_name[32]; - // get display type... - SDL_VideoDriverName(vid_drv_name, sizeof(vid_drv_name)); - if (strcmp(vid_drv_name, "x11") == 0) - { - printf("Will use keycode from x11 mapping.\n"); - keyboard_type = KEYCODE_X11; - } else if (strcmp(vid_drv_name, "fbcon") == 0) - { - printf("Will use keycode from fbcon mapping.\n"); - keyboard_type = KEYCODE_FBCON; - } else - { - printf("Unknown keycode to use, will use keysym\n"); - } -} - -/* Decode KeySyms. This function knows about all keys that are common - * between different keyboard languages. */ -static int kc_decode (SDL_keysym *prKeySym) -{ - - int scancode = -1; - - if (keyboard_type == KEYCODE_X11) - scancode = prKeySym->scancode; - - // In fbcon driver, we have only a small shift by 8 compared with X11... - if (keyboard_type == KEYCODE_FBCON) - scancode = prKeySym->scancode + 8; - - switch (scancode) - { - // Idea taken from linux.c file in fs-uae... - - case 9 : return AK_ESC; - case 67: return AK_F1; - case 68: return AK_F2; - case 69: return AK_F3; - case 70: return AK_F4; - case 71: return AK_F5; - case 72: return AK_F6; - case 73: return AK_F7; - case 74: return AK_F8; - case 75: return AK_F9; - case 76: return AK_F10; - //case 95: return AK_F11; - //case 96: return AK_F12; - - case 49: return AK_BACKQUOTE; - - case 10: return AK_1; - case 11: return AK_2; - case 12: return AK_3; - case 13: return AK_4; - case 14: return AK_5; - case 15: return AK_6; - case 16: return AK_7; - case 17: return AK_8; - case 18: return AK_9; - case 19: return AK_0; - case 20: return AK_MINUS; - case 21: return AK_EQUAL; - case 22: return AK_BS; - - case 23: return AK_TAB; - case 24: return AK_Q; - case 25: return AK_W; - case 26: return AK_E; - case 27: return AK_R; - case 28: return AK_T; - case 29: return AK_Y; - case 30: return AK_U; - case 31: return AK_I; - case 32: return AK_O; - case 33: return AK_P; - case 34: return AK_LBRACKET; - case 35: return AK_RBRACKET; - case 36: return AK_RET; - - case 66: return AK_CAPSLOCK; - case 38: return AK_A; - case 39: return AK_S; - case 40: return AK_D; - case 41: return AK_F; - case 42: return AK_G; - case 43: return AK_H; - case 44: return AK_J; - case 45: return AK_K; - case 46: return AK_L; - case 47: return AK_SEMICOLON; - case 48: return AK_QUOTE; - case 51: return AK_BACKSLASH; - - case 50: return AK_LSH; - case 94: return AK_LTGT; - case 52: return AK_Z; - case 53: return AK_X; - case 54: return AK_C; - case 55: return AK_V; - case 56: return AK_B; - case 57: return AK_N; - case 58: return AK_M; - case 59: return AK_COMMA; - case 60: return AK_PERIOD; - case 61: return AK_SLASH; - case 62: return AK_RSH; - - case 37: return AK_CTRL; - case 64: return AK_LALT; - case 65: return AK_SPC; - - case 108:return AK_RALT; - - //case 78: return AK_SCROLLOCK; - - //case 77: return AK_NUMLOCK; - case 106:return AK_NPDIV; - case 63: return AK_NPMUL; - case 82: return AK_NPSUB; - - case 79: return AK_NP7; - case 80: return AK_NP8; - case 81: return AK_NP9; - case 86: return AK_NPADD; - - case 83: return AK_NP4; - case 84: return AK_NP5; - case 85: return AK_NP6; - - case 87: return AK_NP1; - case 88: return AK_NP2; - case 89: return AK_NP3; - case 104:return AK_ENT; // The ENT from keypad.. - - case 90: return AK_NP0; - case 91: return AK_NPDEL; - - case 133: return AK_LAMI; // Left amiga mapped to left Windows - case 134: return AK_RAMI; // Right amiga mapped to right windows key. - case 135: return AK_RAMI; // Right amiga mapped to Menu key. - } - - // In case are in unknown driver type... we can still rely on keysym... - -#ifdef PANDORA_SPECIFIC - // Special handling of Pandora keyboard: - // Some keys requires shift on Amiga, so we simulate shift... - - switch (prKeySym->sym) - { - case SDLK_QUESTION: - return SIMULATE_SHIFT | AK_SLASH; - case SDLK_HASH: - return SIMULATE_SHIFT | AK_3; - case SDLK_DOLLAR: - return SIMULATE_SHIFT | AK_4; - case SDLK_QUOTEDBL: - return SIMULATE_SHIFT | AK_QUOTE; - case SDLK_PLUS: - return SIMULATE_SHIFT | AK_EQUAL; - case SDLK_AT: - return SIMULATE_SHIFT | AK_2; - case SDLK_LEFTPAREN: - return SIMULATE_SHIFT | AK_9; - case SDLK_RIGHTPAREN: - return SIMULATE_SHIFT | AK_0; - case SDLK_EXCLAIM: - return SIMULATE_SHIFT | AK_1; - case SDLK_UNDERSCORE: - return SIMULATE_SHIFT | AK_MINUS; - case SDLK_2: - if(prKeySym->mod == KMOD_LSHIFT) - return SIMULATE_SHIFT | AK_LBRACKET; - break; - case SDLK_3: - if(prKeySym->mod == KMOD_LSHIFT) - return SIMULATE_SHIFT | AK_RBRACKET; - break; - case SDLK_4: - if(prKeySym->mod == KMOD_LSHIFT) - return SIMULATE_SHIFT | AK_BACKQUOTE; - break; - case SDLK_9: - if(prKeySym->mod == KMOD_LSHIFT) - return SIMULATE_RELEASED_SHIFT | AK_LBRACKET; - break; - case SDLK_0: - if(prKeySym->mod == KMOD_LSHIFT) - return SIMULATE_RELEASED_SHIFT | AK_RBRACKET; - break; - case 124: // code for '|' - return SIMULATE_SHIFT | AK_BACKSLASH; - } -#endif - switch (prKeySym->sym) - { - case SDLK_b: return AK_B; - case SDLK_c: return AK_C; - case SDLK_d: return AK_D; - case SDLK_e: return AK_E; - case SDLK_f: return AK_F; - case SDLK_g: return AK_G; - case SDLK_h: return AK_H; - case SDLK_i: return AK_I; - case SDLK_j: return AK_J; - case SDLK_k: return AK_K; - case SDLK_l: return AK_L; - case SDLK_n: return AK_N; - case SDLK_o: return AK_O; - case SDLK_p: return AK_P; - case SDLK_r: return AK_R; - case SDLK_s: return AK_S; - case SDLK_t: return AK_T; - case SDLK_u: return AK_U; - case SDLK_v: return AK_V; - case SDLK_x: return AK_X; - - case SDLK_0: return AK_0; - case SDLK_1: return AK_1; - case SDLK_2: return AK_2; - case SDLK_3: return AK_3; - case SDLK_4: return AK_4; - case SDLK_5: return AK_5; - case SDLK_6: return AK_6; - case SDLK_7: return AK_7; - case SDLK_8: return AK_8; - case SDLK_9: return AK_9; - - case SDLK_KP0: return AK_NP0; - case SDLK_KP1: return AK_NP1; - case SDLK_KP2: return AK_NP2; - case SDLK_KP3: return AK_NP3; - case SDLK_KP4: return AK_NP4; - case SDLK_KP5: return AK_NP5; - case SDLK_KP6: return AK_NP6; - case SDLK_KP7: return AK_NP7; - case SDLK_KP8: return AK_NP8; - case SDLK_KP9: return AK_NP9; - case SDLK_KP_DIVIDE: return AK_NPDIV; - case SDLK_KP_MULTIPLY: return AK_NPMUL; - case SDLK_KP_MINUS: return AK_NPSUB; - case SDLK_KP_PLUS: return AK_NPADD; - case SDLK_KP_PERIOD: return AK_NPDEL; - case SDLK_KP_ENTER: return AK_RET; - - case SDLK_F1: return AK_F1; - case SDLK_F2: return AK_F2; - case SDLK_F3: return AK_F3; - case SDLK_F4: return AK_F4; - case SDLK_F5: return AK_F5; - case SDLK_F6: return AK_F6; - case SDLK_F7: return AK_F7; - case SDLK_F8: return AK_F8; - case SDLK_F9: return AK_F9; - case SDLK_F10: return AK_F10; - - case SDLK_BACKSPACE: return AK_BS; - case SDLK_DELETE: return AK_DEL; - case SDLK_LCTRL: return AK_CTRL; - case SDLK_RCTRL: return AK_RCTRL; - case SDLK_TAB: return AK_TAB; - case SDLK_LALT: return AK_LALT; - case SDLK_RALT: return AK_RALT; - case SDLK_RMETA: return AK_RAMI; - case SDLK_LMETA: return AK_LAMI; - case SDLK_RETURN: return AK_RET; - case SDLK_SPACE: return AK_SPC; - case SDLK_LSHIFT: return AK_LSH; - case SDLK_RSHIFT: return AK_RSH; - case SDLK_ESCAPE: return AK_ESC; - - case SDLK_INSERT: return AK_HELP; - case SDLK_HOME: return AK_NPLPAREN; - case SDLK_END: return AK_NPRPAREN; - case SDLK_CAPSLOCK: return AK_CAPSLOCK; - - case SDLK_UP: return AK_UP; - case SDLK_DOWN: return AK_DN; - case SDLK_LEFT: return AK_LF; - case SDLK_RIGHT: return AK_RT; - - case SDLK_PAGEUP: return AK_RAMI; /* PgUp mapped to right amiga */ - case SDLK_PAGEDOWN: return AK_LAMI; /* PgDn mapped to left amiga */ - - default: return -1; - } -} - -/* - * Handle keys specific to French (and Belgian) keymaps. - * - * Number keys are broken - */ -static int decode_fr (SDL_keysym *prKeySym) -{ - switch(prKeySym->sym) { - case SDLK_a: return AK_Q; - case SDLK_m: return AK_SEMICOLON; - case SDLK_q: return AK_A; - case SDLK_y: return AK_Y; - case SDLK_w: return AK_Z; - case SDLK_z: return AK_W; - case SDLK_LEFTBRACKET: return AK_LBRACKET; - case SDLK_RIGHTBRACKET: return AK_RBRACKET; - case SDLK_COMMA: return AK_M; - case SDLK_LESS: - case SDLK_GREATER: return AK_LTGT; - case SDLK_PERIOD: - case SDLK_SEMICOLON: return AK_COMMA; - case SDLK_RIGHTPAREN: return AK_MINUS; - case SDLK_EQUALS: return AK_SLASH; - case SDLK_HASH: return AK_NUMBERSIGN; - case SDLK_SLASH: return AK_PERIOD; // Is it true ? - case SDLK_MINUS: return AK_EQUAL; - case SDLK_BACKSLASH: return AK_SLASH; - case SDLK_COLON: return AK_PERIOD; - case SDLK_EXCLAIM: return AK_BACKSLASH; // Not really... - default: printf("Unknown key: %i\n",prKeySym->sym); return -1; - } -} - -/* - * Handle keys specific to German keymaps. - */ -static int decode_de (SDL_keysym *prKeySym) -{ - switch(prKeySym->sym) { - case SDLK_a: return AK_A; - case SDLK_m: return AK_M; - case SDLK_q: return AK_Q; - case SDLK_w: return AK_W; - case SDLK_y: return AK_Z; - case SDLK_z: return AK_Y; - case SDLK_COLON: return AK_SEMICOLON; - /* German umlaut oe */ - case SDLK_WORLD_86: return AK_SEMICOLON; - /* German umlaut ae */ - case SDLK_WORLD_68: return AK_QUOTE; - /* German umlaut ue */ - case SDLK_WORLD_92: return AK_LBRACKET; - case SDLK_PLUS: - case SDLK_ASTERISK: return AK_RBRACKET; - case SDLK_COMMA: return AK_COMMA; - case SDLK_PERIOD: return AK_PERIOD; - case SDLK_LESS: - case SDLK_GREATER: return AK_LTGT; - case SDLK_HASH: return AK_NUMBERSIGN; - /* German sharp s */ - case SDLK_WORLD_63: return AK_MINUS; - case SDLK_QUOTE: return AK_EQUAL; - case SDLK_CARET: return AK_BACKQUOTE; - case SDLK_MINUS: return AK_SLASH; - default: return -1; - } -} - - -static int decode_us (SDL_keysym *prKeySym) -{ - switch(prKeySym->sym) - { - /* US specific */ - case SDLK_a: return AK_A; - case SDLK_m: return AK_M; - case SDLK_q: return AK_Q; - case SDLK_y: return AK_Y; - case SDLK_w: return AK_W; - case SDLK_z: return AK_Z; - case SDLK_COLON: return AK_SEMICOLON; - case SDLK_LEFTBRACKET: return AK_LBRACKET; - case SDLK_RIGHTBRACKET: return AK_RBRACKET; - case SDLK_COMMA: return AK_COMMA; - case SDLK_PERIOD: return AK_PERIOD; - case SDLK_SLASH: return AK_SLASH; - case SDLK_SEMICOLON: return AK_SEMICOLON; - case SDLK_MINUS: return AK_MINUS; - case SDLK_EQUALS: return AK_EQUAL; - /* this doesn't work: */ - case SDLK_BACKQUOTE: return AK_QUOTE; - case SDLK_QUOTE: return AK_BACKQUOTE; - case SDLK_BACKSLASH: return AK_BACKSLASH; - default: return -1; - } -} - -int keycode2amiga(SDL_keysym *prKeySym) -{ - int iAmigaKeycode = kc_decode(prKeySym); - if (iAmigaKeycode == -1) - return decode_us(prKeySym); - return iAmigaKeycode; -} - -int getcapslockstate (void) -{ - return 0; -} - -void setcapslockstate (int state) -{ -} diff --git a/src/od-pandora/keyboard.cpp b/src/od-pandora/keyboard.cpp index 7f2ee60d..17ff1d14 100644 --- a/src/od-pandora/keyboard.cpp +++ b/src/od-pandora/keyboard.cpp @@ -134,118 +134,118 @@ static struct uae_input_device_kbr_default keytrans_amiga_x11[] = { static struct uae_input_device_kbr_default keytrans_amiga_fbcon[] = { - { 9 +8 , INPUTEVENT_KEY_ESC}, - { 67 +8 , INPUTEVENT_KEY_F1}, - { 68 +8 , INPUTEVENT_KEY_F2}, - { 69 +8 , INPUTEVENT_KEY_F3}, - { 70 +8 , INPUTEVENT_KEY_F4}, - { 71 +8 , INPUTEVENT_KEY_F5}, - { 72 +8 , INPUTEVENT_KEY_F6}, - { 73 +8 , INPUTEVENT_KEY_F7}, - { 74 +8 , INPUTEVENT_KEY_F8}, - { 75 +8 , INPUTEVENT_KEY_F9}, - { 76 +8 , INPUTEVENT_KEY_F10}, - // { 95 +8 , INPUTEVENT_KEY_F11}, - // { 96 +8 , INPUTEVENT_KEY_F12}, + { 9 -8 , INPUTEVENT_KEY_ESC}, + { 67 -8 , INPUTEVENT_KEY_F1}, + { 68 -8 , INPUTEVENT_KEY_F2}, + { 69 -8 , INPUTEVENT_KEY_F3}, + { 70 -8 , INPUTEVENT_KEY_F4}, + { 71 -8 , INPUTEVENT_KEY_F5}, + { 72 -8 , INPUTEVENT_KEY_F6}, + { 73 -8 , INPUTEVENT_KEY_F7}, + { 74 -8 , INPUTEVENT_KEY_F8}, + { 75 -8 , INPUTEVENT_KEY_F9}, + { 76 -8 , INPUTEVENT_KEY_F10}, + // { 95 -8 , INPUTEVENT_KEY_F11}, + // { 96 -8 , INPUTEVENT_KEY_F12}, - { 49 +8 , INPUTEVENT_KEY_BACKQUOTE}, + { 49 -8 , INPUTEVENT_KEY_BACKQUOTE}, - { 10 +8 , INPUTEVENT_KEY_1}, - { 11 +8 , INPUTEVENT_KEY_2}, - { 12 +8 , INPUTEVENT_KEY_3}, - { 13 +8 , INPUTEVENT_KEY_4}, - { 14 +8 , INPUTEVENT_KEY_5}, - { 15 +8 , INPUTEVENT_KEY_6}, - { 16 +8 , INPUTEVENT_KEY_7}, - { 17 +8 , INPUTEVENT_KEY_8}, - { 18 +8 , INPUTEVENT_KEY_9}, - { 19 +8 , INPUTEVENT_KEY_0}, - { 20 +8 , INPUTEVENT_KEY_SUB}, - { 21 +8 , INPUTEVENT_KEY_EQUALS}, - { 22 +8 , INPUTEVENT_KEY_BACKSLASH}, + { 10 -8 , INPUTEVENT_KEY_1}, + { 11 -8 , INPUTEVENT_KEY_2}, + { 12 -8 , INPUTEVENT_KEY_3}, + { 13 -8 , INPUTEVENT_KEY_4}, + { 14 -8 , INPUTEVENT_KEY_5}, + { 15 -8 , INPUTEVENT_KEY_6}, + { 16 -8 , INPUTEVENT_KEY_7}, + { 17 -8 , INPUTEVENT_KEY_8}, + { 18 -8 , INPUTEVENT_KEY_9}, + { 19 -8 , INPUTEVENT_KEY_0}, + { 20 -8 , INPUTEVENT_KEY_SUB}, + { 21 -8 , INPUTEVENT_KEY_EQUALS}, + { 22 -8 , INPUTEVENT_KEY_BACKSLASH}, - { 23 +8 , INPUTEVENT_KEY_TAB}, - { 24 +8 , INPUTEVENT_KEY_Q}, - { 25 +8 , INPUTEVENT_KEY_W}, - { 26 +8 , INPUTEVENT_KEY_E}, - { 27 +8 , INPUTEVENT_KEY_R}, - { 28 +8 , INPUTEVENT_KEY_T}, - { 29 +8 , INPUTEVENT_KEY_Y}, - { 30 +8 , INPUTEVENT_KEY_U}, - { 31 +8 , INPUTEVENT_KEY_I}, - { 32 +8 , INPUTEVENT_KEY_O}, - { 33 +8 , INPUTEVENT_KEY_P}, - { 34 +8 , INPUTEVENT_KEY_LEFTBRACKET}, - { 35 +8 , INPUTEVENT_KEY_RIGHTBRACKET}, - { 36 +8 , INPUTEVENT_KEY_RETURN}, + { 23 -8 , INPUTEVENT_KEY_TAB}, + { 24 -8 , INPUTEVENT_KEY_Q}, + { 25 -8 , INPUTEVENT_KEY_W}, + { 26 -8 , INPUTEVENT_KEY_E}, + { 27 -8 , INPUTEVENT_KEY_R}, + { 28 -8 , INPUTEVENT_KEY_T}, + { 29 -8 , INPUTEVENT_KEY_Y}, + { 30 -8 , INPUTEVENT_KEY_U}, + { 31 -8 , INPUTEVENT_KEY_I}, + { 32 -8 , INPUTEVENT_KEY_O}, + { 33 -8 , INPUTEVENT_KEY_P}, + { 34 -8 , INPUTEVENT_KEY_LEFTBRACKET}, + { 35 -8 , INPUTEVENT_KEY_RIGHTBRACKET}, + { 36 -8 , INPUTEVENT_KEY_RETURN}, - { 66 +8 , INPUTEVENT_KEY_CAPS_LOCK}, - { 38 +8 , INPUTEVENT_KEY_A}, - { 39 +8 , INPUTEVENT_KEY_S}, - { 40 +8 , INPUTEVENT_KEY_D}, - { 41 +8 , INPUTEVENT_KEY_F}, - { 42 +8 , INPUTEVENT_KEY_G}, - { 43 +8 , INPUTEVENT_KEY_H}, - { 44 +8 , INPUTEVENT_KEY_J}, - { 45 +8 , INPUTEVENT_KEY_K}, - { 46 +8 , INPUTEVENT_KEY_L}, - { 47 +8 , INPUTEVENT_KEY_SEMICOLON}, - { 48 +8 , INPUTEVENT_KEY_SINGLEQUOTE}, - { 51 +8 , INPUTEVENT_KEY_BACKSLASH}, + { 66 -8 , INPUTEVENT_KEY_CAPS_LOCK}, + { 38 -8 , INPUTEVENT_KEY_A}, + { 39 -8 , INPUTEVENT_KEY_S}, + { 40 -8 , INPUTEVENT_KEY_D}, + { 41 -8 , INPUTEVENT_KEY_F}, + { 42 -8 , INPUTEVENT_KEY_G}, + { 43 -8 , INPUTEVENT_KEY_H}, + { 44 -8 , INPUTEVENT_KEY_J}, + { 45 -8 , INPUTEVENT_KEY_K}, + { 46 -8 , INPUTEVENT_KEY_L}, + { 47 -8 , INPUTEVENT_KEY_SEMICOLON}, + { 48 -8 , INPUTEVENT_KEY_SINGLEQUOTE}, + { 51 -8 , INPUTEVENT_KEY_BACKSLASH}, - { 50 +8 , INPUTEVENT_KEY_SHIFT_LEFT}, - { 94 +8 , INPUTEVENT_KEY_LTGT}, - { 52 +8 , INPUTEVENT_KEY_Z}, - { 53 +8 , INPUTEVENT_KEY_X}, - { 54 +8 , INPUTEVENT_KEY_C}, - { 55 +8 , INPUTEVENT_KEY_V}, - { 56 +8 , INPUTEVENT_KEY_B}, - { 57 +8 , INPUTEVENT_KEY_N}, - { 58 +8 , INPUTEVENT_KEY_M}, - { 59 +8 , INPUTEVENT_KEY_COMMA}, - { 60 +8 , INPUTEVENT_KEY_PERIOD}, - { 61 +8 , INPUTEVENT_KEY_DIV}, - { 62 +8 , INPUTEVENT_KEY_SHIFT_RIGHT}, + { 50 -8 , INPUTEVENT_KEY_SHIFT_LEFT}, + { 94 -8 , INPUTEVENT_KEY_LTGT}, + { 52 -8 , INPUTEVENT_KEY_Z}, + { 53 -8 , INPUTEVENT_KEY_X}, + { 54 -8 , INPUTEVENT_KEY_C}, + { 55 -8 , INPUTEVENT_KEY_V}, + { 56 -8 , INPUTEVENT_KEY_B}, + { 57 -8 , INPUTEVENT_KEY_N}, + { 58 -8 , INPUTEVENT_KEY_M}, + { 59 -8 , INPUTEVENT_KEY_COMMA}, + { 60 -8 , INPUTEVENT_KEY_PERIOD}, + { 61 -8 , INPUTEVENT_KEY_DIV}, + { 62 -8 , INPUTEVENT_KEY_SHIFT_RIGHT}, - { 37 +8 , INPUTEVENT_KEY_CTRL}, - { 64 +8 , INPUTEVENT_KEY_ALT_LEFT}, - { 65 +8 , INPUTEVENT_KEY_SPACE}, + { 37 -8 , INPUTEVENT_KEY_CTRL}, + { 64 -8 , INPUTEVENT_KEY_ALT_LEFT}, + { 65 -8 , INPUTEVENT_KEY_SPACE}, - { 108 +8 , INPUTEVENT_KEY_ALT_RIGHT}, + { 108 -8 , INPUTEVENT_KEY_ALT_RIGHT}, - //{ 78 +8 , INPUTEVENT_KEY_SCROLLOCK}, + //{ 78 -8 , INPUTEVENT_KEY_SCROLLOCK}, - //{ 77 +8 , INPUTEVENT_KEY_NUMLOCK}, - { 106 +8 , INPUTEVENT_KEY_NP_DIV}, - { 63 +8 , INPUTEVENT_KEY_NP_MUL}, - { 82 +8 , INPUTEVENT_KEY_NP_SUB}, + //{ 77 -8 , INPUTEVENT_KEY_NUMLOCK}, + { 106 -8 , INPUTEVENT_KEY_NP_DIV}, + { 63 -8 , INPUTEVENT_KEY_NP_MUL}, + { 82 -8 , INPUTEVENT_KEY_NP_SUB}, - { 79 +8 , INPUTEVENT_KEY_NP_7}, - { 80 +8 , INPUTEVENT_KEY_NP_8}, - { 81 +8 , INPUTEVENT_KEY_NP_9}, - { 86 +8 , INPUTEVENT_KEY_NP_ADD}, + { 79 -8 , INPUTEVENT_KEY_NP_7}, + { 80 -8 , INPUTEVENT_KEY_NP_8}, + { 81 -8 , INPUTEVENT_KEY_NP_9}, + { 86 -8 , INPUTEVENT_KEY_NP_ADD}, - { 83 +8 , INPUTEVENT_KEY_NP_4}, - { 84 +8 , INPUTEVENT_KEY_NP_5}, - { 85 +8 , INPUTEVENT_KEY_NP_6}, + { 83 -8 , INPUTEVENT_KEY_NP_4}, + { 84 -8 , INPUTEVENT_KEY_NP_5}, + { 85 -8 , INPUTEVENT_KEY_NP_6}, - { 87 +8 , INPUTEVENT_KEY_NP_1}, - { 88 +8 , INPUTEVENT_KEY_NP_2}, - { 89 +8 , INPUTEVENT_KEY_NP_3}, - { 104 +8 , INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. + { 87 -8 , INPUTEVENT_KEY_NP_1}, + { 88 -8 , INPUTEVENT_KEY_NP_2}, + { 89 -8 , INPUTEVENT_KEY_NP_3}, + { 104 -8 , INPUTEVENT_KEY_ENTER}, // The ENT from keypad.. - { 90 +8 , INPUTEVENT_KEY_NP_0}, - { 91 +8 , INPUTEVENT_KEY_PERIOD}, + { 90 -8 , INPUTEVENT_KEY_NP_0}, + { 91 -8 , INPUTEVENT_KEY_PERIOD}, - { 111 +8, INPUTEVENT_KEY_CURSOR_UP}, - { 113 +8, INPUTEVENT_KEY_CURSOR_LEFT}, - { 116 +8, INPUTEVENT_KEY_CURSOR_DOWN}, - { 114 +8, INPUTEVENT_KEY_CURSOR_RIGHT}, + { 111 -8, INPUTEVENT_KEY_CURSOR_UP}, + { 113 -8, INPUTEVENT_KEY_CURSOR_LEFT}, + { 116 -8, INPUTEVENT_KEY_CURSOR_DOWN}, + { 114 -8, INPUTEVENT_KEY_CURSOR_RIGHT}, - { 133 +8 , INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows - { 134 +8 , INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. - { 135 +8 , INPUTEVENT_KEY_AMIGA_RIGHT} // Right amiga mapped to Menu key. + { 133 -8 , INPUTEVENT_KEY_AMIGA_LEFT}, // Left amiga mapped to left Windows + { 134 -8 , INPUTEVENT_KEY_AMIGA_RIGHT}, // Right amiga mapped to right windows key. + { 135 -8 , INPUTEVENT_KEY_AMIGA_RIGHT} // Right amiga mapped to Menu key. };