Fixed querying device info on the MOBAPAD M073

The query packet needs to contain valid rumble data in order to be accepted by the controller.

Fixes https://github.com/libsdl-org/SDL/issues/7788

(cherry picked from commit 5490873daa12a57ff4b36090f25f04530323c6e4)
This commit is contained in:
Sam Lantinga 2023-06-09 18:41:21 -07:00
parent 30b4d90f1c
commit 320f3fffbe

View file

@ -1253,6 +1253,10 @@ static SDL_bool HIDAPI_DriverSwitch_InitDevice(SDL_HIDAPI_Device *device)
/* Find out whether or not we can send output reports */ /* Find out whether or not we can send output reports */
ctx->m_bInputOnly = SDL_IsJoystickNintendoSwitchProInputOnly(device->vendor_id, device->product_id); ctx->m_bInputOnly = SDL_IsJoystickNintendoSwitchProInputOnly(device->vendor_id, device->product_id);
if (!ctx->m_bInputOnly) { if (!ctx->m_bInputOnly) {
/* Initialize rumble data, important for reading device info on the MOBAPAD M073 */
SetNeutralRumble(&ctx->m_RumblePacket.rumbleData[0]);
SetNeutralRumble(&ctx->m_RumblePacket.rumbleData[1]);
if (!BReadDeviceInfo(ctx)) { if (!BReadDeviceInfo(ctx)) {
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT, SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
"HIDAPI_DriverSwitch_InitDevice(): Couldn't read device info"); "HIDAPI_DriverSwitch_InitDevice(): Couldn't read device info");