You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.7 KiB
96 lines
2.7 KiB
#!/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)
|
|
|