[PATCH libinput] Fix normalization functions

Peter Hutterer peter.hutterer at who-t.net
Wed Oct 8 21:49:00 PDT 2014


On Wed, Oct 08, 2014 at 02:53:21PM -0700, Jason Gerecke wrote:
> 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.

woopsie. applied, thanks.

Cheers,
   Peter

> 
> Signed-off-by: Jason Gerecke <killertofu at gmail.com>
> ---
> This patch should be applied to the 'tablet-support' branch, obviously.
> ...Re-sending since I messed up the mailinglist address.
> 
>  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 a63b734..ff5f737 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;
> -- 
> 2.1.2
> 


More information about the wayland-devel mailing list