Home | History | Annotate | Download | only in toolbox
      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 from __future__ import print_function
     20 import os
     21 import re
     22 import sys
     23 
     24 input_prop_list = []
     25 ev_list = []
     26 syn_list = []
     27 key_list = []
     28 rel_list = []
     29 abs_list = []
     30 sw_list = []
     31 msc_list = []
     32 led_list = []
     33 rep_list = []
     34 snd_list = []
     35 mt_tool_list = []
     36 ff_status_list = []
     37 ff_list = []
     38 
     39 r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)')
     40 
     41 for 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)
     75 
     76 def Dump(struct_name, values):
     77   print('static struct label %s[] = {' % (struct_name))
     78   for value in values:
     79     print('    LABEL(%s),' % (value))
     80   print('    LABEL_END,')
     81   print('};')
     82 
     83 Dump("input_prop_labels", input_prop_list)
     84 Dump("ev_labels", ev_list)
     85 Dump("syn_labels", syn_list)
     86 Dump("key_labels", key_list)
     87 Dump("rel_labels", rel_list)
     88 Dump("abs_labels", abs_list)
     89 Dump("sw_labels", sw_list)
     90 Dump("msc_labels", msc_list)
     91 Dump("led_labels", led_list)
     92 Dump("rep_labels", rep_list)
     93 Dump("snd_labels", snd_list)
     94 Dump("mt_tool_labels", mt_tool_list)
     95 Dump("ff_status_labels", ff_status_list)
     96 Dump("ff_labels", ff_list)
     97