#!/usr/bin/env python # # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the 'License'); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # pylint: disable=bad-indentation,bad-continuation from __future__ import print_function import os import re import sys input_prop_list = [] ev_list = [] syn_list = [] key_list = [] rel_list = [] abs_list = [] sw_list = [] msc_list = [] led_list = [] rep_list = [] snd_list = [] mt_tool_list = [] ff_status_list = [] ff_list = [] r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)') with open(sys.argv[1], 'r') as f: for line in f: m = r.match(line) if m: name = m.group(1) if name.startswith("INPUT_PROP_"): input_prop_list.append(name) elif name.startswith("EV_"): ev_list.append(name) elif name.startswith("SYN_"): syn_list.append(name) elif name.startswith("KEY_") or name.startswith("BTN_"): key_list.append(name) elif name.startswith("REL_"): rel_list.append(name) elif name.startswith("ABS_"): abs_list.append(name) elif name.startswith("SW_"): sw_list.append(name) elif name.startswith("MSC_"): msc_list.append(name) elif name.startswith("LED_"): led_list.append(name) elif name.startswith("REP_"): rep_list.append(name) elif name.startswith("SND_"): snd_list.append(name) elif name.startswith("MT_TOOL_"): mt_tool_list.append(name) elif name.startswith("FF_STATUS_"): ff_status_list.append(name) elif name.startswith("FF_"): ff_list.append(name) def Dump(struct_name, values): print('static struct label %s[] = {' % (struct_name)) for value in values: print(' LABEL(%s),' % (value)) print(' LABEL_END,') print('};') Dump("input_prop_labels", input_prop_list) Dump("ev_labels", ev_list) Dump("syn_labels", syn_list) Dump("key_labels", key_list) Dump("rel_labels", rel_list) Dump("abs_labels", abs_list) Dump("sw_labels", sw_list) Dump("msc_labels", msc_list) Dump("led_labels", led_list) Dump("rep_labels", rep_list) Dump("snd_labels", snd_list) Dump("mt_tool_labels", mt_tool_list) Dump("ff_status_labels", ff_status_list) Dump("ff_labels", ff_list)