summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes2015-03-25 22:38:18 -0500
committerGerrit Code Review2015-03-25 22:38:19 -0500
commit09b66b93f17e639a6ff3994a51b6de61ca1c78d4 (patch)
tree0bd49d1781861e92ca944ae4a4d468aeadfc7b04
parenta0115bf78db6ef373754fade0fe4028ac8c88653 (diff)
parentc7f3c5c10cbe633683888a7e14a5fa436a2b32a6 (diff)
downloadplatform-system-core-09b66b93f17e639a6ff3994a51b6de61ca1c78d4.tar.gz
platform-system-core-09b66b93f17e639a6ff3994a51b6de61ca1c78d4.tar.xz
platform-system-core-09b66b93f17e639a6ff3994a51b6de61ca1c78d4.zip
Merge "Auto-generate the getevent labels from <linux/input.h>."
-rw-r--r--toolbox/Android.mk8
-rwxr-xr-xtoolbox/generate-input.h-labels.py93
-rw-r--r--toolbox/getevent.c20
-rw-r--r--toolbox/getevent.h727
4 files changed, 120 insertions, 728 deletions
diff --git a/toolbox/Android.mk b/toolbox/Android.mk
index 9b57d59e2..a0a9909aa 100644
--- a/toolbox/Android.mk
+++ b/toolbox/Android.mk
@@ -102,6 +102,14 @@ $(TOOLS_H): $(LOCAL_PATH)/Android.mk
102$(TOOLS_H): 102$(TOOLS_H):
103 $(transform-generated-source) 103 $(transform-generated-source)
104 104
105$(LOCAL_PATH)/getevent.c: $(intermediates)/input.h-labels.h
106
107INPUT_H_LABELS_H := $(intermediates)/input.h-labels.h
108$(INPUT_H_LABELS_H): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
109$(INPUT_H_LABELS_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_LOCAL_PATH)/generate-input.h-labels.py > $@
110$(INPUT_H_LABELS_H): $(LOCAL_PATH)/Android.mk $(LOCAL_PATH)/generate-input.h-labels.py
111$(INPUT_H_LABELS_H):
112 $(transform-generated-source)
105 113
106# We only want 'r' on userdebug and eng builds. 114# We only want 'r' on userdebug and eng builds.
107include $(CLEAR_VARS) 115include $(CLEAR_VARS)
diff --git a/toolbox/generate-input.h-labels.py b/toolbox/generate-input.h-labels.py
new file mode 100755
index 000000000..4d7904350
--- /dev/null
+++ b/toolbox/generate-input.h-labels.py
@@ -0,0 +1,93 @@
1#!/usr/bin/env python
2#
3# Copyright (C) 2015 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the 'License');
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an 'AS IS' BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17# pylint: disable=bad-indentation,bad-continuation
18
19import os
20import re
21
22input_prop_list = []
23ev_list = []
24syn_list = []
25key_list = []
26rel_list = []
27abs_list = []
28sw_list = []
29msc_list = []
30led_list = []
31rep_list = []
32snd_list = []
33mt_tool_list = []
34ff_status_list = []
35ff_list = []
36
37r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)')
38
39with open(os.environ['ANDROID_BUILD_TOP'] + '/bionic/libc/kernel/uapi/linux/input.h', 'r') as f:
40 for line in f:
41 m = r.match(line)
42 if m:
43 name = m.group(1)
44 if name.startswith("INPUT_PROP_"):
45 input_prop_list.append(name)
46 elif name.startswith("EV_"):
47 ev_list.append(name)
48 elif name.startswith("SYN_"):
49 syn_list.append(name)
50 elif name.startswith("KEY_") or name.startswith("BTN_"):
51 key_list.append(name)
52 elif name.startswith("REL_"):
53 rel_list.append(name)
54 elif name.startswith("ABS_"):
55 abs_list.append(name)
56 elif name.startswith("SW_"):
57 sw_list.append(name)
58 elif name.startswith("MSC_"):
59 msc_list.append(name)
60 elif name.startswith("LED_"):
61 led_list.append(name)
62 elif name.startswith("REP_"):
63 rep_list.append(name)
64 elif name.startswith("SND_"):
65 snd_list.append(name)
66 elif name.startswith("MT_TOOL_"):
67 mt_tool_list.append(name)
68 elif name.startswith("FF_STATUS_"):
69 ff_status_list.append(name)
70 elif name.startswith("FF_"):
71 ff_list.append(name)
72
73def Dump(struct_name, values):
74 print 'static struct label %s[] = {' % (struct_name)
75 for value in values:
76 print ' LABEL(%s),' % (value)
77 print ' LABEL_END,'
78 print '};'
79
80Dump("input_prop_labels", input_prop_list)
81Dump("ev_labels", ev_list)
82Dump("syn_labels", syn_list)
83Dump("key_labels", key_list)
84Dump("rel_labels", rel_list)
85Dump("abs_labels", abs_list)
86Dump("sw_labels", sw_list)
87Dump("msc_labels", msc_list)
88Dump("led_labels", led_list)
89Dump("rep_labels", rep_list)
90Dump("snd_labels", snd_list)
91Dump("mt_tool_labels", mt_tool_list)
92Dump("ff_status_labels", ff_status_list)
93Dump("ff_labels", ff_list)
diff --git a/toolbox/getevent.c b/toolbox/getevent.c
index c58eb5d1c..30053af80 100644
--- a/toolbox/getevent.c
+++ b/toolbox/getevent.c
@@ -12,7 +12,25 @@
12#include <errno.h> 12#include <errno.h>
13#include <unistd.h> 13#include <unistd.h>
14 14
15#include "getevent.h" 15struct label {
16 const char *name;
17 int value;
18};
19
20#define LABEL(constant) { #constant, constant }
21#define LABEL_END { NULL, -1 }
22
23static struct label key_value_labels[] = {
24 { "UP", 0 },
25 { "DOWN", 1 },
26 { "REPEAT", 2 },
27 LABEL_END,
28};
29
30#include "input.h-labels.h"
31
32#undef LABEL
33#undef LABEL_END
16 34
17static struct pollfd *ufds; 35static struct pollfd *ufds;
18static char **device_names; 36static char **device_names;
diff --git a/toolbox/getevent.h b/toolbox/getevent.h
deleted file mode 100644
index 0482d04cf..000000000
--- a/toolbox/getevent.h
+++ /dev/null
@@ -1,727 +0,0 @@
1#include <linux/input.h>
2
3struct label {
4 const char *name;
5 int value;
6};
7
8#define LABEL(constant) { #constant, constant }
9#define LABEL_END { NULL, -1 }
10
11static struct label input_prop_labels[] = {
12 LABEL(INPUT_PROP_POINTER),
13 LABEL(INPUT_PROP_DIRECT),
14 LABEL(INPUT_PROP_BUTTONPAD),
15 LABEL(INPUT_PROP_SEMI_MT),
16 LABEL_END,
17};
18
19static struct label ev_labels[] = {
20 LABEL(EV_SYN),
21 LABEL(EV_KEY),
22 LABEL(EV_REL),
23 LABEL(EV_ABS),
24 LABEL(EV_MSC),
25 LABEL(EV_SW),
26 LABEL(EV_LED),
27 LABEL(EV_SND),
28 LABEL(EV_REP),
29 LABEL(EV_FF),
30 LABEL(EV_PWR),
31 LABEL(EV_FF_STATUS),
32 LABEL_END,
33};
34
35static struct label syn_labels[] = {
36 LABEL(SYN_REPORT),
37 LABEL(SYN_CONFIG),
38 LABEL(SYN_MT_REPORT),
39 LABEL(SYN_DROPPED),
40 LABEL_END,
41};
42
43static struct label key_labels[] = {
44 LABEL(KEY_RESERVED),
45 LABEL(KEY_ESC),
46 LABEL(KEY_1),
47 LABEL(KEY_2),
48 LABEL(KEY_3),
49 LABEL(KEY_4),
50 LABEL(KEY_5),
51 LABEL(KEY_6),
52 LABEL(KEY_7),
53 LABEL(KEY_8),
54 LABEL(KEY_9),
55 LABEL(KEY_0),
56 LABEL(KEY_MINUS),
57 LABEL(KEY_EQUAL),
58 LABEL(KEY_BACKSPACE),
59 LABEL(KEY_TAB),
60 LABEL(KEY_Q),
61 LABEL(KEY_W),
62 LABEL(KEY_E),
63 LABEL(KEY_R),
64 LABEL(KEY_T),
65 LABEL(KEY_Y),
66 LABEL(KEY_U),
67 LABEL(KEY_I),
68 LABEL(KEY_O),
69 LABEL(KEY_P),
70 LABEL(KEY_LEFTBRACE),
71 LABEL(KEY_RIGHTBRACE),
72 LABEL(KEY_ENTER),
73 LABEL(KEY_LEFTCTRL),
74 LABEL(KEY_A),
75 LABEL(KEY_S),
76 LABEL(KEY_D),
77 LABEL(KEY_F),
78 LABEL(KEY_G),
79 LABEL(KEY_H),
80 LABEL(KEY_J),
81 LABEL(KEY_K),
82 LABEL(KEY_L),
83 LABEL(KEY_SEMICOLON),
84 LABEL(KEY_APOSTROPHE),
85 LABEL(KEY_GRAVE),
86 LABEL(KEY_LEFTSHIFT),
87 LABEL(KEY_BACKSLASH),
88 LABEL(KEY_Z),
89 LABEL(KEY_X),
90 LABEL(KEY_C),
91 LABEL(KEY_V),
92 LABEL(KEY_B),
93 LABEL(KEY_N),
94 LABEL(KEY_M),
95 LABEL(KEY_COMMA),
96 LABEL(KEY_DOT),
97 LABEL(KEY_SLASH),
98 LABEL(KEY_RIGHTSHIFT),
99 LABEL(KEY_KPASTERISK),
100 LABEL(KEY_LEFTALT),
101 LABEL(KEY_SPACE),
102 LABEL(KEY_CAPSLOCK),
103 LABEL(KEY_F1),
104 LABEL(KEY_F2),
105 LABEL(KEY_F3),
106 LABEL(KEY_F4),
107 LABEL(KEY_F5),
108 LABEL(KEY_F6),
109 LABEL(KEY_F7),
110 LABEL(KEY_F8),
111 LABEL(KEY_F9),
112 LABEL(KEY_F10),
113 LABEL(KEY_NUMLOCK),
114 LABEL(KEY_SCROLLLOCK),
115 LABEL(KEY_KP7),
116 LABEL(KEY_KP8),
117 LABEL(KEY_KP9),
118 LABEL(KEY_KPMINUS),
119 LABEL(KEY_KP4),
120 LABEL(KEY_KP5),
121 LABEL(KEY_KP6),
122 LABEL(KEY_KPPLUS),
123 LABEL(KEY_KP1),
124 LABEL(KEY_KP2),
125 LABEL(KEY_KP3),
126 LABEL(KEY_KP0),
127 LABEL(KEY_KPDOT),
128 LABEL(KEY_ZENKAKUHANKAKU),
129 LABEL(KEY_102ND),
130 LABEL(KEY_F11),
131 LABEL(KEY_F12),
132 LABEL(KEY_RO),
133 LABEL(KEY_KATAKANA),
134 LABEL(KEY_HIRAGANA),
135 LABEL(KEY_HENKAN),
136 LABEL(KEY_KATAKANAHIRAGANA),
137 LABEL(KEY_MUHENKAN),
138 LABEL(KEY_KPJPCOMMA),
139 LABEL(KEY_KPENTER),
140 LABEL(KEY_RIGHTCTRL),
141 LABEL(KEY_KPSLASH),
142 LABEL(KEY_SYSRQ),
143 LABEL(KEY_RIGHTALT),
144 LABEL(KEY_LINEFEED),
145 LABEL(KEY_HOME),
146 LABEL(KEY_UP),
147 LABEL(KEY_PAGEUP),
148 LABEL(KEY_LEFT),
149 LABEL(KEY_RIGHT),
150 LABEL(KEY_END),
151 LABEL(KEY_DOWN),
152 LABEL(KEY_PAGEDOWN),
153 LABEL(KEY_INSERT),
154 LABEL(KEY_DELETE),
155 LABEL(KEY_MACRO),
156 LABEL(KEY_MUTE),
157 LABEL(KEY_VOLUMEDOWN),
158 LABEL(KEY_VOLUMEUP),
159 LABEL(KEY_POWER),
160 LABEL(KEY_KPEQUAL),
161 LABEL(KEY_KPPLUSMINUS),
162 LABEL(KEY_PAUSE),
163 LABEL(KEY_SCALE),
164 LABEL(KEY_KPCOMMA),
165 LABEL(KEY_HANGEUL),
166 LABEL(KEY_HANGUEL),
167 LABEL(KEY_HANJA),
168 LABEL(KEY_YEN),
169 LABEL(KEY_LEFTMETA),
170 LABEL(KEY_RIGHTMETA),
171 LABEL(KEY_COMPOSE),
172 LABEL(KEY_STOP),
173 LABEL(KEY_AGAIN),
174 LABEL(KEY_PROPS),
175 LABEL(KEY_UNDO),
176 LABEL(KEY_FRONT),
177 LABEL(KEY_COPY),
178 LABEL(KEY_OPEN),
179 LABEL(KEY_PASTE),
180 LABEL(KEY_FIND),
181 LABEL(KEY_CUT),
182 LABEL(KEY_HELP),
183 LABEL(KEY_MENU),
184 LABEL(KEY_CALC),
185 LABEL(KEY_SETUP),
186 LABEL(KEY_SLEEP),
187 LABEL(KEY_WAKEUP),
188 LABEL(KEY_FILE),
189 LABEL(KEY_SENDFILE),
190 LABEL(KEY_DELETEFILE),
191 LABEL(KEY_XFER),
192 LABEL(KEY_PROG1),
193 LABEL(KEY_PROG2),
194 LABEL(KEY_WWW),
195 LABEL(KEY_MSDOS),
196 LABEL(KEY_COFFEE),
197 LABEL(KEY_SCREENLOCK),
198 LABEL(KEY_DIRECTION),
199 LABEL(KEY_CYCLEWINDOWS),
200 LABEL(KEY_MAIL),
201 LABEL(KEY_BOOKMARKS),
202 LABEL(KEY_COMPUTER),
203 LABEL(KEY_BACK),
204 LABEL(KEY_FORWARD),
205 LABEL(KEY_CLOSECD),
206 LABEL(KEY_EJECTCD),
207 LABEL(KEY_EJECTCLOSECD),
208 LABEL(KEY_NEXTSONG),
209 LABEL(KEY_PLAYPAUSE),
210 LABEL(KEY_PREVIOUSSONG),
211 LABEL(KEY_STOPCD),
212 LABEL(KEY_RECORD),
213 LABEL(KEY_REWIND),
214 LABEL(KEY_PHONE),
215 LABEL(KEY_ISO),
216 LABEL(KEY_CONFIG),
217 LABEL(KEY_HOMEPAGE),
218 LABEL(KEY_REFRESH),
219 LABEL(KEY_EXIT),
220 LABEL(KEY_MOVE),
221 LABEL(KEY_EDIT),
222 LABEL(KEY_SCROLLUP),
223 LABEL(KEY_SCROLLDOWN),
224 LABEL(KEY_KPLEFTPAREN),
225 LABEL(KEY_KPRIGHTPAREN),
226 LABEL(KEY_NEW),
227 LABEL(KEY_REDO),
228 LABEL(KEY_F13),
229 LABEL(KEY_F14),
230 LABEL(KEY_F15),
231 LABEL(KEY_F16),
232 LABEL(KEY_F17),
233 LABEL(KEY_F18),
234 LABEL(KEY_F19),
235 LABEL(KEY_F20),
236 LABEL(KEY_F21),
237 LABEL(KEY_F22),
238 LABEL(KEY_F23),
239 LABEL(KEY_F24),
240 LABEL(KEY_PLAYCD),
241 LABEL(KEY_PAUSECD),
242 LABEL(KEY_PROG3),
243 LABEL(KEY_PROG4),
244 LABEL(KEY_DASHBOARD),
245 LABEL(KEY_SUSPEND),
246 LABEL(KEY_CLOSE),
247 LABEL(KEY_PLAY),
248 LABEL(KEY_FASTFORWARD),
249 LABEL(KEY_BASSBOOST),
250 LABEL(KEY_PRINT),
251 LABEL(KEY_HP),
252 LABEL(KEY_CAMERA),
253 LABEL(KEY_SOUND),
254 LABEL(KEY_QUESTION),
255 LABEL(KEY_EMAIL),
256 LABEL(KEY_CHAT),
257 LABEL(KEY_SEARCH),
258 LABEL(KEY_CONNECT),
259 LABEL(KEY_FINANCE),
260 LABEL(KEY_SPORT),
261 LABEL(KEY_SHOP),
262 LABEL(KEY_ALTERASE),
263 LABEL(KEY_CANCEL),
264 LABEL(KEY_BRIGHTNESSDOWN),
265 LABEL(KEY_BRIGHTNESSUP),
266 LABEL(KEY_MEDIA),
267 LABEL(KEY_SWITCHVIDEOMODE),
268 LABEL(KEY_KBDILLUMTOGGLE),
269 LABEL(KEY_KBDILLUMDOWN),
270 LABEL(KEY_KBDILLUMUP),
271 LABEL(KEY_SEND),
272 LABEL(KEY_REPLY),
273 LABEL(KEY_FORWARDMAIL),
274 LABEL(KEY_SAVE),
275 LABEL(KEY_DOCUMENTS),
276 LABEL(KEY_BATTERY),
277 LABEL(KEY_BLUETOOTH),
278 LABEL(KEY_WLAN),
279 LABEL(KEY_UWB),
280 LABEL(KEY_UNKNOWN),
281 LABEL(KEY_VIDEO_NEXT),
282 LABEL(KEY_VIDEO_PREV),
283 LABEL(KEY_BRIGHTNESS_CYCLE),
284 LABEL(KEY_BRIGHTNESS_ZERO),
285 LABEL(KEY_DISPLAY_OFF),
286 LABEL(KEY_WIMAX),
287 LABEL(KEY_RFKILL),
288 LABEL(BTN_0),
289 LABEL(BTN_1),
290 LABEL(BTN_2),
291 LABEL(BTN_3),
292 LABEL(BTN_4),
293 LABEL(BTN_5),
294 LABEL(BTN_6),
295 LABEL(BTN_7),
296 LABEL(BTN_8),
297 LABEL(BTN_9),
298 LABEL(BTN_LEFT),
299 LABEL(BTN_RIGHT),
300 LABEL(BTN_MIDDLE),
301 LABEL(BTN_SIDE),
302 LABEL(BTN_EXTRA),
303 LABEL(BTN_FORWARD),
304 LABEL(BTN_BACK),
305 LABEL(BTN_TASK),
306 LABEL(BTN_JOYSTICK),
307 LABEL(BTN_TRIGGER),
308 LABEL(BTN_THUMB),
309 LABEL(BTN_THUMB2),
310 LABEL(BTN_TOP),
311 LABEL(BTN_TOP2),
312 LABEL(BTN_PINKIE),
313 LABEL(BTN_BASE),
314 LABEL(BTN_BASE2),
315 LABEL(BTN_BASE3),
316 LABEL(BTN_BASE4),
317 LABEL(BTN_BASE5),
318 LABEL(BTN_BASE6),
319 LABEL(BTN_DEAD),
320 LABEL(BTN_A),
321 LABEL(BTN_B),
322 LABEL(BTN_C),
323 LABEL(BTN_X),
324 LABEL(BTN_Y),
325 LABEL(BTN_Z),
326 LABEL(BTN_TL),
327 LABEL(BTN_TR),
328 LABEL(BTN_TL2),
329 LABEL(BTN_TR2),
330 LABEL(BTN_SELECT),
331 LABEL(BTN_START),
332 LABEL(BTN_MODE),
333 LABEL(BTN_THUMBL),
334 LABEL(BTN_THUMBR),
335 LABEL(BTN_TOOL_PEN),
336 LABEL(BTN_TOOL_RUBBER),
337 LABEL(BTN_TOOL_BRUSH),
338 LABEL(BTN_TOOL_PENCIL),
339 LABEL(BTN_TOOL_AIRBRUSH),
340 LABEL(BTN_TOOL_FINGER),
341 LABEL(BTN_TOOL_MOUSE),
342 LABEL(BTN_TOOL_LENS),
343 LABEL(BTN_TOUCH),
344 LABEL(BTN_STYLUS),
345 LABEL(BTN_STYLUS2),
346 LABEL(BTN_TOOL_DOUBLETAP),
347 LABEL(BTN_TOOL_TRIPLETAP),
348 LABEL(BTN_TOOL_QUADTAP),
349 LABEL(BTN_GEAR_DOWN),
350 LABEL(BTN_GEAR_UP),
351 LABEL(KEY_OK),
352 LABEL(KEY_SELECT),
353 LABEL(KEY_GOTO),
354 LABEL(KEY_CLEAR),
355 LABEL(KEY_POWER2),
356 LABEL(KEY_OPTION),
357 LABEL(KEY_INFO),
358 LABEL(KEY_TIME),
359 LABEL(KEY_VENDOR),
360 LABEL(KEY_ARCHIVE),
361 LABEL(KEY_PROGRAM),
362 LABEL(KEY_CHANNEL),
363 LABEL(KEY_FAVORITES),
364 LABEL(KEY_EPG),
365 LABEL(KEY_PVR),
366 LABEL(KEY_MHP),
367 LABEL(KEY_LANGUAGE),
368 LABEL(KEY_TITLE),
369 LABEL(KEY_SUBTITLE),
370 LABEL(KEY_ANGLE),
371 LABEL(KEY_ZOOM),
372 LABEL(KEY_MODE),
373 LABEL(KEY_KEYBOARD),
374 LABEL(KEY_SCREEN),
375 LABEL(KEY_PC),
376 LABEL(KEY_TV),
377 LABEL(KEY_TV2),
378 LABEL(KEY_VCR),
379 LABEL(KEY_VCR2),
380 LABEL(KEY_SAT),
381 LABEL(KEY_SAT2),
382 LABEL(KEY_CD),
383 LABEL(KEY_TAPE),
384 LABEL(KEY_RADIO),
385 LABEL(KEY_TUNER),
386 LABEL(KEY_PLAYER),
387 LABEL(KEY_TEXT),
388 LABEL(KEY_DVD),
389 LABEL(KEY_AUX),
390 LABEL(KEY_MP3),
391 LABEL(KEY_AUDIO),
392 LABEL(KEY_VIDEO),
393 LABEL(KEY_DIRECTORY),
394 LABEL(KEY_LIST),
395 LABEL(KEY_MEMO),
396 LABEL(KEY_CALENDAR),
397 LABEL(KEY_RED),
398 LABEL(KEY_GREEN),
399 LABEL(KEY_YELLOW),
400 LABEL(KEY_BLUE),
401 LABEL(KEY_CHANNELUP),
402 LABEL(KEY_CHANNELDOWN),
403 LABEL(KEY_FIRST),
404 LABEL(KEY_LAST),
405 LABEL(KEY_AB),
406 LABEL(KEY_NEXT),
407 LABEL(KEY_RESTART),
408 LABEL(KEY_SLOW),
409 LABEL(KEY_SHUFFLE),
410 LABEL(KEY_BREAK),
411 LABEL(KEY_PREVIOUS),
412 LABEL(KEY_DIGITS),
413 LABEL(KEY_TEEN),
414 LABEL(KEY_TWEN),
415 LABEL(KEY_VIDEOPHONE),
416 LABEL(KEY_GAMES),
417 LABEL(KEY_ZOOMIN),
418 LABEL(KEY_ZOOMOUT),
419 LABEL(KEY_ZOOMRESET),
420 LABEL(KEY_WORDPROCESSOR),
421 LABEL(KEY_EDITOR),
422 LABEL(KEY_SPREADSHEET),
423 LABEL(KEY_GRAPHICSEDITOR),
424 LABEL(KEY_PRESENTATION),
425 LABEL(KEY_DATABASE),
426 LABEL(KEY_NEWS),
427 LABEL(KEY_VOICEMAIL),
428 LABEL(KEY_ADDRESSBOOK),
429 LABEL(KEY_MESSENGER),
430 LABEL(KEY_DISPLAYTOGGLE),
431 LABEL(KEY_SPELLCHECK),
432 LABEL(KEY_LOGOFF),
433 LABEL(KEY_DOLLAR),
434 LABEL(KEY_EURO),
435 LABEL(KEY_FRAMEBACK),
436 LABEL(KEY_FRAMEFORWARD),
437 LABEL(KEY_CONTEXT_MENU),
438 LABEL(KEY_MEDIA_REPEAT),
439 LABEL(KEY_10CHANNELSUP),
440 LABEL(KEY_10CHANNELSDOWN),
441 LABEL(KEY_IMAGES),
442 LABEL(KEY_DEL_EOL),
443 LABEL(KEY_DEL_EOS),
444 LABEL(KEY_INS_LINE),
445 LABEL(KEY_DEL_LINE),
446 LABEL(KEY_FN),
447 LABEL(KEY_FN_ESC),
448 LABEL(KEY_FN_F1),
449 LABEL(KEY_FN_F2),
450 LABEL(KEY_FN_F3),
451 LABEL(KEY_FN_F4),
452 LABEL(KEY_FN_F5),
453 LABEL(KEY_FN_F6),
454 LABEL(KEY_FN_F7),
455 LABEL(KEY_FN_F8),
456 LABEL(KEY_FN_F9),
457 LABEL(KEY_FN_F10),
458 LABEL(KEY_FN_F11),
459 LABEL(KEY_FN_F12),
460 LABEL(KEY_FN_1),
461 LABEL(KEY_FN_2),
462 LABEL(KEY_FN_D),
463 LABEL(KEY_FN_E),
464 LABEL(KEY_FN_F),
465 LABEL(KEY_FN_S),
466 LABEL(KEY_FN_B),
467 LABEL(KEY_BRL_DOT1),
468 LABEL(KEY_BRL_DOT2),
469 LABEL(KEY_BRL_DOT3),
470 LABEL(KEY_BRL_DOT4),
471 LABEL(KEY_BRL_DOT5),
472 LABEL(KEY_BRL_DOT6),
473 LABEL(KEY_BRL_DOT7),
474 LABEL(KEY_BRL_DOT8),
475 LABEL(KEY_BRL_DOT9),
476 LABEL(KEY_BRL_DOT10),
477 LABEL(KEY_NUMERIC_0),
478 LABEL(KEY_NUMERIC_1),
479 LABEL(KEY_NUMERIC_2),
480 LABEL(KEY_NUMERIC_3),
481 LABEL(KEY_NUMERIC_4),
482 LABEL(KEY_NUMERIC_5),
483 LABEL(KEY_NUMERIC_6),
484 LABEL(KEY_NUMERIC_7),
485 LABEL(KEY_NUMERIC_8),
486 LABEL(KEY_NUMERIC_9),
487 LABEL(KEY_NUMERIC_STAR),
488 LABEL(KEY_NUMERIC_POUND),
489 LABEL(KEY_CAMERA_FOCUS),
490 LABEL(KEY_WPS_BUTTON),
491 LABEL(KEY_TOUCHPAD_TOGGLE),
492 LABEL(KEY_TOUCHPAD_ON),
493 LABEL(KEY_TOUCHPAD_OFF),
494 LABEL(KEY_CAMERA_ZOOMIN),
495 LABEL(KEY_CAMERA_ZOOMOUT),
496 LABEL(KEY_CAMERA_UP),
497 LABEL(KEY_CAMERA_DOWN),
498 LABEL(KEY_CAMERA_LEFT),
499 LABEL(KEY_CAMERA_RIGHT),
500 LABEL(BTN_TRIGGER_HAPPY1),
501 LABEL(BTN_TRIGGER_HAPPY2),
502 LABEL(BTN_TRIGGER_HAPPY3),
503 LABEL(BTN_TRIGGER_HAPPY4),
504 LABEL(BTN_TRIGGER_HAPPY5),
505 LABEL(BTN_TRIGGER_HAPPY6),
506 LABEL(BTN_TRIGGER_HAPPY7),
507 LABEL(BTN_TRIGGER_HAPPY8),
508 LABEL(BTN_TRIGGER_HAPPY9),
509 LABEL(BTN_TRIGGER_HAPPY10),
510 LABEL(BTN_TRIGGER_HAPPY11),
511 LABEL(BTN_TRIGGER_HAPPY12),
512 LABEL(BTN_TRIGGER_HAPPY13),
513 LABEL(BTN_TRIGGER_HAPPY14),
514 LABEL(BTN_TRIGGER_HAPPY15),
515 LABEL(BTN_TRIGGER_HAPPY16),
516 LABEL(BTN_TRIGGER_HAPPY17),
517 LABEL(BTN_TRIGGER_HAPPY18),
518 LABEL(BTN_TRIGGER_HAPPY19),
519 LABEL(BTN_TRIGGER_HAPPY20),
520 LABEL(BTN_TRIGGER_HAPPY21),
521 LABEL(BTN_TRIGGER_HAPPY22),
522 LABEL(BTN_TRIGGER_HAPPY23),
523 LABEL(BTN_TRIGGER_HAPPY24),
524 LABEL(BTN_TRIGGER_HAPPY25),
525 LABEL(BTN_TRIGGER_HAPPY26),
526 LABEL(BTN_TRIGGER_HAPPY27),
527 LABEL(BTN_TRIGGER_HAPPY28),
528 LABEL(BTN_TRIGGER_HAPPY29),
529 LABEL(BTN_TRIGGER_HAPPY30),
530 LABEL(BTN_TRIGGER_HAPPY31),
531 LABEL(BTN_TRIGGER_HAPPY32),
532 LABEL(BTN_TRIGGER_HAPPY33),
533 LABEL(BTN_TRIGGER_HAPPY34),
534 LABEL(BTN_TRIGGER_HAPPY35),
535 LABEL(BTN_TRIGGER_HAPPY36),
536 LABEL(BTN_TRIGGER_HAPPY37),
537 LABEL(BTN_TRIGGER_HAPPY38),
538 LABEL(BTN_TRIGGER_HAPPY39),
539 LABEL(BTN_TRIGGER_HAPPY40),
540 LABEL_END,
541};
542
543static struct label rel_labels[] = {
544 LABEL(REL_X),
545 LABEL(REL_Y),
546 LABEL(REL_Z),
547 LABEL(REL_RX),
548 LABEL(REL_RY),
549 LABEL(REL_RZ),
550 LABEL(REL_HWHEEL),
551 LABEL(REL_DIAL),
552 LABEL(REL_WHEEL),
553 LABEL(REL_MISC),
554 LABEL_END,
555};
556
557static struct label abs_labels[] = {
558 LABEL(ABS_X),
559 LABEL(ABS_Y),
560 LABEL(ABS_Z),
561 LABEL(ABS_RX),
562 LABEL(ABS_RY),
563 LABEL(ABS_RZ),
564 LABEL(ABS_THROTTLE),
565 LABEL(ABS_RUDDER),
566 LABEL(ABS_WHEEL),
567 LABEL(ABS_GAS),
568 LABEL(ABS_BRAKE),
569 LABEL(ABS_HAT0X),
570 LABEL(ABS_HAT0Y),
571 LABEL(ABS_HAT1X),
572 LABEL(ABS_HAT1Y),
573 LABEL(ABS_HAT2X),
574 LABEL(ABS_HAT2Y),
575 LABEL(ABS_HAT3X),
576 LABEL(ABS_HAT3Y),
577 LABEL(ABS_PRESSURE),
578 LABEL(ABS_DISTANCE),
579 LABEL(ABS_TILT_X),
580 LABEL(ABS_TILT_Y),
581 LABEL(ABS_TOOL_WIDTH),
582 LABEL(ABS_VOLUME),
583 LABEL(ABS_MISC),
584 LABEL(ABS_MT_SLOT),
585 LABEL(ABS_MT_TOUCH_MAJOR),
586 LABEL(ABS_MT_TOUCH_MINOR),
587 LABEL(ABS_MT_WIDTH_MAJOR),
588 LABEL(ABS_MT_WIDTH_MINOR),
589 LABEL(ABS_MT_ORIENTATION),
590 LABEL(ABS_MT_POSITION_X),
591 LABEL(ABS_MT_POSITION_Y),
592 LABEL(ABS_MT_TOOL_TYPE),
593 LABEL(ABS_MT_BLOB_ID),
594 LABEL(ABS_MT_TRACKING_ID),
595 LABEL(ABS_MT_PRESSURE),
596 LABEL(ABS_MT_DISTANCE),
597 LABEL_END,
598};
599
600static struct label sw_labels[] = {
601 LABEL(SW_LID),
602 LABEL(SW_TABLET_MODE),
603 LABEL(SW_HEADPHONE_INSERT),
604 LABEL(SW_RFKILL_ALL),
605 LABEL(SW_RADIO),
606 LABEL(SW_MICROPHONE_INSERT),
607 LABEL(SW_DOCK),
608 LABEL(SW_LINEOUT_INSERT),
609 LABEL(SW_JACK_PHYSICAL_INSERT),
610 LABEL(SW_VIDEOOUT_INSERT),
611 LABEL(SW_CAMERA_LENS_COVER),
612 LABEL(SW_KEYPAD_SLIDE),
613 LABEL(SW_FRONT_PROXIMITY),
614 LABEL(SW_ROTATE_LOCK),
615 LABEL_END,
616};
617
618static struct label msc_labels[] = {
619 LABEL(MSC_SERIAL),
620 LABEL(MSC_PULSELED),
621 LABEL(MSC_GESTURE),
622 LABEL(MSC_RAW),
623 LABEL(MSC_SCAN),
624 LABEL_END,
625};
626
627static struct label led_labels[] = {
628 LABEL(LED_NUML),
629 LABEL(LED_CAPSL),
630 LABEL(LED_SCROLLL),
631 LABEL(LED_COMPOSE),
632 LABEL(LED_KANA),
633 LABEL(LED_SLEEP),
634 LABEL(LED_SUSPEND),
635 LABEL(LED_MUTE),
636 LABEL(LED_MISC),
637 LABEL(LED_MAIL),
638 LABEL(LED_CHARGING),
639 LABEL_END,
640};
641
642static struct label rep_labels[] = {
643 LABEL(REP_DELAY),
644 LABEL(REP_PERIOD),
645 LABEL_END,
646};
647
648static struct label snd_labels[] = {
649 LABEL(SND_CLICK),
650 LABEL(SND_BELL),
651 LABEL(SND_TONE),
652 LABEL_END,
653};
654
655#if 0
656static struct label id_labels[] = {
657 LABEL(ID_BUS),
658 LABEL(ID_VENDOR),
659 LABEL(ID_PRODUCT),
660 LABEL(ID_VERSION),
661 LABEL_END,
662};
663
664static struct label bus_labels[] = {
665 LABEL(BUS_PCI),
666 LABEL(BUS_ISAPNP),
667 LABEL(BUS_USB),
668 LABEL(BUS_HIL),
669 LABEL(BUS_BLUETOOTH),
670 LABEL(BUS_VIRTUAL),
671 LABEL(BUS_ISA),
672 LABEL(BUS_I8042),
673 LABEL(BUS_XTKBD),
674 LABEL(BUS_RS232),
675 LABEL(BUS_GAMEPORT),
676 LABEL(BUS_PARPORT),
677 LABEL(BUS_AMIGA),
678 LABEL(BUS_ADB),
679 LABEL(BUS_I2C),
680 LABEL(BUS_HOST),
681 LABEL(BUS_GSC),
682 LABEL(BUS_ATARI),
683 LABEL(BUS_SPI),
684 LABEL_END,
685};
686#endif
687
688static struct label mt_tool_labels[] = {
689 LABEL(MT_TOOL_FINGER),
690 LABEL(MT_TOOL_PEN),
691 LABEL(MT_TOOL_MAX),
692 LABEL_END,
693};
694
695static struct label ff_status_labels[] = {
696 LABEL(FF_STATUS_STOPPED),
697 LABEL(FF_STATUS_PLAYING),
698 LABEL(FF_STATUS_MAX),
699 LABEL_END,
700};
701
702static struct label ff_labels[] = {
703 LABEL(FF_RUMBLE),
704 LABEL(FF_PERIODIC),
705 LABEL(FF_CONSTANT),
706 LABEL(FF_SPRING),
707 LABEL(FF_FRICTION),
708 LABEL(FF_DAMPER),
709 LABEL(FF_INERTIA),
710 LABEL(FF_RAMP),
711 LABEL(FF_SQUARE),
712 LABEL(FF_TRIANGLE),
713 LABEL(FF_SINE),
714 LABEL(FF_SAW_UP),
715 LABEL(FF_SAW_DOWN),
716 LABEL(FF_CUSTOM),
717 LABEL(FF_GAIN),
718 LABEL(FF_AUTOCENTER),
719 LABEL_END,
720};
721
722static struct label key_value_labels[] = {
723 { "UP", 0 },
724 { "DOWN", 1 },
725 { "REPEAT", 2 },
726 LABEL_END,
727};