| Elliott Hughes | c7f3c5c | 2015-03-25 16:40:13 -0700 | [diff] [blame] | 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 | 
| Elliott Hughes | bd02a47 | 2016-02-08 14:09:10 -0800 | [diff] [blame] | 21 | import sys | 
| Elliott Hughes | c7f3c5c | 2015-03-25 16:40:13 -0700 | [diff] [blame] | 22 |  | 
 | 23 | input_prop_list = [] | 
 | 24 | ev_list = [] | 
 | 25 | syn_list = [] | 
 | 26 | key_list = [] | 
 | 27 | rel_list = [] | 
 | 28 | abs_list = [] | 
 | 29 | sw_list = [] | 
 | 30 | msc_list = [] | 
 | 31 | led_list = [] | 
 | 32 | rep_list = [] | 
 | 33 | snd_list = [] | 
 | 34 | mt_tool_list = [] | 
 | 35 | ff_status_list = [] | 
 | 36 | ff_list = [] | 
 | 37 |  | 
 | 38 | r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)') | 
 | 39 |  | 
| Elliott Hughes | bd02a47 | 2016-02-08 14:09:10 -0800 | [diff] [blame] | 40 | with open(sys.argv[1], 'r') as f: | 
| Elliott Hughes | c7f3c5c | 2015-03-25 16:40:13 -0700 | [diff] [blame] | 41 |   for line in f: | 
 | 42 |     m = r.match(line) | 
 | 43 |     if m: | 
 | 44 |       name = m.group(1) | 
 | 45 |       if name.startswith("INPUT_PROP_"): | 
 | 46 |         input_prop_list.append(name) | 
 | 47 |       elif name.startswith("EV_"): | 
 | 48 |         ev_list.append(name) | 
 | 49 |       elif name.startswith("SYN_"): | 
 | 50 |         syn_list.append(name) | 
 | 51 |       elif name.startswith("KEY_") or name.startswith("BTN_"): | 
 | 52 |         key_list.append(name) | 
 | 53 |       elif name.startswith("REL_"): | 
 | 54 |         rel_list.append(name) | 
 | 55 |       elif name.startswith("ABS_"): | 
 | 56 |         abs_list.append(name) | 
 | 57 |       elif name.startswith("SW_"): | 
 | 58 |         sw_list.append(name) | 
 | 59 |       elif name.startswith("MSC_"): | 
 | 60 |         msc_list.append(name) | 
 | 61 |       elif name.startswith("LED_"): | 
 | 62 |         led_list.append(name) | 
 | 63 |       elif name.startswith("REP_"): | 
 | 64 |         rep_list.append(name) | 
 | 65 |       elif name.startswith("SND_"): | 
 | 66 |         snd_list.append(name) | 
 | 67 |       elif name.startswith("MT_TOOL_"): | 
 | 68 |         mt_tool_list.append(name) | 
 | 69 |       elif name.startswith("FF_STATUS_"): | 
 | 70 |         ff_status_list.append(name) | 
 | 71 |       elif name.startswith("FF_"): | 
 | 72 |         ff_list.append(name) | 
 | 73 |  | 
 | 74 | def Dump(struct_name, values): | 
 | 75 |   print 'static struct label %s[] = {' % (struct_name) | 
 | 76 |   for value in values: | 
 | 77 |     print '    LABEL(%s),' % (value) | 
 | 78 |   print '    LABEL_END,' | 
 | 79 |   print '};' | 
 | 80 |  | 
 | 81 | Dump("input_prop_labels", input_prop_list) | 
 | 82 | Dump("ev_labels", ev_list) | 
 | 83 | Dump("syn_labels", syn_list) | 
 | 84 | Dump("key_labels", key_list) | 
 | 85 | Dump("rel_labels", rel_list) | 
 | 86 | Dump("abs_labels", abs_list) | 
 | 87 | Dump("sw_labels", sw_list) | 
 | 88 | Dump("msc_labels", msc_list) | 
 | 89 | Dump("led_labels", led_list) | 
 | 90 | Dump("rep_labels", rep_list) | 
 | 91 | Dump("snd_labels", snd_list) | 
 | 92 | Dump("mt_tool_labels", mt_tool_list) | 
 | 93 | Dump("ff_status_labels", ff_status_list) | 
 | 94 | Dump("ff_labels", ff_list) |