1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef _LIBINPUT_KEYCODE_LABELS_H
18#define _LIBINPUT_KEYCODE_LABELS_H
19
20#include <android/keycodes.h>
21
22struct KeycodeLabel {
23    const char *literal;
24    int value;
25};
26
27static const KeycodeLabel KEYCODES[] = {
28    { "SOFT_LEFT", 1 },
29    { "SOFT_RIGHT", 2 },
30    { "HOME", 3 },
31    { "BACK", 4 },
32    { "CALL", 5 },
33    { "ENDCALL", 6 },
34    { "0", 7 },
35    { "1", 8 },
36    { "2", 9 },
37    { "3", 10 },
38    { "4", 11 },
39    { "5", 12 },
40    { "6", 13 },
41    { "7", 14 },
42    { "8", 15 },
43    { "9", 16 },
44    { "STAR", 17 },
45    { "POUND", 18 },
46    { "DPAD_UP", 19 },
47    { "DPAD_DOWN", 20 },
48    { "DPAD_LEFT", 21 },
49    { "DPAD_RIGHT", 22 },
50    { "DPAD_CENTER", 23 },
51    { "VOLUME_UP", 24 },
52    { "VOLUME_DOWN", 25 },
53    { "POWER", 26 },
54    { "CAMERA", 27 },
55    { "CLEAR", 28 },
56    { "A", 29 },
57    { "B", 30 },
58    { "C", 31 },
59    { "D", 32 },
60    { "E", 33 },
61    { "F", 34 },
62    { "G", 35 },
63    { "H", 36 },
64    { "I", 37 },
65    { "J", 38 },
66    { "K", 39 },
67    { "L", 40 },
68    { "M", 41 },
69    { "N", 42 },
70    { "O", 43 },
71    { "P", 44 },
72    { "Q", 45 },
73    { "R", 46 },
74    { "S", 47 },
75    { "T", 48 },
76    { "U", 49 },
77    { "V", 50 },
78    { "W", 51 },
79    { "X", 52 },
80    { "Y", 53 },
81    { "Z", 54 },
82    { "COMMA", 55 },
83    { "PERIOD", 56 },
84    { "ALT_LEFT", 57 },
85    { "ALT_RIGHT", 58 },
86    { "SHIFT_LEFT", 59 },
87    { "SHIFT_RIGHT", 60 },
88    { "TAB", 61 },
89    { "SPACE", 62 },
90    { "SYM", 63 },
91    { "EXPLORER", 64 },
92    { "ENVELOPE", 65 },
93    { "ENTER", 66 },
94    { "DEL", 67 },
95    { "GRAVE", 68 },
96    { "MINUS", 69 },
97    { "EQUALS", 70 },
98    { "LEFT_BRACKET", 71 },
99    { "RIGHT_BRACKET", 72 },
100    { "BACKSLASH", 73 },
101    { "SEMICOLON", 74 },
102    { "APOSTROPHE", 75 },
103    { "SLASH", 76 },
104    { "AT", 77 },
105    { "NUM", 78 },
106    { "HEADSETHOOK", 79 },
107    { "FOCUS", 80 },
108    { "PLUS", 81 },
109    { "MENU", 82 },
110    { "NOTIFICATION", 83 },
111    { "SEARCH", 84 },
112    { "MEDIA_PLAY_PAUSE", 85 },
113    { "MEDIA_STOP", 86 },
114    { "MEDIA_NEXT", 87 },
115    { "MEDIA_PREVIOUS", 88 },
116    { "MEDIA_REWIND", 89 },
117    { "MEDIA_FAST_FORWARD", 90 },
118    { "MUTE", 91 },
119    { "PAGE_UP", 92 },
120    { "PAGE_DOWN", 93 },
121    { "PICTSYMBOLS", 94 },
122    { "SWITCH_CHARSET", 95 },
123    { "BUTTON_A", 96 },
124    { "BUTTON_B", 97 },
125    { "BUTTON_C", 98 },
126    { "BUTTON_X", 99 },
127    { "BUTTON_Y", 100 },
128    { "BUTTON_Z", 101 },
129    { "BUTTON_L1", 102 },
130    { "BUTTON_R1", 103 },
131    { "BUTTON_L2", 104 },
132    { "BUTTON_R2", 105 },
133    { "BUTTON_THUMBL", 106 },
134    { "BUTTON_THUMBR", 107 },
135    { "BUTTON_START", 108 },
136    { "BUTTON_SELECT", 109 },
137    { "BUTTON_MODE", 110 },
138    { "ESCAPE", 111 },
139    { "FORWARD_DEL", 112 },
140    { "CTRL_LEFT", 113 },
141    { "CTRL_RIGHT", 114 },
142    { "CAPS_LOCK", 115 },
143    { "SCROLL_LOCK", 116 },
144    { "META_LEFT", 117 },
145    { "META_RIGHT", 118 },
146    { "FUNCTION", 119 },
147    { "SYSRQ", 120 },
148    { "BREAK", 121 },
149    { "MOVE_HOME", 122 },
150    { "MOVE_END", 123 },
151    { "INSERT", 124 },
152    { "FORWARD", 125 },
153    { "MEDIA_PLAY", 126 },
154    { "MEDIA_PAUSE", 127 },
155    { "MEDIA_CLOSE", 128 },
156    { "MEDIA_EJECT", 129 },
157    { "MEDIA_RECORD", 130 },
158    { "F1", 131 },
159    { "F2", 132 },
160    { "F3", 133 },
161    { "F4", 134 },
162    { "F5", 135 },
163    { "F6", 136 },
164    { "F7", 137 },
165    { "F8", 138 },
166    { "F9", 139 },
167    { "F10", 140 },
168    { "F11", 141 },
169    { "F12", 142 },
170    { "NUM_LOCK", 143 },
171    { "NUMPAD_0", 144 },
172    { "NUMPAD_1", 145 },
173    { "NUMPAD_2", 146 },
174    { "NUMPAD_3", 147 },
175    { "NUMPAD_4", 148 },
176    { "NUMPAD_5", 149 },
177    { "NUMPAD_6", 150 },
178    { "NUMPAD_7", 151 },
179    { "NUMPAD_8", 152 },
180    { "NUMPAD_9", 153 },
181    { "NUMPAD_DIVIDE", 154 },
182    { "NUMPAD_MULTIPLY", 155 },
183    { "NUMPAD_SUBTRACT", 156 },
184    { "NUMPAD_ADD", 157 },
185    { "NUMPAD_DOT", 158 },
186    { "NUMPAD_COMMA", 159 },
187    { "NUMPAD_ENTER", 160 },
188    { "NUMPAD_EQUALS", 161 },
189    { "NUMPAD_LEFT_PAREN", 162 },
190    { "NUMPAD_RIGHT_PAREN", 163 },
191    { "VOLUME_MUTE", 164 },
192    { "INFO", 165 },
193    { "CHANNEL_UP", 166 },
194    { "CHANNEL_DOWN", 167 },
195    { "ZOOM_IN", 168 },
196    { "ZOOM_OUT", 169 },
197    { "TV", 170 },
198    { "WINDOW", 171 },
199    { "GUIDE", 172 },
200    { "DVR", 173 },
201    { "BOOKMARK", 174 },
202    { "CAPTIONS", 175 },
203    { "SETTINGS", 176 },
204    { "TV_POWER", 177 },
205    { "TV_INPUT", 178 },
206    { "STB_POWER", 179 },
207    { "STB_INPUT", 180 },
208    { "AVR_POWER", 181 },
209    { "AVR_INPUT", 182 },
210    { "PROG_RED", 183 },
211    { "PROG_GREEN", 184 },
212    { "PROG_YELLOW", 185 },
213    { "PROG_BLUE", 186 },
214    { "APP_SWITCH", 187 },
215    { "BUTTON_1", 188 },
216    { "BUTTON_2", 189 },
217    { "BUTTON_3", 190 },
218    { "BUTTON_4", 191 },
219    { "BUTTON_5", 192 },
220    { "BUTTON_6", 193 },
221    { "BUTTON_7", 194 },
222    { "BUTTON_8", 195 },
223    { "BUTTON_9", 196 },
224    { "BUTTON_10", 197 },
225    { "BUTTON_11", 198 },
226    { "BUTTON_12", 199 },
227    { "BUTTON_13", 200 },
228    { "BUTTON_14", 201 },
229    { "BUTTON_15", 202 },
230    { "BUTTON_16", 203 },
231    { "LANGUAGE_SWITCH", 204 },
232    { "MANNER_MODE", 205 },
233    { "3D_MODE", 206 },
234    { "CONTACTS", 207 },
235    { "CALENDAR", 208 },
236    { "MUSIC", 209 },
237    { "CALCULATOR", 210 },
238    { "ZENKAKU_HANKAKU", 211 },
239    { "EISU", 212 },
240    { "MUHENKAN", 213 },
241    { "HENKAN", 214 },
242    { "KATAKANA_HIRAGANA", 215 },
243    { "YEN", 216 },
244    { "RO", 217 },
245    { "KANA", 218 },
246    { "ASSIST", 219 },
247    { "BRIGHTNESS_DOWN", 220 },
248    { "BRIGHTNESS_UP", 221 },
249    { "MEDIA_AUDIO_TRACK", 222 },
250
251    // NOTE: If you add a new keycode here you must also add it to several other files.
252    //       Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
253
254    { NULL, 0 }
255};
256
257// NOTE: If you edit these flags, also edit policy flags in Input.h.
258static const KeycodeLabel FLAGS[] = {
259    { "WAKE", 0x00000001 },
260    { "WAKE_DROPPED", 0x00000002 },
261    { "SHIFT", 0x00000004 },
262    { "CAPS_LOCK", 0x00000008 },
263    { "ALT", 0x00000010 },
264    { "ALT_GR", 0x00000020 },
265    { "MENU", 0x00000040 },
266    { "LAUNCHER", 0x00000080 },
267    { "VIRTUAL", 0x00000100 },
268    { "FUNCTION", 0x00000200 },
269    { NULL, 0 }
270};
271
272static const KeycodeLabel AXES[] = {
273    { "X", 0 },
274    { "Y", 1 },
275    { "PRESSURE", 2 },
276    { "SIZE", 3 },
277    { "TOUCH_MAJOR", 4 },
278    { "TOUCH_MINOR", 5 },
279    { "TOOL_MAJOR", 6 },
280    { "TOOL_MINOR", 7 },
281    { "ORIENTATION", 8 },
282    { "VSCROLL", 9 },
283    { "HSCROLL", 10 },
284    { "Z", 11 },
285    { "RX", 12 },
286    { "RY", 13 },
287    { "RZ", 14 },
288    { "HAT_X", 15 },
289    { "HAT_Y", 16 },
290    { "LTRIGGER", 17 },
291    { "RTRIGGER", 18 },
292    { "THROTTLE", 19 },
293    { "RUDDER", 20 },
294    { "WHEEL", 21 },
295    { "GAS", 22 },
296    { "BRAKE", 23 },
297    { "DISTANCE", 24 },
298    { "TILT", 25 },
299    { "GENERIC_1", 32 },
300    { "GENERIC_2", 33 },
301    { "GENERIC_3", 34 },
302    { "GENERIC_4", 35 },
303    { "GENERIC_5", 36 },
304    { "GENERIC_6", 37 },
305    { "GENERIC_7", 38 },
306    { "GENERIC_8", 39 },
307    { "GENERIC_9", 40 },
308    { "GENERIC_10", 41 },
309    { "GENERIC_11", 42 },
310    { "GENERIC_12", 43 },
311    { "GENERIC_13", 44 },
312    { "GENERIC_14", 45 },
313    { "GENERIC_15", 46 },
314    { "GENERIC_16", 47 },
315
316    // NOTE: If you add a new axis here you must also add it to several other files.
317    //       Refer to frameworks/base/core/java/android/view/MotionEvent.java for the full list.
318
319    { NULL, -1 }
320};
321
322#endif // _LIBINPUT_KEYCODE_LABELS_H
323