490 lines
12 KiB
Python
Executable File
490 lines
12 KiB
Python
Executable File
#!/usr/bin/env python3 -u
|
|
|
|
import sys
|
|
import os
|
|
|
|
codes = {
|
|
'SCANCODE_ESCAPE' : 0x01,
|
|
'SCANCODE_1' : 0x02,
|
|
'SCANCODE_2' : 0x03,
|
|
'SCANCODE_3' : 0x04,
|
|
'SCANCODE_4' : 0x05,
|
|
'SCANCODE_5' : 0x06,
|
|
'SCANCODE_6' : 0x07,
|
|
'SCANCODE_7' : 0x08,
|
|
'SCANCODE_8' : 0x09,
|
|
'SCANCODE_9' : 0x0A,
|
|
'SCANCODE_0' : 0x0B,
|
|
'SCANCODE_MINUS' : 0x0C,
|
|
'SCANCODE_EQUALS' : 0x0D,
|
|
'SCANCODE_BACK' : 0x0E,
|
|
'SCANCODE_TAB' : 0x0F,
|
|
'SCANCODE_Q' : 0x10,
|
|
'SCANCODE_W' : 0x11,
|
|
'SCANCODE_E' : 0x12,
|
|
'SCANCODE_R' : 0x13,
|
|
'SCANCODE_T' : 0x14,
|
|
'SCANCODE_Y' : 0x15,
|
|
'SCANCODE_U' : 0x16,
|
|
'SCANCODE_I' : 0x17,
|
|
'SCANCODE_O' : 0x18,
|
|
'SCANCODE_P' : 0x19,
|
|
'SCANCODE_LBRACKET' : 0x1A,
|
|
'SCANCODE_RBRACKET' : 0x1B,
|
|
'SCANCODE_RETURN' : 0x1C,
|
|
'SCANCODE_LCONTROL' : 0x1D,
|
|
'SCANCODE_A' : 0x1E,
|
|
'SCANCODE_S' : 0x1F,
|
|
'SCANCODE_D' : 0x20,
|
|
'SCANCODE_F' : 0x21,
|
|
'SCANCODE_G' : 0x22,
|
|
'SCANCODE_H' : 0x23,
|
|
'SCANCODE_J' : 0x24,
|
|
'SCANCODE_K' : 0x25,
|
|
'SCANCODE_L' : 0x26,
|
|
'SCANCODE_SEMICOLON' : 0x27,
|
|
'SCANCODE_APOSTROPHE' : 0x28,
|
|
'SCANCODE_GRAVE' : 0x29,
|
|
'SCANCODE_LSHIFT' : 0x2A,
|
|
'SCANCODE_BACKSLASH' : 0x2B,
|
|
'SCANCODE_Z' : 0x2C,
|
|
'SCANCODE_X' : 0x2D,
|
|
'SCANCODE_C' : 0x2E,
|
|
'SCANCODE_V' : 0x2F,
|
|
'SCANCODE_B' : 0x30,
|
|
'SCANCODE_N' : 0x31,
|
|
'SCANCODE_M' : 0x32,
|
|
'SCANCODE_COMMA' : 0x33,
|
|
'SCANCODE_PERIOD' : 0x34,
|
|
'SCANCODE_SLASH' : 0x35,
|
|
'SCANCODE_RSHIFT' : 0x36,
|
|
'SCANCODE_MULTIPLY' : 0x37,
|
|
'SCANCODE_LMENU' : 0x38,
|
|
'SCANCODE_SPACE' : 0x39,
|
|
'SCANCODE_CAPITAL' : 0x3A,
|
|
'SCANCODE_F1' : 0x3B,
|
|
'SCANCODE_F2' : 0x3C,
|
|
'SCANCODE_F3' : 0x3D,
|
|
'SCANCODE_F4' : 0x3E,
|
|
'SCANCODE_F5' : 0x3F,
|
|
'SCANCODE_F6' : 0x40,
|
|
'SCANCODE_F7' : 0x41,
|
|
'SCANCODE_F8' : 0x42,
|
|
'SCANCODE_F9' : 0x43,
|
|
'SCANCODE_F10' : 0x44,
|
|
'SCANCODE_NUMLOCK' : 0x45,
|
|
'SCANCODE_SCROLL' : 0x46,
|
|
'SCANCODE_NUMPAD7' : 0x47,
|
|
'SCANCODE_NUMPAD8' : 0x48,
|
|
'SCANCODE_NUMPAD9' : 0x49,
|
|
'SCANCODE_SUBTRACT' : 0x4A,
|
|
'SCANCODE_NUMPAD4' : 0x4B,
|
|
'SCANCODE_NUMPAD5' : 0x4C,
|
|
'SCANCODE_NUMPAD6' : 0x4D,
|
|
'SCANCODE_ADD' : 0x4E,
|
|
'SCANCODE_NUMPAD1' : 0x4F,
|
|
'SCANCODE_NUMPAD2' : 0x50,
|
|
'SCANCODE_NUMPAD3' : 0x51,
|
|
'SCANCODE_NUMPAD0' : 0x52,
|
|
'SCANCODE_DECIMAL' : 0x53,
|
|
'SCANCODE_OEM_102' : 0x56,
|
|
'SCANCODE_F11' : 0x57,
|
|
'SCANCODE_F12' : 0x58,
|
|
'SCANCODE_F13' : 0x64 ,
|
|
'SCANCODE_F14' : 0x65 ,
|
|
'SCANCODE_F15' : 0x66 ,
|
|
'SCANCODE_KANA' : 0x70 ,
|
|
'SCANCODE_ABNT_C1' : 0x73 ,
|
|
'SCANCODE_CONVERT' : 0x79 ,
|
|
'SCANCODE_NOCONVERT' : 0x7B ,
|
|
'SCANCODE_YEN' : 0x7D ,
|
|
'SCANCODE_ABNT_C2' : 0x7E ,
|
|
'SCANCODE_NUMPADEQUALS' : 0x8D,
|
|
'SCANCODE_PREVTRACK' : 0x90 ,
|
|
'SCANCODE_AT' : 0x91 ,
|
|
'SCANCODE_COLON' : 0x92 ,
|
|
'SCANCODE_UNDERLINE' : 0x93 ,
|
|
'SCANCODE_KANJI' : 0x94 ,
|
|
'SCANCODE_STOP' : 0x95 ,
|
|
'SCANCODE_AX' : 0x96 ,
|
|
'SCANCODE_UNLABELED' : 0x97 ,
|
|
'SCANCODE_NEXTTRACK' : 0x99 ,
|
|
'SCANCODE_NUMPADENTER' : 0x9C ,
|
|
'SCANCODE_RCONTROL': 0x9D,
|
|
'SCANCODE_MUTE': 0xA0 ,
|
|
'SCANCODE_CALCULATOR': 0xA1 ,
|
|
'SCANCODE_PLAYPAUSE': 0xA2 ,
|
|
'SCANCODE_MEDIASTOP': 0xA4 ,
|
|
'SCANCODE_VOLUMEDOWN': 0xAE ,
|
|
'SCANCODE_VOLUMEUP': 0xB0 ,
|
|
'SCANCODE_WEBHOME': 0xB2 ,
|
|
'SCANCODE_NUMPADCOMMA': 0xB3 ,
|
|
'SCANCODE_DIVIDE': 0xB5 ,
|
|
'SCANCODE_SYSRQ': 0xB7,
|
|
'SCANCODE_RCONTROL' : 0x9D,
|
|
'SCANCODE_RMENU': 0xB8 ,
|
|
'SCANCODE_PAUSE': 0xC5 ,
|
|
'SCANCODE_HOME': 0xC7 ,
|
|
'SCANCODE_UP': 0xC8 ,
|
|
'SCANCODE_PRIOR': 0xC9 ,
|
|
'SCANCODE_LEFT': 0xCB ,
|
|
'SCANCODE_RIGHT': 0xCD ,
|
|
'SCANCODE_END': 0xCF ,
|
|
'SCANCODE_DOWN': 0xD0 ,
|
|
'SCANCODE_NEXT': 0xD1 ,
|
|
'SCANCODE_INSERT': 0xD2 ,
|
|
'SCANCODE_DELETE': 0xD3
|
|
}
|
|
|
|
keycodes = {
|
|
'KEY_SHIFT_ANY' : 0,
|
|
'KEY_ALT_ANY' : 1,
|
|
'KEY_CTRL_ANY' : 2,
|
|
'KEY_CTRL_ANY_2' : 3,
|
|
'KEY_CAPSLOCK' : 4,
|
|
'KEY_RSHIFT' : 5,
|
|
'KEY_RALT' : 6,
|
|
'KEY_RCTRL' : 7,
|
|
'KEY_LSHIFT' : 8,
|
|
'KEY_LALT' : 9,
|
|
'KEY_LCTRL' : 10,
|
|
'KEY_0' : 11,
|
|
'KEY_1' : 12,
|
|
'KEY_2' : 13,
|
|
'KEY_3' : 14,
|
|
'KEY_4' : 15,
|
|
'KEY_5' : 16,
|
|
'KEY_6' : 17,
|
|
'KEY_7' : 18,
|
|
'KEY_8' : 19,
|
|
'KEY_9' : 20,
|
|
'KEY_A' : 21,
|
|
'KEY_B' : 22,
|
|
'KEY_C' : 23,
|
|
'KEY_D' : 24,
|
|
'KEY_E' : 25,
|
|
'KEY_F' : 26,
|
|
'KEY_G' : 27,
|
|
'KEY_H' : 28,
|
|
'KEY_I' : 29,
|
|
'KEY_J' : 30,
|
|
'KEY_K' : 31,
|
|
'KEY_L' : 32,
|
|
'KEY_M' : 33,
|
|
'KEY_N' : 34,
|
|
'KEY_O' : 35,
|
|
'KEY_P' : 36,
|
|
'KEY_Q' : 37,
|
|
'KEY_R' : 38,
|
|
'KEY_S' : 39,
|
|
'KEY_T' : 40,
|
|
'KEY_U' : 41,
|
|
'KEY_V' : 42,
|
|
'KEY_W' : 43,
|
|
'KEY_X' : 44,
|
|
'KEY_Y' : 45,
|
|
'KEY_Z' : 46,
|
|
'KEY_GRAVE' : 47,
|
|
'KEY_MINUS' : 48,
|
|
'KEY_EQUALS' : 49,
|
|
'KEY_BACKSPACE' : 50,
|
|
'KEY_RETURN' : 51,
|
|
'KEY_KP_ENTER' : 52,
|
|
'KEY_TAB' : 53,
|
|
'KEY_SLASH' : 54,
|
|
'KEY_UNKNOWN_55' : 55,
|
|
'KEY_SEMICOLON' : 56,
|
|
'KEY_APOSTROPHE' : 57,
|
|
'KEY_PERIOD' : 58,
|
|
'KEY_COMMA' : 59,
|
|
'KEY_LBRACKET' : 60,
|
|
'KEY_RBRACKET' : 61,
|
|
'KEY_BACKSLASH' : 62,
|
|
'KEY_ESCAPE' : 63,
|
|
'KEY_INSERT' : 64,
|
|
'KEY_DELETE' : 65,
|
|
'KEY_HOME' : 66,
|
|
'KEY_END' : 67,
|
|
'KEY_PAGEUP' : 68,
|
|
'KEY_PAGEDOWN' : 69,
|
|
'KEY_LEFT' : 70,
|
|
'KEY_RIGHT' : 71,
|
|
'KEY_UP' : 72,
|
|
'KEY_DOWN' : 73,
|
|
'KEY_KP_NUMLOCK' : 74,
|
|
'KEY_KP_DIVIDE' : 75,
|
|
'KEY_KP_MULTIPLY' : 76,
|
|
'KEY_KP_MINUS' : 77,
|
|
'KEY_KP_PLUS' : 78,
|
|
'KEY_KP_PERIOD' : 79,
|
|
'KEY_KP_EQUALS' : 80,
|
|
'KEY_KP_0' : 81,
|
|
'KEY_KP_1' : 82,
|
|
'KEY_KP_2' : 83,
|
|
'KEY_KP_3' : 84,
|
|
'KEY_KP_4' : 85,
|
|
'KEY_KP_5' : 86,
|
|
'KEY_KP_6' : 87,
|
|
'KEY_KP_7' : 88,
|
|
'KEY_KP_8' : 89,
|
|
'KEY_KP_9' : 90,
|
|
'KEY_F1' : 91,
|
|
'KEY_F2' : 92,
|
|
'KEY_F3' : 93,
|
|
'KEY_F4' : 94,
|
|
'KEY_F5' : 95,
|
|
'KEY_F6' : 96,
|
|
'KEY_F7' : 97,
|
|
'KEY_F8' : 98,
|
|
'KEY_F9' : 99,
|
|
'KEY_F10' : 100,
|
|
'KEY_F11' : 101,
|
|
'KEY_F12' : 102,
|
|
'KEY_PRTSCN' : 103,
|
|
'KEY_SCRLK' : 104,
|
|
'KEY_PAUSE' : 105,
|
|
'KEY_SPACE' : 106,
|
|
}
|
|
|
|
stri = '''gScan_code[11] = 0xB;
|
|
gScan_code[13] = 3;
|
|
gScan_code[14] = 4;
|
|
gScan_code[12] = 2;
|
|
gScan_code[15] = 5;
|
|
gScan_code[17] = 7;
|
|
gScan_code[18] = 8;
|
|
gScan_code[16] = 6;
|
|
gScan_code[19] = 9;
|
|
gScan_code[21] = 0x1E;
|
|
gScan_code[22] = 0x30;
|
|
gScan_code[20] = 0xA;
|
|
gScan_code[23] = 0x2E;
|
|
gScan_code[25] = 0x12;
|
|
gScan_code[26] = 0x21;
|
|
gScan_code[24] = 0x20;
|
|
gScan_code[27] = 0x22;
|
|
gScan_code[29] = 0x17;
|
|
gScan_code[30] = 0x24;
|
|
gScan_code[28] = 0x23;
|
|
gScan_code[31] = 0x25;
|
|
gScan_code[33] = 0x32;
|
|
gScan_code[34] = 0x31;
|
|
gScan_code[32] = 0x26;
|
|
gScan_code[35] = 0x18;
|
|
gScan_code[37] = 0x10;
|
|
gScan_code[38] = 0x13;
|
|
gScan_code[36] = 0x19;
|
|
gScan_code[39] = 0x1F;
|
|
gScan_code[41] = 0x16;
|
|
gScan_code[42] = 0x2F;
|
|
gScan_code[40] = 0x14;
|
|
gScan_code[43] = 0x11;
|
|
gScan_code[44] = 0x2D;
|
|
gScan_code[45] = 0x15;
|
|
gScan_code[46] = 0x2C;
|
|
gScan_code[47] = 0x29;
|
|
gScan_code[48] = 0xC;
|
|
gScan_code[49] = 0xD;
|
|
gScan_code[50] = 0xE;
|
|
gScan_code[51] = 0x1C;
|
|
gScan_code[52] = 0x9C;
|
|
gScan_code[0] = 0x362A;
|
|
gScan_code[1] = 0xB838;
|
|
gScan_code[2] = 0x9D1D;
|
|
gScan_code[3] = 0x9D1D;
|
|
gScan_code[4] = 0x3A;
|
|
gScan_code[55] = 0x56;
|
|
gScan_code[54] = 0x35;
|
|
gScan_code[56] = 0x27;
|
|
gScan_code[59] = 0x33;
|
|
gScan_code[53] = 0xF;
|
|
gScan_code[58] = 0x34;
|
|
gScan_code[60] = 0x1A;
|
|
gScan_code[63] = 1;
|
|
gScan_code[57] = 0x28;
|
|
gScan_code[62] = 0x2B;
|
|
gScan_code[64] = 0xD2;
|
|
gScan_code[67] = 0xCF;
|
|
gScan_code[61] = 0x1B;
|
|
gScan_code[66] = 0xC7;
|
|
gScan_code[68] = 0xC9;
|
|
gScan_code[71] = 0xCD;
|
|
gScan_code[65] = 0xD3;
|
|
gScan_code[70] = 0xCB;
|
|
gScan_code[72] = 0xC8;
|
|
gScan_code[69] = 0xD1;
|
|
gScan_code[74] = 0x45;
|
|
gScan_code[73] = 0xD0;
|
|
gScan_code[75] = 0xB5;
|
|
gScan_code[76] = 0x37;
|
|
gScan_code[78] = 0x4E;
|
|
gScan_code[77] = 0x4A;
|
|
gScan_code[80] = 0;
|
|
gScan_code[79] = 0x53;
|
|
gScan_code[82] = 0x4F;
|
|
gScan_code[84] = 0x51;
|
|
gScan_code[81] = 0x52;
|
|
gScan_code[83] = 0x50;
|
|
gScan_code[86] = 0x4C;
|
|
gScan_code[88] = 0x47;
|
|
gScan_code[85] = 0x4B;
|
|
gScan_code[87] = 0x4D;
|
|
gScan_code[90] = 0x49;
|
|
gScan_code[92] = 0x3C;
|
|
gScan_code[89] = 0x48;
|
|
gScan_code[91] = 0x3B;
|
|
gScan_code[94] = 0x3E;
|
|
gScan_code[96] = 0x40;
|
|
gScan_code[93] = 0x3D;
|
|
gScan_code[95] = 0x3F;
|
|
gScan_code[98] = 0x42;
|
|
gScan_code[100] = 0x44;
|
|
gScan_code[97] = 0x41;
|
|
gScan_code[99] = 0x43;
|
|
gScan_code[102] = 0x58;
|
|
gScan_code[104] = 0x46;
|
|
gScan_code[101] = 0x57;
|
|
gScan_code[103] = 0;
|
|
gScan_code[105] = 0;
|
|
gScan_code[106] = 0x39;
|
|
gScan_code[5] = 0x36;
|
|
gScan_code[6] = 0xB8;
|
|
gScan_code[7] = 0x9D;
|
|
gScan_code[8] = 0x2A;
|
|
gScan_code[9] = 0x38;
|
|
gScan_code[10] = 0x1D;'''
|
|
|
|
lines = stri.splitlines()
|
|
for l in lines:
|
|
parts = l.split('=')
|
|
# print(parts)
|
|
val = parts[1].strip().replace(';', '')
|
|
val_int = int(val, 16)
|
|
|
|
parts2 = l.split(']')
|
|
# print(parts)
|
|
parts2[0] = parts2[0].strip()
|
|
# i = parts[0].index(']')
|
|
val_int2 = int(parts2[0][11:])
|
|
|
|
|
|
code = -1
|
|
keycode = -1
|
|
printed = False
|
|
for c in codes:
|
|
if codes[c] == val_int:
|
|
code = c
|
|
|
|
if code == -1:
|
|
code = val_int
|
|
|
|
for c in keycodes:
|
|
if keycodes[c] == val_int2:
|
|
|
|
# printed = True
|
|
keycode = c
|
|
# print(parts[0] + '= ' + str(val_int) + ';')
|
|
|
|
if keycode == -1:
|
|
keycode = val_int2
|
|
|
|
print('gScan_code[' + str(keycode) + '][0] = ' + str(code) + ';')
|
|
|
|
|
|
stri = '''gScan_code[11][0] = SCANCODE_0;
|
|
gScan_code[13][0] = SCANCODE_2;
|
|
gScan_code[14][0] = SCANCODE_3;
|
|
gScan_code[12][0] = SCANCODE_1;
|
|
gScan_code[15][0] = SCANCODE_4;
|
|
gScan_code[17][0] = SCANCODE_6;
|
|
gScan_code[18][0] = SCANCODE_7;
|
|
gScan_code[16][0] = SCANCODE_5;
|
|
gScan_code[19][0] = SCANCODE_8;
|
|
gScan_code[21][0] = SCANCODE_A;
|
|
gScan_code[22][0] = SCANCODE_B;
|
|
gScan_code[20][0] = SCANCODE_9;
|
|
gScan_code[23][0] = SCANCODE_C;
|
|
gScan_code[25][0] = SCANCODE_E;
|
|
gScan_code[26][0] = SCANCODE_F;
|
|
gScan_code[24][0] = SCANCODE_D;
|
|
gScan_code[27][0] = SCANCODE_G;
|
|
gScan_code[29][0] = SCANCODE_I;
|
|
gScan_code[30][0] = SCANCODE_J;
|
|
gScan_code[28][0] = SCANCODE_H;
|
|
gScan_code[31][0] = SCANCODE_K;
|
|
gScan_code[33][0] = SCANCODE_M;
|
|
gScan_code[34][0] = SCANCODE_N;
|
|
gScan_code[32][0] = SCANCODE_L;
|
|
gScan_code[35][0] = SCANCODE_O;
|
|
gScan_code[37][0] = SCANCODE_Q;
|
|
gScan_code[38][0] = SCANCODE_R;
|
|
gScan_code[36][0] = SCANCODE_P;
|
|
gScan_code[39][0] = SCANCODE_S;
|
|
gScan_code[41][0] = SCANCODE_U;
|
|
gScan_code[42][0] = SCANCODE_V;
|
|
gScan_code[40][0] = SCANCODE_T;
|
|
gScan_code[43][0] = SCANCODE_W;
|
|
gScan_code[44][0] = SCANCODE_X;
|
|
gScan_code[45][0] = SCANCODE_Y;
|
|
gScan_code[46][0] = SCANCODE_Z;
|
|
gScan_code[47][0] = SCANCODE_GRAVE;
|
|
gScan_code[48][0] = SCANCODE_MINUS;
|
|
gScan_code[49][0] = SCANCODE_EQUALS;
|
|
gScan_code[50][0] = SCANCODE_BACK;
|
|
gScan_code[51][0] = SCANCODE_RETURN;
|
|
gScan_code[52][0] = SCANCODE_NUMPADENTER;
|
|
gScan_code[0][0] = SCANCODE_LSHIFT;
|
|
gScan_code[0][1] = SCANCODE_RSHIFT;
|
|
gScan_code[1][0] = SCANCODE_LMENU;
|
|
gScan_code[1][1] = SCANCODE_RMENU;
|
|
gScan_code[2][0] = SCANCODE_LCONTROL;
|
|
gScan_code[2][1] = SCANCODE_RCONTROL;
|
|
gScan_code[3][0] = SCANCODE_LCONTROL;
|
|
gScan_code[3][1] = SCANCODE_RCONTROL;
|
|
gScan_code[4][0] = SCANCODE_CAPITAL;
|
|
gScan_code[55][0] = SCANCODE_OEM_102;
|
|
gScan_code[54][0] = SCANCODE_SLASH;
|
|
gScan_code[56][0] = SCANCODE_SEMICOLON;
|
|
gScan_code[59][0] = SCANCODE_COMMA;
|
|
gScan_code[53][0] = SCANCODE_TAB;
|
|
gScan_code[58][0] = SCANCODE_PERIOD;
|
|
gScan_code[60][0] = SCANCODE_LBRACKET;
|
|
gScan_code[63][0] = SCANCODE_ESCAPE;
|
|
gScan_code[57][0] = SCANCODE_APOSTROPHE;
|
|
gScan_code[62][0] = SCANCODE_BACKSLASH;
|
|
gScan_code[64][0] = SCANCODE_INSERT;
|
|
gScan_code[67][0] = SCANCODE_END;
|
|
gScan_code[61][0] = SCANCODE_RBRACKET;
|
|
gScan_code[66][0] = SCANCODE_HOME;
|
|
gScan_code[68][0] = SCANCODE_PRIOR;
|
|
gScan_code[71][0] = SCANCODE_RIGHT;
|
|
gScan_code[65][0] = SCANCODE_DELETE;
|
|
gScan_code[70][0] = SCANCODE_LEFT;
|
|
gScan_code[72][0] = SCANCODE_UP;
|
|
gScan_code[69][0] = SCANCODE_NEXT;
|
|
gScan_code[74][0] = SCANCODE_NUMLOCK;
|
|
gScan_code[73][0] = SCANCODE_DOWN;
|
|
gScan_code[75][0] = SCANCODE_DIVIDE;
|
|
gScan_code[76][0] = SCANCODE_MULTIPLY;
|
|
gScan_code[78][0] = SCANCODE_ADD;
|
|
gScan_code[77][0] = SCANCODE_SUBTRACT;
|
|
gScan_code[80][0] = 0;'''
|
|
|
|
# lines = stri.splitlines()
|
|
# for l in lines:
|
|
# parts = l.split(']')
|
|
# # print(parts)
|
|
# parts[0] = parts[0].strip()
|
|
# # i = parts[0].index(']')
|
|
# val_int = int(parts[0][11:])
|
|
# # print(val_int)
|
|
|
|
# printed = False
|
|
# for c in keycodes:
|
|
# if keycodes[c] == val_int:
|
|
# print('gScan_code[' + c + ']' + parts[1] + ']' + parts[2])
|
|
# printed = True
|
|
# if not printed:
|
|
# print('error!')
|
|
# # break
|