blob: c0e9fce6e82f7423bfeef70a4b7541f39d68d313 [file] [log] [blame]
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -07001#!/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
Bernhard Rosenkränzerc434cf82016-02-23 20:54:35 +010019from __future__ import print_function
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070020import os
21import re
Elliott Hughesbd02a472016-02-08 14:09:10 -080022import sys
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070023
24input_prop_list = []
25ev_list = []
26syn_list = []
27key_list = []
28rel_list = []
29abs_list = []
30sw_list = []
31msc_list = []
32led_list = []
33rep_list = []
34snd_list = []
35mt_tool_list = []
36ff_status_list = []
37ff_list = []
38
39r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)')
40
Elliott Hughesb22b9982016-06-29 14:12:29 -070041for arg in sys.argv[1:]:
42 with open(arg, 'r') as f:
43 for line in f:
44 m = r.match(line)
45 if m:
46 name = m.group(1)
47 if name.startswith("INPUT_PROP_"):
48 input_prop_list.append(name)
49 elif name.startswith("EV_"):
50 ev_list.append(name)
51 elif name.startswith("SYN_"):
52 syn_list.append(name)
53 elif name.startswith("KEY_") or name.startswith("BTN_"):
54 key_list.append(name)
55 elif name.startswith("REL_"):
56 rel_list.append(name)
57 elif name.startswith("ABS_"):
58 abs_list.append(name)
59 elif name.startswith("SW_"):
60 sw_list.append(name)
61 elif name.startswith("MSC_"):
62 msc_list.append(name)
63 elif name.startswith("LED_"):
64 led_list.append(name)
65 elif name.startswith("REP_"):
66 rep_list.append(name)
67 elif name.startswith("SND_"):
68 snd_list.append(name)
69 elif name.startswith("MT_TOOL_"):
70 mt_tool_list.append(name)
71 elif name.startswith("FF_STATUS_"):
72 ff_status_list.append(name)
73 elif name.startswith("FF_"):
74 ff_list.append(name)
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070075
76def Dump(struct_name, values):
Bernhard Rosenkränzerc434cf82016-02-23 20:54:35 +010077 print('static struct label %s[] = {' % (struct_name))
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070078 for value in values:
Bernhard Rosenkränzerc434cf82016-02-23 20:54:35 +010079 print(' LABEL(%s),' % (value))
80 print(' LABEL_END,')
81 print('};')
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070082
83Dump("input_prop_labels", input_prop_list)
84Dump("ev_labels", ev_list)
85Dump("syn_labels", syn_list)
86Dump("key_labels", key_list)
87Dump("rel_labels", rel_list)
88Dump("abs_labels", abs_list)
89Dump("sw_labels", sw_list)
90Dump("msc_labels", msc_list)
91Dump("led_labels", led_list)
92Dump("rep_labels", rep_list)
93Dump("snd_labels", snd_list)
94Dump("mt_tool_labels", mt_tool_list)
95Dump("ff_status_labels", ff_status_list)
96Dump("ff_labels", ff_list)