From a7ff3e050809d5f23d60d58e0cd6cd04c3809772 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 19 Dec 2024 08:56:39 +1000 Subject: [PATCH] tools/per-slot-delta: remove some duplication for axis handling Part-of: --- tools/libinput-analyze-per-slot-delta.py | 61 +++++++++++------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/tools/libinput-analyze-per-slot-delta.py b/tools/libinput-analyze-per-slot-delta.py index 782d0096..e1e4a864 100755 --- a/tools/libinput-analyze-per-slot-delta.py +++ b/tools/libinput-analyze-per-slot-delta.py @@ -269,24 +269,6 @@ def main(argv): s.state = SlotState.BEGIN else: s.state = SlotState.END - elif e.code == libevdev.EV_ABS.ABS_X: - # If recording started after touch down - if s.state == SlotState.NONE: - s.state = SlotState.BEGIN - s.dx, s.dy = 0, 0 - elif s.state == SlotState.UPDATE: - s.dx = e.value - s.x - s.x = e.value - s.dirty = True - elif e.code == libevdev.EV_ABS.ABS_Y: - # If recording started after touch down - if s.state == SlotState.NONE: - s.state = SlotState.BEGIN - s.dx, s.dy = 0, 0 - elif s.state == SlotState.UPDATE: - s.dy = e.value - s.y - s.y = e.value - s.dirty = True else: if e.code == libevdev.EV_ABS.ABS_MT_SLOT: slot = e.value @@ -304,24 +286,39 @@ def main(argv): s.dx = 0 s.dy = 0 s.dirty = True - elif e.code == libevdev.EV_ABS.ABS_MT_POSITION_X: - # If recording started after touch down - if s.state == SlotState.NONE: - s.state = SlotState.BEGIN - s.dx, s.dy = 0, 0 - elif s.state == SlotState.UPDATE: + + if args.use_st: + axes = [libevdev.EV_ABS.ABS_X, libevdev.EV_ABS.ABS_Y] + else: + axes = [ + libevdev.EV_ABS.ABS_MT_POSITION_X, + libevdev.EV_ABS.ABS_MT_POSITION_Y, + ] + + if e.code in axes: + s.dirty = True + + # If recording started after touch down + if s.state == SlotState.NONE: + s.state = SlotState.BEGIN + s.dx, s.dy = 0, 0 + + if e.code in [ + libevdev.EV_ABS.ABS_X, + libevdev.EV_ABS.ABS_MT_POSITION_X, + ]: + if s.state == SlotState.UPDATE: s.dx = e.value - s.x s.x = e.value - s.dirty = True - elif e.code == libevdev.EV_ABS.ABS_MT_POSITION_Y: - # If recording started after touch down - if s.state == SlotState.NONE: - s.state = SlotState.BEGIN - s.dx, s.dy = 0, 0 - elif s.state == SlotState.UPDATE: + elif e.code in [ + libevdev.EV_ABS.ABS_Y, + libevdev.EV_ABS.ABS_MT_POSITION_Y, + ]: + if s.state == SlotState.UPDATE: s.dy = e.value - s.y s.y = e.value - s.dirty = True + else: + assert False, f"Invalid axis {e.code}" if e.code == libevdev.EV_SYN.SYN_REPORT: if last_time is None: