Solve keyboard mapping in console mode
This commit is contained in:
parent
6c71d806f5
commit
50cdbeb68b
2 changed files with 96 additions and 524 deletions
|
@ -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 <SDL.h>
|
||||
|
||||
|
||||
#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)
|
||||
{
|
||||
}
|
|
@ -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.
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue