Files
SDL/src
Sam Lantinga 6590d078d7 Fixed bug 4996 - Mac: XBoxOne Bluetooth rumble isn't working
rofferom

I have an annoying issue on MacOS about XBoxOne Bluetooth rumble (Vendor: 0x045e, Product: 0x02fd).

When 360controller is installed, rumble is working correctly. However, Bluetooth rumble isn't working at all, with or without 360controller installed (although it is working with Chrome + https://html5gamepad.com).

I looked at the code, and it seems that XBox controllers are managed in MacOS in this file: SDL_hidapi_xbox360.c. The XBoxOne file is disabled for MacOS in SDL_hidjoystick_c.h.

The function HIDAPI_DriverXbox360_Rumble() is called correctly, and hid_write() returns no error.

I have tried a stupid test. I took the rumble packet from 360controller: ec4e88eb2d/XBOBTFF/FFDriver.cpp (L620). With the patch I have attached, I manage to have rumble working on Bluetooth (with some stupid vibration level, but it proves it can if the packet is changed).

But it breaks the USB rumble with 360controller. A comment in the function makes an explicit reference to 360controller, I think that's why I have broken this specific usecase.

I don't know what is the correct way to fix this, but it seems that the current implementation has a missing case for Bluetooth support.


Note that I also tested master this morning, and I have another issue:
    if (!device->ffservice) {
        return SDL_Unsupported();
    }

test fails in DARWIN_JoystickRumble(). This test has been done quickly, I'm not totaly confident about its accuracy.
2020-03-01 14:52:49 -08:00
..
2020-02-01 09:23:04 -08:00
2020-02-10 13:59:05 -08:00
2020-01-16 20:49:25 -08:00
2020-01-29 20:09:16 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-03-01 13:00:50 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00
2020-01-23 01:03:23 -08:00
2020-01-16 20:49:25 -08:00
2020-01-16 20:49:25 -08:00