summaryrefslogtreecommitdiff
path: root/tools/libinput-measure-touchpad-pressure.py
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-10-31 09:55:17 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-11-06 00:24:06 +0000
commit27bf3fb2abaaa84fdccefded39b87097a6efab83 (patch)
tree10fd64ac608534a8d024ac0bd98b74500a88078e /tools/libinput-measure-touchpad-pressure.py
parent6041d0ba696947fb28967e5132de7fe8a5faa179 (diff)
downloadlibinput-27bf3fb2abaaa84fdccefded39b87097a6efab83.tar.gz
tools: allow measuring single-touch ABS_PRESSURE
Fixes #173 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'tools/libinput-measure-touchpad-pressure.py')
-rwxr-xr-xtools/libinput-measure-touchpad-pressure.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/tools/libinput-measure-touchpad-pressure.py b/tools/libinput-measure-touchpad-pressure.py
index c04d8d6d..a7a2e34b 100755
--- a/tools/libinput-measure-touchpad-pressure.py
+++ b/tools/libinput-measure-touchpad-pressure.py
@@ -170,7 +170,12 @@ class Device(object):
caps = all_caps.get(evdev.ecodes.EV_ABS, [])
p = [cap[1] for cap in caps if cap[0] == evdev.ecodes.ABS_MT_PRESSURE]
if not p:
- raise InvalidDeviceError("device does not have ABS_MT_PRESSURE")
+ p = [cap[1] for cap in caps if cap[0] == evdev.ecodes.ABS_PRESSURE]
+ if not p:
+ raise InvalidDeviceError("device does not have ABS_PRESSURE/ABS_MT_PRESSURE")
+ self.has_mt_pressure = False
+ else:
+ self.has_mt_pressure = True
p = p[0]
prange = p.max - p.min
@@ -247,7 +252,8 @@ def handle_abs(device, event):
except IndexError:
# If the finger was down at startup
pass
- elif event.code == evdev.ecodes.ABS_MT_PRESSURE:
+ elif ((event.code == evdev.ecodes.ABS_MT_PRESSURE) or
+ (event.code == evdev.ecodes.ABS_PRESSURE and not device.has_mt_pressure)):
try:
s = device.current_sequence()
s.append(Touch(pressure=event.value))