| #!/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+)') |
| |
| for arg in sys.argv[1:]: |
| with open(arg, '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) |