Don't send k_EPS5FeatureReportIdCapabilities to Sony PS5 controllers

This report is for third party controllers only.
main
Sam Lantinga 2023-07-17 16:45:31 -07:00
parent 2fef0be2f6
commit 16dd5f0da4
1 changed files with 53 additions and 50 deletions

View File

@ -414,7 +414,6 @@ static SDL_bool HIDAPI_DriverPS5_InitDevice(SDL_HIDAPI_Device *device)
}
}
size = ReadFeatureReport(device->dev, k_EPS5FeatureReportIdCapabilities, data, sizeof(data));
/* Get the device capabilities */
if (device->vendor_id == USB_VENDOR_SONY) {
ctx->sensors_supported = SDL_TRUE;
@ -422,7 +421,10 @@ static SDL_bool HIDAPI_DriverPS5_InitDevice(SDL_HIDAPI_Device *device)
ctx->vibration_supported = SDL_TRUE;
ctx->playerled_supported = SDL_TRUE;
ctx->touchpad_supported = SDL_TRUE;
} else if (size == 48 && data[2] == 0x28) {
} else {
/* Third party controller capability request */
size = ReadFeatureReport(device->dev, k_EPS5FeatureReportIdCapabilities, data, sizeof(data));
if (size == 48 && data[2] == 0x28) {
Uint8 capabilities = data[4];
Uint8 capabilities2 = data[20];
Uint8 device_type = data[5];
@ -478,6 +480,7 @@ static SDL_bool HIDAPI_DriverPS5_InitDevice(SDL_HIDAPI_Device *device)
ctx->sensors_supported = SDL_TRUE;
ctx->touchpad_supported = SDL_TRUE;
}
}
ctx->effects_supported = (ctx->lightbar_supported || ctx->vibration_supported || ctx->playerled_supported);
device->joystick_type = joystick_type;