diff options
author | Elliott Hughes | 2015-03-25 18:40:13 -0500 |
---|---|---|
committer | Elliott Hughes | 2015-03-25 19:34:22 -0500 |
commit | c7f3c5c10cbe633683888a7e14a5fa436a2b32a6 (patch) | |
tree | 0bd49d1781861e92ca944ae4a4d468aeadfc7b04 /toolbox | |
parent | a0115bf78db6ef373754fade0fe4028ac8c88653 (diff) | |
download | platform-system-core-c7f3c5c10cbe633683888a7e14a5fa436a2b32a6.tar.gz platform-system-core-c7f3c5c10cbe633683888a7e14a5fa436a2b32a6.tar.xz platform-system-core-c7f3c5c10cbe633683888a7e14a5fa436a2b32a6.zip |
Auto-generate the getevent labels from <linux/input.h>.
Now we only have to remember to update the kernel uapi headers, which
we're pretty good at.
Change-Id: If04eb8c50882fff5e5e2a5d72664f5d4c4c538b1
Diffstat (limited to 'toolbox')
-rw-r--r-- | toolbox/Android.mk | 8 | ||||
-rwxr-xr-x | toolbox/generate-input.h-labels.py | 93 | ||||
-rw-r--r-- | toolbox/getevent.c | 20 | ||||
-rw-r--r-- | toolbox/getevent.h | 727 |
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 | |||
107 | INPUT_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. |
107 | include $(CLEAR_VARS) | 115 | include $(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 | |||
19 | import os | ||
20 | import re | ||
21 | |||
22 | input_prop_list = [] | ||
23 | ev_list = [] | ||
24 | syn_list = [] | ||
25 | key_list = [] | ||
26 | rel_list = [] | ||
27 | abs_list = [] | ||
28 | sw_list = [] | ||
29 | msc_list = [] | ||
30 | led_list = [] | ||
31 | rep_list = [] | ||
32 | snd_list = [] | ||
33 | mt_tool_list = [] | ||
34 | ff_status_list = [] | ||
35 | ff_list = [] | ||
36 | |||
37 | r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)') | ||
38 | |||
39 | with 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 | |||
73 | def 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 | |||
80 | Dump("input_prop_labels", input_prop_list) | ||
81 | Dump("ev_labels", ev_list) | ||
82 | Dump("syn_labels", syn_list) | ||
83 | Dump("key_labels", key_list) | ||
84 | Dump("rel_labels", rel_list) | ||
85 | Dump("abs_labels", abs_list) | ||
86 | Dump("sw_labels", sw_list) | ||
87 | Dump("msc_labels", msc_list) | ||
88 | Dump("led_labels", led_list) | ||
89 | Dump("rep_labels", rep_list) | ||
90 | Dump("snd_labels", snd_list) | ||
91 | Dump("mt_tool_labels", mt_tool_list) | ||
92 | Dump("ff_status_labels", ff_status_list) | ||
93 | Dump("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" | 15 | struct label { |
16 | const char *name; | ||
17 | int value; | ||
18 | }; | ||
19 | |||
20 | #define LABEL(constant) { #constant, constant } | ||
21 | #define LABEL_END { NULL, -1 } | ||
22 | |||
23 | static 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 | ||
17 | static struct pollfd *ufds; | 35 | static struct pollfd *ufds; |
18 | static char **device_names; | 36 | static 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 | |||
3 | struct label { | ||
4 | const char *name; | ||
5 | int value; | ||
6 | }; | ||
7 | |||
8 | #define LABEL(constant) { #constant, constant } | ||
9 | #define LABEL_END { NULL, -1 } | ||
10 | |||
11 | static 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 | |||
19 | static 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 | |||
35 | static 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 | |||
43 | static 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 | |||
543 | static 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 | |||
557 | static 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 | |||
600 | static 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 | |||
618 | static 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 | |||
627 | static 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 | |||
642 | static struct label rep_labels[] = { | ||
643 | LABEL(REP_DELAY), | ||
644 | LABEL(REP_PERIOD), | ||
645 | LABEL_END, | ||
646 | }; | ||
647 | |||
648 | static struct label snd_labels[] = { | ||
649 | LABEL(SND_CLICK), | ||
650 | LABEL(SND_BELL), | ||
651 | LABEL(SND_TONE), | ||
652 | LABEL_END, | ||
653 | }; | ||
654 | |||
655 | #if 0 | ||
656 | static 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 | |||
664 | static 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 | |||
688 | static 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 | |||
695 | static 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 | |||
702 | static 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 | |||
722 | static struct label key_value_labels[] = { | ||
723 | { "UP", 0 }, | ||
724 | { "DOWN", 1 }, | ||
725 | { "REPEAT", 2 }, | ||
726 | LABEL_END, | ||
727 | }; | ||