1#!/usr/bin/env python3 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 20import os 21import re 22import sys 23 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 41for 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 76def 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 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) 97