hidapi: Disable hidapi LG4FF on windows (#14762)

hid.dll simply cannot send 7 bytes reports unlike other platforms

It enforces full length repots of 17 from the device's descriptor,
which does not work on the device.

This breaks ffb and led control, so we disable this by default on
windows.
This commit is contained in:
Katharine Chui 2026-01-05 17:14:26 +01:00 committed by GitHub
parent c742038aa9
commit 6c2f9bc41e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -110,8 +110,17 @@ static void HIDAPI_DriverLg4ff_UnregisterHints(SDL_HintCallback callback, void *
static bool HIDAPI_DriverLg4ff_IsEnabled(void)
{
bool enabled = SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI_LG4FF,
SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI, SDL_HIDAPI_DEFAULT));
#if defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK)
/*
* hid.dll simply cannot send 7 bytes reports unlike other platforms
* it enforces full length repots of 17 from the device's descriptor, which does not work on the device
* this breaks ffb and led control, so we disable this by default
*/
bool hint_default = false;
#else
bool hint_default = SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI, SDL_HIDAPI_DEFAULT);
#endif
bool enabled = SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI_LG4FF, hint_default);
return enabled;
}