David Lawrie : winejoystick.drv: Fix Slider mapping.
Alexandre Julliard
julliard at winehq.org
Thu Jun 16 10:20:55 CDT 2016
Module: wine
Branch: master
Commit: f457f25b711873cb206662b9b9cc98b0eacfa840
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f457f25b711873cb206662b9b9cc98b0eacfa840
Author: David Lawrie <david.dljunk at gmail.com>
Date: Tue Jun 14 20:33:49 2016 -0700
winejoystick.drv: Fix Slider mapping.
Sliders, Dials, and Wheels now map to Z, U (Ry), or V (Rx) depending on
availability. Thus, also add support for up to 3 such HID elements.
Signed-off-by: David Lawrie <david.dljunk at gmail.com>
Signed-off-by: Ken Thomases <ken at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winejoystick.drv/joystick_osx.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/dlls/winejoystick.drv/joystick_osx.c b/dlls/winejoystick.drv/joystick_osx.c
index 42046a4..1edd8e9 100644
--- a/dlls/winejoystick.drv/joystick_osx.c
+++ b/dlls/winejoystick.drv/joystick_osx.c
@@ -442,8 +442,25 @@ static void collect_joystick_elements(joystick_t* joystick, IOHIDElementRef coll
break;
}
case kHIDUsage_GD_Slider:
- TRACE("kIOHIDElementTypeInput_Misc / kHIDUsage_GD_Slider; ignoring\n");
+ case kHIDUsage_GD_Dial:
+ case kHIDUsage_GD_Wheel:
+ {
+ /* if one axis is taken, fall to the next until axes are filled */
+ int possible_axes[3] = {AXIS_Z,AXIS_RY,AXIS_RX};
+ int axis = 0;
+ while(axis < 3 && joystick->axes[possible_axes[axis]].element)
+ axis++;
+ if (axis == 3)
+ TRACE("kIOHIDElementTypeInput_Misc / kHIDUsage_GD_<axis> (%d)\n ignoring\n", usage);
+ else
+ {
+ TRACE("kIOHIDElementTypeInput_Misc / kHIDUsage_GD_<axis> (%d) axis %d\n", usage, possible_axes[axis]);
+ joystick->axes[possible_axes[axis]].element = (IOHIDElementRef)CFRetain(child);
+ joystick->axes[possible_axes[axis]].min_value = IOHIDElementGetLogicalMin(child);
+ joystick->axes[possible_axes[axis]].max_value = IOHIDElementGetLogicalMax(child);
+ }
break;
+ }
default:
FIXME("kIOHIDElementTypeInput_Misc / Unhandled usage %d\n", usage);
break;
More information about the wine-cvs
mailing list