mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-13 07:03:54 +00:00
Respect SDL_HINT_JOYSTICK_MFI
This commit is contained in:
@@ -212,18 +212,19 @@ static bool HIDAPI_DriverXbox360_IsSupportedDevice(SDL_HIDAPI_Device *device, co
|
||||
}
|
||||
#endif
|
||||
#if defined(SDL_PLATFORM_MACOS) && defined(SDL_JOYSTICK_MFI)
|
||||
if (SDL_IsJoystickSteamVirtualGamepad(vendor_id, product_id, version)) {
|
||||
// GCController support doesn't work with the Steam Virtual Gamepad
|
||||
return true;
|
||||
} else {
|
||||
// On macOS when it isn't controlled by the 360Controller driver and
|
||||
// it doesn't look like a Steam virtual gamepad we should rely on
|
||||
// GCController support instead.
|
||||
return false;
|
||||
if (SDL_GetHintBoolean(SDL_HINT_JOYSTICK_MFI, true)) {
|
||||
if (SDL_IsJoystickSteamVirtualGamepad(vendor_id, product_id, version)) {
|
||||
// GCController support doesn't work with the Steam Virtual Gamepad
|
||||
return true;
|
||||
} else {
|
||||
// On macOS when it isn't controlled by the 360Controller driver and
|
||||
// it doesn't look like a Steam virtual gamepad we should rely on
|
||||
// GCController support instead.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#else
|
||||
return (type == SDL_GAMEPAD_TYPE_XBOX360);
|
||||
#endif
|
||||
return (type == SDL_GAMEPAD_TYPE_XBOX360);
|
||||
}
|
||||
|
||||
static bool SetSlotLED(SDL_hid_device *dev, Uint8 slot, bool on)
|
||||
|
||||
@@ -368,10 +368,11 @@ static bool HIDAPI_DriverXboxOne_IsSupportedDevice(SDL_HIDAPI_Device *device, co
|
||||
static const int XBONE_IFACE_PROTOCOL = 208;
|
||||
|
||||
#if defined(SDL_PLATFORM_MACOS) && defined(SDL_JOYSTICK_MFI)
|
||||
if (!SDL_IsJoystickBluetoothXboxOne(vendor_id, product_id)) {
|
||||
if (SDL_GetHintBoolean(SDL_HINT_JOYSTICK_MFI, true) &&
|
||||
!SDL_IsJoystickBluetoothXboxOne(vendor_id, product_id)) {
|
||||
// On macOS we get a shortened version of the real report and
|
||||
// you can't write output reports for wired controllers, so
|
||||
// we'll just use the GCController support instead.
|
||||
// we'll just use the GCController support instead, if available.
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user