summaryrefslogtreecommitdiff
path: root/tools/libinput-analyze-per-slot-delta.py
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2020-03-27 10:30:38 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2020-04-11 13:38:48 +1000
commit5a9fb539d94ec623289a8711b16d63862fe88ad6 (patch)
tree2127ea367ec5bff00b388327d4b76e3a77162ef3 /tools/libinput-analyze-per-slot-delta.py
parentc23484a9ec89bd083adb971e8575fb2b49998497 (diff)
downloadlibinput-5a9fb539d94ec623289a8711b16d63862fe88ad6.tar.gz
tools: per-slot-delta: print the BTN_TOUCH etc. bits in-line
New output example: 9.408899 +5ms DBL: ↑↗ 1/ -9 | →→ 0/ 0 | where DBL stands for BTN_DOUBLE. This also widens the relative time by one so we don't lose formatting for >1s delta time. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'tools/libinput-analyze-per-slot-delta.py')
-rwxr-xr-xtools/libinput-analyze-per-slot-delta.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/tools/libinput-analyze-per-slot-delta.py b/tools/libinput-analyze-per-slot-delta.py
index 0df3a9be..3c8de82d 100755
--- a/tools/libinput-analyze-per-slot-delta.py
+++ b/tools/libinput-analyze-per-slot-delta.py
@@ -123,6 +123,13 @@ def main(argv):
slot = 0
last_time = None
+ tool_bits = {
+ libevdev.EV_KEY.BTN_TOUCH: 0,
+ libevdev.EV_KEY.BTN_TOOL_DOUBLETAP: 0,
+ libevdev.EV_KEY.BTN_TOOL_TRIPLETAP: 0,
+ libevdev.EV_KEY.BTN_TOOL_QUADTAP: 0,
+ libevdev.EV_KEY.BTN_TOOL_QUINTTAP: 0,
+ }
for event in device['events']:
for evdev in event['evdev']:
@@ -130,6 +137,9 @@ def main(argv):
e = InputEvent(evdev)
evbit = libevdev.evbit(e.evtype, e.evcode)
+ if evbit in tool_bits:
+ tool_bits[evbit] = e.value
+
if args.use_st:
# Note: this relies on the EV_KEY events to come in before the
# x/y events, otherwise the last/first event in each slot will
@@ -190,16 +200,6 @@ def main(argv):
s.y = e.value
s.dirty = True
- if (evbit == libevdev.EV_KEY.BTN_TOUCH or
- (evbit == libevdev.EV_KEY.BTN_TOOL_DOUBLETAP and nslots < 2) or
- (evbit == libevdev.EV_KEY.BTN_TOOL_TRIPLETAP and nslots < 3) or
- (evbit == libevdev.EV_KEY.BTN_TOOL_QUADTAP and nslots < 4) or
- (evbit == libevdev.EV_KEY.BTN_TOOL_QUINTTAP and nslots < 5)):
- print(' {} {} {} {}'.format(marker_button,
- evbit.name,
- e.value,
- marker_button))
-
if evbit == libevdev.EV_SYN.SYN_REPORT:
if last_time is None:
last_time = e.sec * 1000000 + e.usec
@@ -209,7 +209,22 @@ def main(argv):
tdelta = int((t - last_time) / 1000) # ms
last_time = t
- print("{:2d}.{:06d} {:+4d}ms: ".format(e.sec, e.usec, tdelta), end='')
+ tools = [
+ (libevdev.EV_KEY.BTN_TOOL_QUINTTAP, 'QIN'),
+ (libevdev.EV_KEY.BTN_TOOL_QUADTAP, 'QAD'),
+ (libevdev.EV_KEY.BTN_TOOL_TRIPLETAP, 'TRI'),
+ (libevdev.EV_KEY.BTN_TOOL_DOUBLETAP, 'DBL'),
+ (libevdev.EV_KEY.BTN_TOUCH, 'TOU'),
+ ]
+
+ for bit, string in tools:
+ if tool_bits[bit]:
+ tool_state = string
+ break
+ else:
+ tool_state = ' '
+
+ print("{:2d}.{:06d} {:+5d}ms {}: ".format(e.sec, e.usec, tdelta, tool_state), end='')
for sl in [s for s in slots if s.used]:
if sl.state == SlotState.NONE:
print(marker_empty_slot, end='')