Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bug #1080
Browse files Browse the repository at this point in the history
 Markus Rathgeb      2011-01-23 14:34:23 PST

With kernel 2.6.31 the struct input_absinfo defined in linux/input.h changed.
A field "__s32 resolution" was added at the end of the struct.

Because the macro EVIOCGABS(abs) is using the struct input_absinfo, it would be
better (IMHO) to change the declaration of variable values to
"int values[sizeof(struct input_absinfo) / sizeof(int)];" or using "struct
input_absinfo" directly.
  • Loading branch information
slouken committed Jan 24, 2011
1 parent 4bc9a57 commit 37912eb
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/joystick/linux/SDL_sysjoystick.c
Expand Up @@ -701,25 +701,26 @@ EV_ConfigJoystick(SDL_Joystick * joystick, int fd)
continue;
}
if (test_bit(i, absbit)) {
int values[6];
struct input_absinfo absinfo;

if (ioctl(fd, EVIOCGABS(i), values) < 0)
continue;
#ifdef DEBUG_INPUT_EVENTS
printf("Joystick has absolute axis: %x\n", i);
printf("Values = { %d, %d, %d, %d, %d }\n",
values[0], values[1], values[2], values[3], values[4]);
absinfo.value, absinfo.minimum, absinfo.maximum,
absinfo.fuzz, absinfo.flat);
#endif /* DEBUG_INPUT_EVENTS */
joystick->hwdata->abs_map[i] = joystick->naxes;
if (values[1] == values[2]) {
if (absinfo.minimum == absinfo.maximum) {
joystick->hwdata->abs_correct[i].used = 0;
} else {
joystick->hwdata->abs_correct[i].used = 1;
joystick->hwdata->abs_correct[i].coef[0] =
(values[2] + values[1]) / 2 - values[4];
(absinfo.maximum + absinfo.minimum) / 2 - absinfo.flat;
joystick->hwdata->abs_correct[i].coef[1] =
(values[2] + values[1]) / 2 + values[4];
t = ((values[2] - values[1]) / 2 - 2 * values[4]);
(absinfo.maximum + absinfo.minimum) / 2 + absinfo.flat;
t = ((absinfo.maximum - absinfo.minimum) / 2 - 2 * absinfo.flat);
if (t != 0) {
joystick->hwdata->abs_correct[i].coef[2] =
(1 << 29) / t;
Expand Down

0 comments on commit 37912eb

Please sign in to comment.