Bigger range for some gamepads

This commit is contained in:
Iwan Timmer 2015-06-21 22:57:53 +02:00
parent 4a5c2d9248
commit c7547bf771

View File

@ -327,10 +327,10 @@ static short input_convert_value(struct input_event *ev, struct input_device *de
return reverse?SHRT_MIN:SHRT_MAX;
else if (ev->value < parms->min)
return reverse?SHRT_MAX:SHRT_MIN;
else {
int value = ev->value + (ev->value<parms->avg?parms->flat:-parms->flat);
return (value-parms->avg) * SHRT_MAX / ((reverse?-parms->range-1:parms->range) - parms->flat);
}
else else if (reverse)
return (parms->max - (ev->value<parms->avg?parms->flat*2:0) - input) * (SHRT_MAX-SHRT_MIN) / (parms->max-parms->min-parms->flat*2) - SHRT_MIN;
else
return (ev->value - (ev->value>parms->avg?parms->flat*2:0) - parms->min) * (SHRT_MAX-SHRT_MIN) / (parms->max-parms->min-parms->flat*2) - SHRT_MIN;
}
static char input_convert_value_byte(struct input_event *ev, struct input_device *dev, struct input_abs_parms *parms) {