Gentoo Archives: gentoo-commits

From: "Michael Sterrett (mr_bones_)" <mr_bones_@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in media-libs/libsdl/files: libsdl-1.2.14-joystick.patch
Date: Wed, 26 Jan 2011 02:03:11
Message-Id: 20110126020301.1BDBA20057@flycatcher.gentoo.org
1 mr_bones_ 11/01/26 02:03:01
2
3 Added: libsdl-1.2.14-joystick.patch
4 Log:
5 add patch to handle joystick info correctly - patch from Gabriel Marcano via bug #332761
6
7 (Portage version: 2.1.9.25/cvs/Linux i686)
8
9 Revision Changes Path
10 1.1 media-libs/libsdl/files/libsdl-1.2.14-joystick.patch
11
12 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-libs/libsdl/files/libsdl-1.2.14-joystick.patch?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/media-libs/libsdl/files/libsdl-1.2.14-joystick.patch?rev=1.1&content-type=text/plain
14
15 Index: libsdl-1.2.14-joystick.patch
16 ===================================================================
17 --- SDL-1.2.14/src/joystick/linux/SDL_sysjoystick.c 2009-10-18 13:54:40.000000000 -0400
18 +++ SDL-1.2.14-mod/src/joystick/linux/SDL_sysjoystick.c 2010-08-15 22:28:19.000000000 -0400
19 @@ -700,26 +700,26 @@
20 continue;
21 }
22 if ( test_bit(i, absbit) ) {
23 - int values[5];
24 + struct input_absinfo values;
25
26 - if ( ioctl(fd, EVIOCGABS(i), values) < 0 )
27 + if ( ioctl(fd, EVIOCGABS(i), &values) < 0 )
28 continue;
29 #ifdef DEBUG_INPUT_EVENTS
30 printf("Joystick has absolute axis: %x\n", i);
31 printf("Values = { %d, %d, %d, %d, %d }\n",
32 - values[0], values[1],
33 - values[2], values[3], values[4]);
34 + values.value, values.minimum,
35 + values.maximum, values.fuzz, values.flat);
36 #endif /* DEBUG_INPUT_EVENTS */
37 joystick->hwdata->abs_map[i] = joystick->naxes;
38 - if ( values[1] == values[2] ) {
39 + if ( values.minimum == values.maximum ) {
40 joystick->hwdata->abs_correct[i].used = 0;
41 } else {
42 joystick->hwdata->abs_correct[i].used = 1;
43 joystick->hwdata->abs_correct[i].coef[0] =
44 - (values[2] + values[1]) / 2 - values[4];
45 + (values.maximum + values.minimum) / 2 - values.flat;
46 joystick->hwdata->abs_correct[i].coef[1] =
47 - (values[2] + values[1]) / 2 + values[4];
48 - t = ((values[2] - values[1]) / 2 - 2 * values[4]);
49 + (values.maximum + values.minimum) / 2 + values.flat;
50 + t = ((values.maximum - values.minimum) / 2 - 2 * values.flat);
51 if ( t != 0 ) {
52 joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t;
53 } else {