From: Rémi Bernon rbernon@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56602 --- dlls/winebus.sys/bus_iohid.c | 38 ------------------------------------ dlls/winebus.sys/bus_udev.c | 2 +- 2 files changed, 1 insertion(+), 39 deletions(-)
diff --git a/dlls/winebus.sys/bus_iohid.c b/dlls/winebus.sys/bus_iohid.c index e7960e185e9..40f4b1f3c2f 100644 --- a/dlls/winebus.sys/bus_iohid.c +++ b/dlls/winebus.sys/bus_iohid.c @@ -315,44 +315,6 @@ static void handle_DeviceMatchingCallback(void *context, IOReturn result, void * { if (is_xbox_gamepad(desc.vid, desc.pid)) desc.is_gamepad = TRUE; - else - { - int axes=0, buttons=0; - CFArrayRef element_array = IOHIDDeviceCopyMatchingElements( - IOHIDDevice, NULL, kIOHIDOptionsTypeNone); - - if (element_array) { - CFIndex index; - CFIndex count = CFArrayGetCount(element_array); - for (index = 0; index < count; index++) - { - IOHIDElementRef element = (IOHIDElementRef)CFArrayGetValueAtIndex(element_array, index); - if (element) - { - int type = IOHIDElementGetType(element); - if (type == kIOHIDElementTypeInput_Button) buttons++; - if (type == kIOHIDElementTypeInput_Axis) axes++; - if (type == kIOHIDElementTypeInput_Misc) - { - uint32_t usage = IOHIDElementGetUsage(element); - switch (usage) - { - case kHIDUsage_GD_X: - case kHIDUsage_GD_Y: - case kHIDUsage_GD_Z: - case kHIDUsage_GD_Rx: - case kHIDUsage_GD_Ry: - case kHIDUsage_GD_Rz: - case kHIDUsage_GD_Slider: - axes ++; - } - } - } - } - CFRelease(element_array); - } - desc.is_gamepad = (axes == 6 && buttons >= 14); - } }
TRACE("dev %p, desc %s.\n", IOHIDDevice, debugstr_device_desc(&desc)); diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c index 2cd995a4178..3bffc5d56a5 100644 --- a/dlls/winebus.sys/bus_udev.c +++ b/dlls/winebus.sys/bus_udev.c @@ -1367,7 +1367,7 @@ static void udev_add_device(struct udev_device *dev, int fd) if (is_xbox_gamepad(desc.vid, desc.pid)) desc.is_gamepad = TRUE; #ifdef HAS_PROPER_INPUT_HEADER - else + else if (!strcmp(subsystem, "input")) { int axes=0, buttons=0; axes = count_abs_axis(fd);