a500kbd

diff src/scantbl.h @ 1:3228a731d4db

translate scancodes
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 14 Oct 2017 07:23:47 +0300
parents
children a4fd9c5a6655
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/scantbl.h	Sat Oct 14 07:23:47 2017 +0300
     1.3 @@ -0,0 +1,87 @@
     1.4 +#ifndef SCANTBL_H_
     1.5 +#define SCANTBL_H_
     1.6 +
     1.7 +enum {
     1.8 +	KEY_ESC = 27,
     1.9 +
    1.10 +	KEY_F1 = 256,
    1.11 +	KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8,
    1.12 +	KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_SYSRQ, KEY_BRK,
    1.13 +	KEY_SCRLK, KEY_CAPSLK, KEY_NUMLK,
    1.14 +
    1.15 +	KEY_LSHIFT, KEY_RSHIFT,
    1.16 +	KEY_LCTRL, KEY_RCTRL,
    1.17 +	KEY_LALT, KEY_RALT,
    1.18 +	KEY_LWIN, KEY_RWIN, KEY_MENU,
    1.19 +
    1.20 +	KEY_INS, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDOWN,
    1.21 +	KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN,
    1.22 +
    1.23 +	KEY_KP_0, KEY_KP_1, KEY_KP_2, KEY_KP_3, KEY_KP_4,
    1.24 +	KEY_KP_5, KEY_KP_6, KEY_KP_7, KEY_KP_8, KEY_KP_9,
    1.25 +	KEY_KP_DIV, KEY_KP_MUL, KEY_KP_MINUS, KEY_KP_PLUS,
    1.26 +	KEY_KP_DOT, KEY_KP_ENTER,
    1.27 +
    1.28 +	KEY_MM_WWW_SEARCH, KEY_MM_WWW_FAV, KEY_MM_WWW_REFRESH, KEY_MM_WWW_STOP,
    1.29 +	KEY_MM_WWW_FWD, KEY_MM_WWW_BACK, KEY_MM_WWW_HOME,
    1.30 +	KEY_MM_PREV, KEY_MM_NEXT, KEY_MM_PLAY, KEY_MM_STOP, KEY_MM_VOLUP, KEY_MM_VOLDOWN,
    1.31 +	KEY_MM_MUTE, KEY_MM_CALC, KEY_MM_MYCOMP, KEY_MM_EMAIL, KEY_MM_SELECT,
    1.32 +	KEY_APPS,
    1.33 +	KEY_ACPI_POWER, KEY_ACPI_SLEEP, KEY_ACPI_WAKEUP
    1.34 +};
    1.35 +
    1.36 +
    1.37 +static const char *skeystr[] = {
    1.38 +	"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12",
    1.39 +	"SysRq", "Break", "Scroll Lock", "Caps Lock", "Num Lock",
    1.40 +	"L Shift", "R Shift", "L Ctrl", "R Ctrl", "L Alt", "R Alt", "L Win", "R Win", "Menu",
    1.41 +	"Insert", "Delete", "Home", "End", "Page Up", "Page Down", "Left", "Right", "Up", "Down",
    1.42 +	"Keypad 0", "Keypad 1", "Keypad 2", "Keypad 3", "Keypad 4", "Keypad 5", "Keypad 6",
    1.43 +	"Keypad 7", "Keypad 8", "Keypad 9", "Keypad /", "Keypad *", "Keypad -", "Keypad +",
    1.44 +	"Keypad .", "Keypad Enter",
    1.45 +	"WWW Search", "WWW Fav", "WWW Refresh", "WWW Stop", "WWW Fwd", "WWW Back", "WWW Home",
    1.46 +	"Prev", "Next", "Play", "Stop", "Volume Up", "Volume Down", "Mute", "Calculator",
    1.47 +	"My Computer", "Email", "Select Media", "Apps",
    1.48 +	"Power", "Sleep", "Wakeup",
    1.49 +};
    1.50 +
    1.51 +
    1.52 +#define KEYMAP_NORMAL_SIZE	(sizeof keymap_normal / sizeof *keymap_normal)
    1.53 +static int keymap_normal[] = {
    1.54 +	0, KEY_F9, 0, KEY_F5, KEY_F3, KEY_F1, KEY_F2, KEY_F12,	/* 00 - 07 */
    1.55 +	0, KEY_F10, KEY_F8, KEY_F6,	KEY_F4, '\t', '`', 0,		/* 08 - 0f */
    1.56 +	0, KEY_LALT, KEY_LSHIFT, 0, KEY_LCTRL, 'q', '1', 0,		/* 10 - 17 */
    1.57 +	0, 0, 'z', 's', 'a', 'w', '2', 0,						/* 18 - 1f */
    1.58 +	0, 'c', 'x', 'd', 'e', '4', '3', 0,						/* 20 - 27 */
    1.59 +	0, ' ', 'v', 'f', 't', 'r', '5', 0,						/* 28 - 2f */
    1.60 +	0, 'n', 'b', 'h', 'g', 'y', '6', 0,						/* 30 - 37 */
    1.61 +	0, 0, 'm', 'j', 'u', '7', '8', 0,						/* 38 - 3f */
    1.62 +	0, ',', 'k', 'i', 'o', '0', '9', 0,						/* 40 - 47 */
    1.63 +	0, '.', '/', 'l', ';', 'p', '-', 0,						/* 48 - 4f */
    1.64 +	0, 0, '\'', 0, '[', '=', 0, 0,							/* 50 - 57 */
    1.65 +	KEY_CAPSLK, KEY_RSHIFT, '\n', ']', 0, '\\', 0, 0,		/* 58 - 5f */
    1.66 +	0, 0, 0, 0, 0, 0, '\b', 0,								/* 60 - 67 */
    1.67 +	0, KEY_KP_1, 0, KEY_KP_4, KEY_KP_7, 0, 0, 0,				/* 68 - 6f */
    1.68 +	KEY_KP_0, KEY_KP_DOT, KEY_KP_2, KEY_KP_5, KEY_KP_6, KEY_KP_8, KEY_ESC, KEY_NUMLK, /* 70 - 77 */
    1.69 +	KEY_F11, KEY_KP_PLUS, KEY_KP_3, KEY_KP_MINUS, KEY_KP_MUL, KEY_KP_9, KEY_SCRLK, 0,/* 78 - 7f */
    1.70 +	0, 0, 0, KEY_F7											/* 80 - 83 */
    1.71 +};
    1.72 +
    1.73 +#define KEYMAP_EXT_SIZE	(sizeof keymap_ext / sizeof *keymap_ext)
    1.74 +static int keymap_ext[] = {
    1.75 +	0, 0, 0, 0, 0, 0, 0, 0,									/* 00 - 07 */
    1.76 +	0, 0, 0, 0, 0, 0, 0, 0,									/* 08 - 0f */
    1.77 +	KEY_MM_WWW_SEARCH, KEY_RALT, 0, 0, KEY_RCTRL, KEY_MM_PREV, 0, 0,	/* 10 - 17 */
    1.78 +	KEY_MM_WWW_FAV, 0, 0, 0, 0, 0, 0, KEY_LWIN,				/* 18 - 1f */
    1.79 +	KEY_MM_WWW_REFRESH, KEY_MM_VOLDOWN, 0, KEY_MM_MUTE, 0, 0, 0, KEY_RWIN,	/* 20 - 27 */
    1.80 +	KEY_MM_STOP, 0, 0, KEY_MM_CALC, 0, 0, 0, KEY_APPS,		/* 28 - 2f */
    1.81 +	KEY_MM_WWW_FWD, 0, KEY_MM_VOLUP, 0, KEY_MM_PLAY, 0, 0, KEY_ACPI_POWER,	/* 30 - 37 */
    1.82 +	KEY_MM_WWW_BACK, 0, KEY_MM_WWW_HOME, KEY_MM_STOP, 0, 0, 0, KEY_ACPI_SLEEP,	/* 38 - 3f */
    1.83 +	KEY_MM_MYCOMP, 0, 0, 0, KEY_MM_EMAIL, 0, KEY_KP_DIV, 0,	/* 40 - 47 */
    1.84 +	0, KEY_MM_NEXT, 0, 0, KEY_MM_SELECT, 0, 0, 0,			/* 48 - 4f */
    1.85 +	0, 0, KEY_ACPI_WAKEUP, 0, 0, KEY_END, 0, KEY_LEFT,		/* 50 - 57 */
    1.86 +	KEY_HOME, 0, 0, 0, KEY_INS, KEY_DEL, KEY_DOWN, 0,		/* 58 - 5f */
    1.87 +	KEY_RIGHT, KEY_UP, 0, 0, 0, 0, KEY_DOWN, 0,				/* 60 - 67 */
    1.88 +};
    1.89 +
    1.90 +#endif	/* SCANTBL_H_ */