ReactOS  0.4.15-dev-1384-g878186b
data.c
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS Build Tools [Keyboard Layout Compiler]
3  * LICENSE: BSD - See COPYING.BSD in the top level directory
4  * FILE: tools/kbdtool/data.c
5  * PURPOSE: Internal Keyboard (Scancode/Virtual Key) Tables
6  * PROGRAMMERS: ReactOS Foundation
7  */
8 
9 /* INCLUDES *******************************************************************/
10 
11 #include "kbdtool.h"
12 
13 /* GLOBALS ********************************************************************/
14 
15 /* Table of Virtual Key Names */
17 {
18  {0x08, "BACK"},
19  {0x03, "CANCEL"},
20  {0x1b, "ESCAPE"},
21  {0x0d, "RETURN"},
22  {0x20, "SPACE"},
23  {0x6e, "DECIMAL"},
24  {0xba, "OEM_1"},
25  {0xbb, "OEM_PLUS"},
26  {0xbc, "OEM_COMMA"},
27  {0xbd, "OEM_MINUS"},
28  {0xbe, "OEM_PERIOD"},
29  {0xbf, "OEM_2"},
30  {0xc0, "OEM_3"},
31  {0xdb, "OEM_4"},
32  {0xdc, "OEM_5"},
33  {0xdd, "OEM_6"},
34  {0xde, "OEM_7"},
35  {0xdf, "OEM_8"},
36  {0xe2, "OEM_102"},
37  {0xc1, "ABNT_C1"},
38  {0xc2, "ABNT_C2"},
39  {0x10, "SHIFT"},
40  {0xa0, "LSHIFT"},
41  {0xa1, "RSHIFT"},
42  {0x12, "MENU"},
43  {0xa4, "LMENU"},
44  {0xa5, "RMENU"},
45  {0x11, "CONTROL"},
46  {0xa2, "LCONTROL"},
47  {0xa3, "RCONTROL"},
48  {0x6c, "SEPARATOR"},
49  {0xe4, "ICO_00"},
50  {0x2e, "DELETE"},
51  {0x2d, "INSERT"},
52  {0xe5, "GROUPSHIFT"},
53  {0xe6, "RGROUPSHIFT"}
54 };
55 /* Table of modifiers */
57 {
58  {0x10, "KBDSHIFT"},
59  {0x11, "KBDCTRL"},
60  {0x12, "KBDALT"}
61 };
62 
63 /* Table of states */
65 {
66  "",
67  "Shift",
68  " Ctrl",
69  "S+Ctrl",
70  " Alt",
71  "Shift+Alt",
72  " Ctl+Alt",
73  "S+Ctl+Alt",
74  " X1 ",
75  "S+ X1 ",
76  " C+ X1 ",
77  "S+C+ X1 ",
78  " A+X1 ",
79  "S+ A+X1 ",
80  " C+A+X1 ",
81  "S+C+A+X1 ",
82  " X2 ",
83  "S+ X2 ",
84  " C+ X2 ",
85  "S+C+ X2 ",
86  " A+ X2 ",
87  "S+ A+ X2 ",
88  " C+A+ X2 ",
89  "S+C+A+ X2 ",
90  " X1+X2 ",
91  "S+ X1+X2 ",
92  " C+ X1+X2 ",
93  "S+C+ X1+X2 ",
94  " A+X1+X2 ",
95  "S+ A+X1+X2 ",
96  " C+A+X1+X2 ",
97  "S+C+A+X1+X2 ",
98  " X3",
99  "S+ X3",
100  " C+ X3",
101  "S+C+ X3",
102  " A+ X3",
103  "S+ A+ X3",
104  " C+A+ X3",
105  "S+C+A+ X3",
106  " X1+ X3",
107  "S+ X1+ X3",
108  " C+ X1+ X3",
109  "S+C+ X1+ X3",
110  " A+X1+ X3",
111  "S+ A+X1+ X3",
112  " C+A+X1+ X3",
113  "S+C+A+X1+ X3",
114  " X2+X3",
115  "S+ X2+X3",
116  " C+ X2+X3",
117  "S+C+ X2+X3",
118  " A+ X2+X3",
119  "S+ A+ X2+X3",
120  " C+A+ X2+X3",
121  "S+C+A+ X2+X3",
122  " X1+X2+X3",
123  "S+ X1+X2+X3",
124  " C+ X1+X2+X3",
125  "S+C+ X1+X2+X3",
126  " A+X1+X2+X3",
127  "S+ A+X1+X2+X3",
128  " C+A+X1+X2+X3",
129  "S+C+A+X1+X2+X3",
130  "unexpected",
131  "unexpected"
132 };
133 
134 /* Table of Cap States */
136 {
137  "0",
138  "CAPLOK",
139  "SGCAPS",
140  "CAPLOCK | SGCAPS",
141  "CAPLOKALTGR",
142  "CAPLOK | CAPLOKALTGR"
143 };
144 
145 /* ISO 110-key Keyboard Scancode to Virtual Key Conversion Table */
147 {
148  {0x02, '1', NULL, FALSE},
149  {0x03, '2', NULL, FALSE},
150  {0x04, '3', NULL, FALSE},
151  {0x05, '4', NULL, FALSE},
152  {0x06, '5', NULL, FALSE},
153  {0x07, '6', NULL, FALSE},
154  {0x08, '7', NULL, FALSE},
155  {0x09, '8', NULL, FALSE},
156  {0x0a, '9', NULL, FALSE},
157  {0x0b, '0', NULL, FALSE},
158  {0x0c, 0xbd, NULL, FALSE},
159  {0x0d, 0xbb, NULL, FALSE},
160  {0x10, 'Q', NULL, FALSE},
161  {0x11, 'W', NULL, FALSE},
162  {0x12, 'E', NULL, FALSE},
163  {0x13, 'R', NULL, FALSE},
164  {0x14, 'T', NULL, FALSE},
165  {0x15, 'Y', NULL, FALSE},
166  {0x16, 'U', NULL, FALSE},
167  {0x17, 'I', NULL, FALSE},
168  {0x18, 'O', NULL, FALSE},
169  {0x19, 'P', NULL, FALSE},
170  {0x1a, 0xdb, NULL, FALSE},
171  {0x1b, 0xdd, NULL, FALSE},
172  {0x1e, 'A', NULL, FALSE},
173  {0x1f, 'S', NULL, FALSE},
174  {0x20, 'D', NULL, FALSE},
175  {0x21, 'F', NULL, FALSE},
176  {0x22, 'G', NULL, FALSE},
177  {0x23, 'H', NULL, FALSE},
178  {0x24, 'J', NULL, FALSE},
179  {0x25, 'K', NULL, FALSE},
180  {0x26, 'L', NULL, FALSE},
181  {0x27, 0xba, NULL, FALSE},
182  {0x28, 0xde, NULL, FALSE},
183  {0x29, 0xc0, NULL, FALSE},
184  {0x2b, 0xdc, NULL, FALSE},
185  {0x2c, 'Z', NULL, FALSE},
186  {0x2d, 'X', NULL, FALSE},
187  {0x2e, 'C', NULL, FALSE},
188  {0x2f, 'V', NULL, FALSE},
189  {0x30, 'B', NULL, FALSE},
190  {0x31, 'N', NULL, FALSE},
191  {0x32, 'M', NULL, FALSE},
192  {0x33, 0xbc, NULL, FALSE},
193  {0x34, 0xbe, NULL, FALSE},
194  {0x35, 0xbf, NULL, FALSE},
195  {0x53, 0x6e, NULL, FALSE},
196  {0x56, 0xe2, NULL, FALSE},
197  {0x73, 0xc1, NULL, FALSE},
198  {0x7e, 0xc2, NULL, FALSE},
199  {0xe010, 0xb1, "Speedracer: Previous Track", FALSE},
200  {0xe019, 0xb0, "Speedracer: Next Track", FALSE},
201  {0xe01d, 0xa3, "RControl", FALSE},
202  {0xe020, 0xad, "Speedracer: Volume Mute", FALSE},
203  {0xe021, 0xb7, "Speedracer: Launch App 2", FALSE},
204  {0xe022, 0xb3, "Speedracer: Media Play/Pause", FALSE},
205  {0xe024, 0xb2, "Speedracer: Media Stop", FALSE},
206  {0xe02e, 0xae, "Speedracer: Volume Up", FALSE},
207  {0xe030, 0xaf, "Speedracer: Volume Down", FALSE},
208  {0xe032, 0xac, "Speedracer: Browser Home", FALSE},
209  {0xe035, 0x6f, "Numpad Divide", FALSE},
210  {0xe037, 0x2c, "Snapshot", FALSE},
211  {0xe038, 0xa5, "RMenu", FALSE},
212  {0xe047, 0x24, "Home", FALSE},
213  {0xe048, 0x26, "Up", FALSE},
214  {0xe049, 0x21, "Prior", FALSE},
215  {0xe04b, 0x25, "Left", FALSE},
216  {0xe04d, 0x27, "Right", FALSE},
217  {0xe04f, 0x23, "End", FALSE},
218  {0xe050, 0x28, "Down", FALSE},
219  {0xe051, 0x22, "Next", FALSE},
220  {0xe052, 0x2d, "Insert", FALSE},
221  {0xe053, 0x2e, "Delete", FALSE},
222  {0xe05b, 0x5b, "Left Win", FALSE},
223  {0xe05c, 0x5c, "Right Win", FALSE},
224  {0xe05d, 0x5d, "Application", FALSE},
225  {0xe05e, 0xff, "Power", FALSE},
226  {0xe05f, 0x5f, "Speedracer: Sleep", FALSE},
227  {0xe060, 0xff, "BAD SCANCODE", FALSE},
228  {0xe061, 0xff, "BAD SCANCODE", FALSE},
229  {0xe065, 0xaa, "Speedracer: Browser Search", FALSE},
230  {0xe066, 0xab, "Speedracer: Browser Favorites", FALSE},
231  {0xe067, 0xa8, "Speedracer: Browser Refresh", FALSE},
232  {0xe068, 0xa9, "Speedracer: Browser Stop", FALSE},
233  {0xe069, 0xa7, "Speedracer: Browser Foward", FALSE},
234  {0xe06a, 0xa6, "Speedracer: Browser Back", FALSE},
235  {0xe06b, 0xb6, "Speedracer: Launch App 1", FALSE},
236  {0xe06c, 0xb4, "Speedracer: Launch Mail", FALSE},
237  {0xe06d, 0xb5, "Speedracer: Launch Media Selector", FALSE},
238  {0x53, 0x6e, NULL, FALSE},
239  {0x0e, 0x08, NULL, FALSE},
240  {0x01, 0x1b, NULL, FALSE},
241  {0xe01c, 0x0d, "Numpad Enter", FALSE},
242  {0x1c, 0x0d, NULL, FALSE},
243  {0x39, 0x20, NULL, FALSE},
244  {0xe046, 0x03, "Break (Ctrl + Pause)", FALSE},
245  {0xFFFF, 0x00, NULL, FALSE},
246  {0xFFFF, 0x00, NULL, FALSE},
247  {0xFFFF, 0x00, NULL, FALSE},
248  {0xFFFF, 0x00, NULL, FALSE},
249  {0xFFFF, 0x00, NULL, FALSE},
250  {0xFFFF, 0x00, NULL, FALSE},
251  {0xFFFF, 0x00, NULL, FALSE},
252  {0xFFFF, 0x00, NULL, FALSE},
253  {0xFFFF, 0x00, NULL, FALSE},
254  {0xFFFF, 0x00, NULL, FALSE},
255  {0xFFFF, 0x00, NULL, FALSE},
256  {0xFFFF, 0x00, NULL, FALSE},
257  {0xFFFF, 0x00, NULL, FALSE},
258  {0xFFFF, 0x00, NULL, FALSE}
259 };
260 
261 /* FUNCTIONS ******************************************************************/
262 
263 /* EOF */
signed char * PCHAR
Definition: retypes.h:7
PCHAR CapState[]
Definition: data.c:135
VKNAME Modifiers[]
Definition: data.c:56
#define FALSE
Definition: types.h:117
VKNAME VKName[]
Definition: data.c:16
SCVK ScVk[]
Definition: data.c:146
PCHAR StateLabel[]
Definition: data.c:64
#define NULL
Definition: types.h:112