1*00c7fec1SAndroid Build Coastguard Worker#!/usr/bin/env python3 2*00c7fec1SAndroid Build Coastguard Worker# 3*00c7fec1SAndroid Build Coastguard Worker# Copyright (C) 2015 The Android Open Source Project 4*00c7fec1SAndroid Build Coastguard Worker# 5*00c7fec1SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the 'License'); 6*00c7fec1SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*00c7fec1SAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*00c7fec1SAndroid Build Coastguard Worker# 9*00c7fec1SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*00c7fec1SAndroid Build Coastguard Worker# 11*00c7fec1SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*00c7fec1SAndroid Build Coastguard Worker# distributed under the License is distributed on an 'AS IS' BASIS, 13*00c7fec1SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*00c7fec1SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*00c7fec1SAndroid Build Coastguard Worker# limitations under the License. 16*00c7fec1SAndroid Build Coastguard Worker# 17*00c7fec1SAndroid Build Coastguard Worker# pylint: disable=bad-indentation,bad-continuation 18*00c7fec1SAndroid Build Coastguard Worker 19*00c7fec1SAndroid Build Coastguard Worker 20*00c7fec1SAndroid Build Coastguard Workerimport os 21*00c7fec1SAndroid Build Coastguard Workerimport re 22*00c7fec1SAndroid Build Coastguard Workerimport sys 23*00c7fec1SAndroid Build Coastguard Worker 24*00c7fec1SAndroid Build Coastguard Workerinput_prop_list = [] 25*00c7fec1SAndroid Build Coastguard Workerev_list = [] 26*00c7fec1SAndroid Build Coastguard Workersyn_list = [] 27*00c7fec1SAndroid Build Coastguard Workerkey_list = [] 28*00c7fec1SAndroid Build Coastguard Workerrel_list = [] 29*00c7fec1SAndroid Build Coastguard Workerabs_list = [] 30*00c7fec1SAndroid Build Coastguard Workersw_list = [] 31*00c7fec1SAndroid Build Coastguard Workermsc_list = [] 32*00c7fec1SAndroid Build Coastguard Workerled_list = [] 33*00c7fec1SAndroid Build Coastguard Workerrep_list = [] 34*00c7fec1SAndroid Build Coastguard Workersnd_list = [] 35*00c7fec1SAndroid Build Coastguard Workermt_tool_list = [] 36*00c7fec1SAndroid Build Coastguard Workerff_status_list = [] 37*00c7fec1SAndroid Build Coastguard Workerff_list = [] 38*00c7fec1SAndroid Build Coastguard Worker 39*00c7fec1SAndroid Build Coastguard Workerr = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)') 40*00c7fec1SAndroid Build Coastguard Worker 41*00c7fec1SAndroid Build Coastguard Workerfor arg in sys.argv[1:]: 42*00c7fec1SAndroid Build Coastguard Worker with open(arg, 'r') as f: 43*00c7fec1SAndroid Build Coastguard Worker for line in f: 44*00c7fec1SAndroid Build Coastguard Worker m = r.match(line) 45*00c7fec1SAndroid Build Coastguard Worker if m: 46*00c7fec1SAndroid Build Coastguard Worker name = m.group(1) 47*00c7fec1SAndroid Build Coastguard Worker if name.startswith("INPUT_PROP_"): 48*00c7fec1SAndroid Build Coastguard Worker input_prop_list.append(name) 49*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("EV_"): 50*00c7fec1SAndroid Build Coastguard Worker ev_list.append(name) 51*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("SYN_"): 52*00c7fec1SAndroid Build Coastguard Worker syn_list.append(name) 53*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("KEY_") or name.startswith("BTN_"): 54*00c7fec1SAndroid Build Coastguard Worker key_list.append(name) 55*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("REL_"): 56*00c7fec1SAndroid Build Coastguard Worker rel_list.append(name) 57*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("ABS_"): 58*00c7fec1SAndroid Build Coastguard Worker abs_list.append(name) 59*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("SW_"): 60*00c7fec1SAndroid Build Coastguard Worker sw_list.append(name) 61*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("MSC_"): 62*00c7fec1SAndroid Build Coastguard Worker msc_list.append(name) 63*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("LED_"): 64*00c7fec1SAndroid Build Coastguard Worker led_list.append(name) 65*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("REP_"): 66*00c7fec1SAndroid Build Coastguard Worker rep_list.append(name) 67*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("SND_"): 68*00c7fec1SAndroid Build Coastguard Worker snd_list.append(name) 69*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("MT_TOOL_"): 70*00c7fec1SAndroid Build Coastguard Worker mt_tool_list.append(name) 71*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("FF_STATUS_"): 72*00c7fec1SAndroid Build Coastguard Worker ff_status_list.append(name) 73*00c7fec1SAndroid Build Coastguard Worker elif name.startswith("FF_"): 74*00c7fec1SAndroid Build Coastguard Worker ff_list.append(name) 75*00c7fec1SAndroid Build Coastguard Worker 76*00c7fec1SAndroid Build Coastguard Workerdef Dump(struct_name, values): 77*00c7fec1SAndroid Build Coastguard Worker print('static struct label %s[] = {' % (struct_name)) 78*00c7fec1SAndroid Build Coastguard Worker for value in values: 79*00c7fec1SAndroid Build Coastguard Worker print(' LABEL(%s),' % (value)) 80*00c7fec1SAndroid Build Coastguard Worker print(' LABEL_END,') 81*00c7fec1SAndroid Build Coastguard Worker print('};') 82*00c7fec1SAndroid Build Coastguard Worker 83*00c7fec1SAndroid Build Coastguard WorkerDump("input_prop_labels", input_prop_list) 84*00c7fec1SAndroid Build Coastguard WorkerDump("ev_labels", ev_list) 85*00c7fec1SAndroid Build Coastguard WorkerDump("syn_labels", syn_list) 86*00c7fec1SAndroid Build Coastguard WorkerDump("key_labels", key_list) 87*00c7fec1SAndroid Build Coastguard WorkerDump("rel_labels", rel_list) 88*00c7fec1SAndroid Build Coastguard WorkerDump("abs_labels", abs_list) 89*00c7fec1SAndroid Build Coastguard WorkerDump("sw_labels", sw_list) 90*00c7fec1SAndroid Build Coastguard WorkerDump("msc_labels", msc_list) 91*00c7fec1SAndroid Build Coastguard WorkerDump("led_labels", led_list) 92*00c7fec1SAndroid Build Coastguard WorkerDump("rep_labels", rep_list) 93*00c7fec1SAndroid Build Coastguard WorkerDump("snd_labels", snd_list) 94*00c7fec1SAndroid Build Coastguard WorkerDump("mt_tool_labels", mt_tool_list) 95*00c7fec1SAndroid Build Coastguard WorkerDump("ff_status_labels", ff_status_list) 96*00c7fec1SAndroid Build Coastguard WorkerDump("ff_labels", ff_list) 97