246 lines
10 KiB
C
246 lines
10 KiB
C
|
#include <stdint.h>
|
|||
|
#define SYM_LENGTH 7
|
|||
|
#define KEYCODE_MIN 8
|
|||
|
#define KEYCODE_MAX 255
|
|||
|
#define NOSYM {{0}, {0}}
|
|||
|
struct lorie_keymap {
|
|||
|
char *name;
|
|||
|
struct keysym {
|
|||
|
char normal[SYM_LENGTH];
|
|||
|
char shift[SYM_LENGTH];
|
|||
|
} keysyms[KEYCODE_MAX - KEYCODE_MIN];
|
|||
|
};
|
|||
|
|
|||
|
struct lorie_keymap lorie_keymap_ru = {
|
|||
|
.name = (char*) "ru",
|
|||
|
.keysyms = {
|
|||
|
NOSYM, // eventCode: 0
|
|||
|
NOSYM, // eventCode: 1
|
|||
|
{{49, 0, 0, 0, 0, 0, 0}, {33, 0, 0, 0, 0, 0, 0}}, // eventCode: 2; normal: "1"; shift: "!";
|
|||
|
{{50, 0, 0, 0, 0, 0, 0}, {34, 0, 0, 0, 0, 0, 0}}, // eventCode: 3; normal: "2"; shift: """;
|
|||
|
{{51, 0, 0, 0, 0, 0, 0}, {-30, -124, -106, 0, 0, 0, 0}}, // eventCode: 4; normal: "3"; shift: "№";
|
|||
|
{{52, 0, 0, 0, 0, 0, 0}, {59, 0, 0, 0, 0, 0, 0}}, // eventCode: 5; normal: "4"; shift: ";";
|
|||
|
{{53, 0, 0, 0, 0, 0, 0}, {37, 0, 0, 0, 0, 0, 0}}, // eventCode: 6; normal: "5"; shift: "%";
|
|||
|
{{54, 0, 0, 0, 0, 0, 0}, {58, 0, 0, 0, 0, 0, 0}}, // eventCode: 7; normal: "6"; shift: ":";
|
|||
|
{{55, 0, 0, 0, 0, 0, 0}, {63, 0, 0, 0, 0, 0, 0}}, // eventCode: 8; normal: "7"; shift: "?";
|
|||
|
{{56, 0, 0, 0, 0, 0, 0}, {42, 0, 0, 0, 0, 0, 0}}, // eventCode: 9; normal: "8"; shift: "*";
|
|||
|
{{57, 0, 0, 0, 0, 0, 0}, {40, 0, 0, 0, 0, 0, 0}}, // eventCode: 10; normal: "9"; shift: "(";
|
|||
|
{{48, 0, 0, 0, 0, 0, 0}, {41, 0, 0, 0, 0, 0, 0}}, // eventCode: 11; normal: "0"; shift: ")";
|
|||
|
{{45, 0, 0, 0, 0, 0, 0}, {95, 0, 0, 0, 0, 0, 0}}, // eventCode: 12; normal: "-"; shift: "_";
|
|||
|
{{61, 0, 0, 0, 0, 0, 0}, {43, 0, 0, 0, 0, 0, 0}}, // eventCode: 13; normal: "="; shift: "+";
|
|||
|
{{8, 0, 0, 0, 0, 0, 0}, {8, 0, 0, 0, 0, 0, 0}}, // eventCode: 14;
|
|||
|
NOSYM, // eventCode: 15; normal: " ";
|
|||
|
{{-48, -71, 0, 0, 0, 0, 0}, {-48, -103, 0, 0, 0, 0, 0}}, // eventCode: 16; normal: "й"; shift: "Й";
|
|||
|
{{-47, -122, 0, 0, 0, 0, 0}, {-48, -90, 0, 0, 0, 0, 0}}, // eventCode: 17; normal: "ц"; shift: "Ц";
|
|||
|
{{-47, -125, 0, 0, 0, 0, 0}, {-48, -93, 0, 0, 0, 0, 0}}, // eventCode: 18; normal: "у"; shift: "У";
|
|||
|
{{-48, -70, 0, 0, 0, 0, 0}, {-48, -102, 0, 0, 0, 0, 0}}, // eventCode: 19; normal: "к"; shift: "К";
|
|||
|
{{-48, -75, 0, 0, 0, 0, 0}, {-48, -107, 0, 0, 0, 0, 0}}, // eventCode: 20; normal: "е"; shift: "Е";
|
|||
|
{{-48, -67, 0, 0, 0, 0, 0}, {-48, -99, 0, 0, 0, 0, 0}}, // eventCode: 21; normal: "н"; shift: "Н";
|
|||
|
{{-48, -77, 0, 0, 0, 0, 0}, {-48, -109, 0, 0, 0, 0, 0}}, // eventCode: 22; normal: "г"; shift: "Г";
|
|||
|
{{-47, -120, 0, 0, 0, 0, 0}, {-48, -88, 0, 0, 0, 0, 0}}, // eventCode: 23; normal: "ш"; shift: "Ш";
|
|||
|
{{-47, -119, 0, 0, 0, 0, 0}, {-48, -87, 0, 0, 0, 0, 0}}, // eventCode: 24; normal: "щ"; shift: "Щ";
|
|||
|
{{-48, -73, 0, 0, 0, 0, 0}, {-48, -105, 0, 0, 0, 0, 0}}, // eventCode: 25; normal: "з"; shift: "З";
|
|||
|
{{-47, -123, 0, 0, 0, 0, 0}, {-48, -91, 0, 0, 0, 0, 0}}, // eventCode: 26; normal: "х"; shift: "Х";
|
|||
|
{{-47, -118, 0, 0, 0, 0, 0}, {-48, -86, 0, 0, 0, 0, 0}}, // eventCode: 27; normal: "ъ"; shift: "Ъ";
|
|||
|
{{13, 0, 0, 0, 0, 0, 0}, {13, 0, 0, 0, 0, 0, 0}}, // eventCode: 28;
|
|||
|
NOSYM, // eventCode: 29
|
|||
|
{{-47, -124, 0, 0, 0, 0, 0}, {-48, -92, 0, 0, 0, 0, 0}}, // eventCode: 30; normal: "ф"; shift: "Ф";
|
|||
|
{{-47, -117, 0, 0, 0, 0, 0}, {-48, -85, 0, 0, 0, 0, 0}}, // eventCode: 31; normal: "ы"; shift: "Ы";
|
|||
|
{{-48, -78, 0, 0, 0, 0, 0}, {-48, -110, 0, 0, 0, 0, 0}}, // eventCode: 32; normal: "в"; shift: "В";
|
|||
|
{{-48, -80, 0, 0, 0, 0, 0}, {-48, -112, 0, 0, 0, 0, 0}}, // eventCode: 33; normal: "а"; shift: "А";
|
|||
|
{{-48, -65, 0, 0, 0, 0, 0}, {-48, -97, 0, 0, 0, 0, 0}}, // eventCode: 34; normal: "п"; shift: "П";
|
|||
|
{{-47, -128, 0, 0, 0, 0, 0}, {-48, -96, 0, 0, 0, 0, 0}}, // eventCode: 35; normal: "р"; shift: "Р";
|
|||
|
{{-48, -66, 0, 0, 0, 0, 0}, {-48, -98, 0, 0, 0, 0, 0}}, // eventCode: 36; normal: "о"; shift: "О";
|
|||
|
{{-48, -69, 0, 0, 0, 0, 0}, {-48, -101, 0, 0, 0, 0, 0}}, // eventCode: 37; normal: "л"; shift: "Л";
|
|||
|
{{-48, -76, 0, 0, 0, 0, 0}, {-48, -108, 0, 0, 0, 0, 0}}, // eventCode: 38; normal: "д"; shift: "Д";
|
|||
|
{{-48, -74, 0, 0, 0, 0, 0}, {-48, -106, 0, 0, 0, 0, 0}}, // eventCode: 39; normal: "ж"; shift: "Ж";
|
|||
|
{{-47, -115, 0, 0, 0, 0, 0}, {-48, -83, 0, 0, 0, 0, 0}}, // eventCode: 40; normal: "э"; shift: "Э";
|
|||
|
{{-47, -111, 0, 0, 0, 0, 0}, {-48, -127, 0, 0, 0, 0, 0}}, // eventCode: 41; normal: "ё"; shift: "Ё";
|
|||
|
NOSYM, // eventCode: 42;
|
|||
|
{{92, 0, 0, 0, 0, 0, 0}, {47, 0, 0, 0, 0, 0, 0}}, // eventCode: 43; normal: "\"; shift: "/";
|
|||
|
{{-47, -113, 0, 0, 0, 0, 0}, {-48, -81, 0, 0, 0, 0, 0}}, // eventCode: 44; normal: "я"; shift: "Я";
|
|||
|
{{-47, -121, 0, 0, 0, 0, 0}, {-48, -89, 0, 0, 0, 0, 0}}, // eventCode: 45; normal: "ч"; shift: "Ч";
|
|||
|
{{-47, -127, 0, 0, 0, 0, 0}, {-48, -95, 0, 0, 0, 0, 0}}, // eventCode: 46; normal: "с"; shift: "С";
|
|||
|
{{-48, -68, 0, 0, 0, 0, 0}, {-48, -100, 0, 0, 0, 0, 0}}, // eventCode: 47; normal: "м"; shift: "М";
|
|||
|
{{-48, -72, 0, 0, 0, 0, 0}, {-48, -104, 0, 0, 0, 0, 0}}, // eventCode: 48; normal: "и"; shift: "И";
|
|||
|
{{-47, -126, 0, 0, 0, 0, 0}, {-48, -94, 0, 0, 0, 0, 0}}, // eventCode: 49; normal: "т"; shift: "Т";
|
|||
|
{{-47, -116, 0, 0, 0, 0, 0}, {-48, -84, 0, 0, 0, 0, 0}}, // eventCode: 50; normal: "ь"; shift: "Ь";
|
|||
|
{{-48, -79, 0, 0, 0, 0, 0}, {-48, -111, 0, 0, 0, 0, 0}}, // eventCode: 51; normal: "б"; shift: "Б";
|
|||
|
{{-47, -114, 0, 0, 0, 0, 0}, {-48, -82, 0, 0, 0, 0, 0}}, // eventCode: 52; normal: "ю"; shift: "Ю";
|
|||
|
{{46, 0, 0, 0, 0, 0, 0}, {44, 0, 0, 0, 0, 0, 0}}, // eventCode: 53; normal: "."; shift: ",";
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
struct lorie_keymap *lorie_keymaps[] = {&lorie_keymap_ru, NULL};
|
|||
|
|
|||
|
struct lorie_keymap_android {
|
|||
|
int eventCode;
|
|||
|
int shift;
|
|||
|
} lorie_keymap_android[] = {
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0},
|
|||
|
{1, 0}, // keycode 4
|
|||
|
{0, 0}, {0, 0},
|
|||
|
{11, 0}, // keycode 7
|
|||
|
{2, 0}, // keycode 8
|
|||
|
{3, 0}, // keycode 9
|
|||
|
{4, 0}, // keycode 10
|
|||
|
{5, 0}, // keycode 11
|
|||
|
{6, 0}, // keycode 12
|
|||
|
{7, 0}, // keycode 13
|
|||
|
{8, 0}, // keycode 14
|
|||
|
{9, 0}, // keycode 15
|
|||
|
{10, 0}, // keycode 16
|
|||
|
{9, 1}, // keycode 17
|
|||
|
{4, 1}, // keycode 18
|
|||
|
{103, 0}, // keycode 19
|
|||
|
{108, 0}, // keycode 20
|
|||
|
{105, 0}, // keycode 21
|
|||
|
{106, 0}, // keycode 22
|
|||
|
{0, 0},
|
|||
|
{115, 0}, // keycode 24
|
|||
|
{114, 0}, // keycode 25
|
|||
|
{116, 0}, // keycode 26
|
|||
|
{212, 0}, // keycode 27
|
|||
|
{0, 0},
|
|||
|
{30, 0}, // keycode 29
|
|||
|
{48, 0}, // keycode 30
|
|||
|
{46, 0}, // keycode 31
|
|||
|
{32, 0}, // keycode 32
|
|||
|
{18, 0}, // keycode 33
|
|||
|
{33, 0}, // keycode 34
|
|||
|
{34, 0}, // keycode 35
|
|||
|
{35, 0}, // keycode 36
|
|||
|
{23, 0}, // keycode 37
|
|||
|
{36, 0}, // keycode 38
|
|||
|
{37, 0}, // keycode 39
|
|||
|
{38, 0}, // keycode 40
|
|||
|
{50, 0}, // keycode 41
|
|||
|
{49, 0}, // keycode 42
|
|||
|
{24, 0}, // keycode 43
|
|||
|
{25, 0}, // keycode 44
|
|||
|
{16, 0}, // keycode 45
|
|||
|
{19, 0}, // keycode 46
|
|||
|
{31, 0}, // keycode 47
|
|||
|
{20, 0}, // keycode 48
|
|||
|
{22, 0}, // keycode 49
|
|||
|
{47, 0}, // keycode 50
|
|||
|
{17, 0}, // keycode 51
|
|||
|
{45, 0}, // keycode 52
|
|||
|
{21, 0}, // keycode 53
|
|||
|
{44, 0}, // keycode 54
|
|||
|
{51, 0}, // keycode 55
|
|||
|
{52, 0}, // keycode 56
|
|||
|
{56, 0}, // keycode 57
|
|||
|
{100, 0}, // keycode 58
|
|||
|
{42, 0}, // keycode 59
|
|||
|
{54, 0}, // keycode 60
|
|||
|
{15, 0}, // keycode 61
|
|||
|
{57, 0}, // keycode 62
|
|||
|
{0, 0},
|
|||
|
{150, 0}, // keycode 64
|
|||
|
{155, 0}, // keycode 65
|
|||
|
{28, 0}, // keycode 66
|
|||
|
{14, 0}, // keycode 67
|
|||
|
{41, 0}, // keycode 68
|
|||
|
{12, 0}, // keycode 69
|
|||
|
{13, 0}, // keycode 70
|
|||
|
{26, 0}, // keycode 71
|
|||
|
{27, 0}, // keycode 72
|
|||
|
{43, 0}, // keycode 73
|
|||
|
{39, 0}, // keycode 74
|
|||
|
{40, 0}, // keycode 75
|
|||
|
{53, 0}, // keycode 76
|
|||
|
{3, 1}, // keycode 77
|
|||
|
{0, 0}, {0, 0}, {0, 0},
|
|||
|
{13, 1}, // keycode 81
|
|||
|
{139, 0}, // keycode 82
|
|||
|
{0, 0},
|
|||
|
{217, 0}, // keycode 84
|
|||
|
{164, 0}, // keycode 85
|
|||
|
{625, 0}, // keycode 86
|
|||
|
{163, 0}, // keycode 87
|
|||
|
{165, 0}, // keycode 88
|
|||
|
{168, 0}, // keycode 89
|
|||
|
{208, 0}, // keycode 90
|
|||
|
{248, 0}, // keycode 91
|
|||
|
{104, 0}, // keycode 92
|
|||
|
{109, 0}, // keycode 93
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
|
|||
|
{1, 0}, // keycode 111
|
|||
|
{111, 0}, // keycode 112
|
|||
|
{29, 0}, // keycode 113
|
|||
|
{97, 0}, // keycode 114
|
|||
|
{58, 0}, // keycode 115
|
|||
|
{70, 0}, // keycode 116
|
|||
|
{125, 0}, // keycode 117
|
|||
|
{126, 0}, // keycode 118
|
|||
|
{0, 0},
|
|||
|
{99, 0}, // keycode 120
|
|||
|
{411, 0}, // keycode 121
|
|||
|
{102, 0}, // keycode 122
|
|||
|
{107, 0}, // keycode 123
|
|||
|
{110, 0}, // keycode 124
|
|||
|
{159, 0}, // keycode 125
|
|||
|
{207, 0}, // keycode 126
|
|||
|
{0, 0},
|
|||
|
{160, 0}, // keycode 128
|
|||
|
{161, 0}, // keycode 129
|
|||
|
{167, 0}, // keycode 130
|
|||
|
{59, 0}, // keycode 131
|
|||
|
{60, 0}, // keycode 132
|
|||
|
{61, 0}, // keycode 133
|
|||
|
{62, 0}, // keycode 134
|
|||
|
{63, 0}, // keycode 135
|
|||
|
{64, 0}, // keycode 136
|
|||
|
{65, 0}, // keycode 137
|
|||
|
{66, 0}, // keycode 138
|
|||
|
{67, 0}, // keycode 139
|
|||
|
{68, 0}, // keycode 140
|
|||
|
{87, 0}, // keycode 141
|
|||
|
{88, 0}, // keycode 142
|
|||
|
{69, 0}, // keycode 143
|
|||
|
{82, 0}, // keycode 144
|
|||
|
{79, 0}, // keycode 145
|
|||
|
{80, 0}, // keycode 146
|
|||
|
{81, 0}, // keycode 147
|
|||
|
{75, 0}, // keycode 148
|
|||
|
{76, 0}, // keycode 149
|
|||
|
{77, 0}, // keycode 150
|
|||
|
{71, 0}, // keycode 151
|
|||
|
{72, 0}, // keycode 152
|
|||
|
{73, 0}, // keycode 153
|
|||
|
{98, 0}, // keycode 154
|
|||
|
{55, 0}, // keycode 155
|
|||
|
{74, 0}, // keycode 156
|
|||
|
{78, 0}, // keycode 157
|
|||
|
{83, 0}, // keycode 158
|
|||
|
{121, 0}, // keycode 159
|
|||
|
{96, 0}, // keycode 160
|
|||
|
{117, 0}, // keycode 161
|
|||
|
{179, 0}, // keycode 162
|
|||
|
{180, 0}, // keycode 163
|
|||
|
{113, 0}, // keycode 164
|
|||
|
{358, 0}, // keycode 165
|
|||
|
{402, 0}, // keycode 166
|
|||
|
{403, 0}, // keycode 167
|
|||
|
{418, 0}, // keycode 168
|
|||
|
{419, 0}, // keycode 169
|
|||
|
{377, 0}, // keycode 170
|
|||
|
{0, 0}, {0, 0}, {0, 0},
|
|||
|
{156, 0}, // keycode 174
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
|
|||
|
{398, 0}, // keycode 183
|
|||
|
{399, 0}, // keycode 184
|
|||
|
{400, 0}, // keycode 185
|
|||
|
{401, 0}, // keycode 186
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
|
|||
|
{429, 0}, // keycode 207
|
|||
|
{397, 0}, // keycode 208
|
|||
|
{387, 0}, // keycode 209
|
|||
|
{140, 0}, // keycode 210
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
|
|||
|
{224, 0}, // keycode 220
|
|||
|
{225, 0}, // keycode 221
|
|||
|
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}
|
|||
|
};
|