From 297cbe48086fac152bbcadc59deedf5c6eac7bde Mon Sep 17 00:00:00 2001 From: Jason Gerecke Date: Wed, 8 Oct 2014 14:53:21 -0700 Subject: [PATCH] Fix normalization functions We need to *subtract*, not *add* the minimum to determine the range-effective value. For example: if (min, current, max) is (100, 100, 1000) then the normalized value would be 0.0, not 0.2. Signed-off-by: Jason Gerecke Signed-off-by: Peter Hutterer --- src/evdev-tablet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c index a63b734a..ff5f7373 100644 --- a/src/evdev-tablet.c +++ b/src/evdev-tablet.c @@ -106,7 +106,7 @@ tablet_update_tool(struct tablet_dispatch *tablet, static inline double normalize_pressure_or_dist(const struct input_absinfo * absinfo) { double range = absinfo->maximum - absinfo->minimum + 1; - double value = (absinfo->value + absinfo->minimum) / range; + double value = (absinfo->value - absinfo->minimum) / range; return value; } @@ -114,7 +114,7 @@ normalize_pressure_or_dist(const struct input_absinfo * absinfo) { static inline double normalize_tilt(const struct input_absinfo * absinfo) { double range = absinfo->maximum - absinfo->minimum + 1; - double value = (absinfo->value + absinfo->minimum) / range; + double value = (absinfo->value - absinfo->minimum) / range; /* Map to the (-1, 1) range */ return (value * 2) - 1;