#include <keymap.h> #include <linux/input.h> #define array_size(a) (sizeof(a) / sizeof((a)[0])) static char shifted_keymap[] = { [KEY_0] = ')', [KEY_1] = '!', [KEY_2] = '@', [KEY_3] = '#', [KEY_4] = '$', [KEY_5] = '%', [KEY_6] = '^', [KEY_7] = '&', [KEY_8] = '*', [KEY_9] = '(', [KEY_A] = 'A', [KEY_B] = 'X', [KEY_C] = 'J', [KEY_D] = 'E', [KEY_E] = '>', [KEY_F] = 'U', [KEY_G] = 'I', [KEY_H] = 'D', [KEY_I] = 'C', [KEY_J] = 'H', [KEY_K] = 'T', [KEY_L] = 'N', [KEY_M] = 'M', [KEY_N] = 'B', [KEY_O] = 'R', [KEY_P] = 'L', [KEY_Q] = '"', [KEY_R] = 'P', [KEY_S] = 'O', [KEY_T] = 'Y', [KEY_U] = 'G', [KEY_V] = 'K', [KEY_W] = '<', [KEY_X] = 'Q', [KEY_Y] = 'F', [KEY_Z] = ':', [KEY_SEMICOLON] = 'S', [KEY_SPACE] = ' ', [KEY_COMMA] = 'W', [KEY_DOT] = 'V', [KEY_SLASH] = 'Z', [KEY_LEFTBRACE] = '?', [KEY_RIGHTBRACE] = '+', [KEY_BACKSLASH] = '|', [KEY_MINUS] = '{', [KEY_EQUAL] = '}', [KEY_APOSTROPHE] = '_', [KEY_GRAVE] = '~', [KEY_ENTER] = '\n', [KEY_TAB] = '\t', }; static char keymap[] = { [KEY_0] = '0', [KEY_1] = '1', [KEY_2] = '2', [KEY_3] = '3', [KEY_4] = '4', [KEY_5] = '5', [KEY_6] = '6', [KEY_7] = '7', [KEY_8] = '8', [KEY_9] = '9', [KEY_A] = 'a', [KEY_B] = 'x', [KEY_C] = 'j', [KEY_D] = 'e', [KEY_E] = '.', [KEY_F] = 'u', [KEY_G] = 'i', [KEY_H] = 'd', [KEY_I] = 'c', [KEY_J] = 'h', [KEY_K] = 't', [KEY_L] = 'n', [KEY_M] = 'm', [KEY_N] = 'b', [KEY_O] = 'r', [KEY_P] = 'l', [KEY_Q] = '\'', [KEY_R] = 'p', [KEY_S] = 'o', [KEY_T] = 'y', [KEY_U] = 'g', [KEY_V] = 'k', [KEY_W] = ',', [KEY_X] = 'q', [KEY_Y] = 'f', [KEY_Z] = ';', [KEY_SEMICOLON] = 's', [KEY_SPACE] = ' ', [KEY_COMMA] = 'w', [KEY_DOT] = 'v', [KEY_SLASH] = 'z', [KEY_LEFTBRACE] = '/', [KEY_RIGHTBRACE] = '=', [KEY_BACKSLASH] = '\\', [KEY_MINUS] = '[', [KEY_EQUAL] = ']', [KEY_APOSTROPHE] = '-', [KEY_GRAVE] = '`', [KEY_ENTER] = '\r', [KEY_TAB] = '\t', }; char keymap_lookup(int code) { if (code < 0 || array_size(keymap) <= code) return 0; return keymap[code]; } char keymap_lookup_shifted(int code) { if (code < 0 || array_size(shifted_keymap) <= code) return 0; return shifted_keymap[code]; }