Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 332761 | Differences between
and this patch

Collapse All | Expand All

(-)SDL-1.2.14/src/joystick/linux/SDL_sysjoystick.c (-8 / +8 lines)
Lines 700-725 Link Here
700
				continue;
700
				continue;
701
			}
701
			}
702
			if ( test_bit(i, absbit) ) {
702
			if ( test_bit(i, absbit) ) {
703
				int values[5];
703
				struct input_absinfo values;
704
704
705
				if ( ioctl(fd, EVIOCGABS(i), values) < 0 )
705
				if ( ioctl(fd, EVIOCGABS(i), &values) < 0 )
706
					continue;
706
					continue;
707
#ifdef DEBUG_INPUT_EVENTS
707
#ifdef DEBUG_INPUT_EVENTS
708
				printf("Joystick has absolute axis: %x\n", i);
708
				printf("Joystick has absolute axis: %x\n", i);
709
				printf("Values = { %d, %d, %d, %d, %d }\n",
709
				printf("Values = { %d, %d, %d, %d, %d }\n",
710
					values[0], values[1],
710
					values.value, values.minimum,
711
					values[2], values[3], values[4]);
711
					values.maximum, values.fuzz, values.flat);
712
#endif /* DEBUG_INPUT_EVENTS */
712
#endif /* DEBUG_INPUT_EVENTS */
713
				joystick->hwdata->abs_map[i] = joystick->naxes;
713
				joystick->hwdata->abs_map[i] = joystick->naxes;
714
				if ( values[1] == values[2] ) {
714
				if ( values.minimum == values.maximum ) {
715
				    joystick->hwdata->abs_correct[i].used = 0;
715
				    joystick->hwdata->abs_correct[i].used = 0;
716
				} else {
716
				} else {
717
				    joystick->hwdata->abs_correct[i].used = 1;
717
				    joystick->hwdata->abs_correct[i].used = 1;
718
				    joystick->hwdata->abs_correct[i].coef[0] =
718
				    joystick->hwdata->abs_correct[i].coef[0] =
719
					(values[2] + values[1]) / 2 - values[4];
719
					(values.maximum + values.minimum) / 2 - values.flat;
720
				    joystick->hwdata->abs_correct[i].coef[1] =
720
				    joystick->hwdata->abs_correct[i].coef[1] =
721
					(values[2] + values[1]) / 2 + values[4];
721
					(values.maximum + values.minimum) / 2 + values.flat;
722
				    t = ((values[2] - values[1]) / 2 - 2 * values[4]);
722
				    t = ((values.maximum - values.minimum) / 2 - 2 * values.flat);
723
				    if ( t != 0 ) {
723
				    if ( t != 0 ) {
724
					joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t;
724
					joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t;
725
				    } else {
725
				    } else {

Return to bug 332761