From 159d1b3df50b351b5325c44d1ee20644f8f857d3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 25 Nov 2020 01:35:45 -0800 Subject: [PATCH] Don't set the serial number after the controller is opened We'll use the USB value instead so it's available as soon as it's opened. --- src/joystick/hidapi/SDL_hidapi_xboxone.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/joystick/hidapi/SDL_hidapi_xboxone.c b/src/joystick/hidapi/SDL_hidapi_xboxone.c index 9e4422061..a5d7bcdaa 100644 --- a/src/joystick/hidapi/SDL_hidapi_xboxone.c +++ b/src/joystick/hidapi/SDL_hidapi_xboxone.c @@ -853,6 +853,7 @@ HIDAPI_DriverXboxOneBluetooth_HandleGuidePacket(SDL_Joystick *joystick, hid_devi SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_GUIDE, (data[1] & 0x01) ? SDL_PRESSED : SDL_RELEASED); } +#ifdef SET_SERIAL_AFTER_OPEN static void HIDAPI_DriverXboxOne_HandleSerialIDPacket(SDL_Joystick *joystick, SDL_DriverXboxOne_Context *ctx, Uint8 *data, int size) { @@ -871,6 +872,7 @@ HIDAPI_DriverXboxOne_HandleSerialIDPacket(SDL_Joystick *joystick, SDL_DriverXbox joystick->serial = SDL_strdup(serial); } } +#endif /* SET_SERIAL_AFTER_OPEN */ static SDL_bool HIDAPI_DriverXboxOne_UpdateInitState(SDL_HIDAPI_Device *device, SDL_DriverXboxOne_Context *ctx) @@ -1011,9 +1013,11 @@ HIDAPI_DriverXboxOne_UpdateJoystick(SDL_HIDAPI_Device *device, SDL_Joystick *joy The controller sends that in response to this request: 0x1E 0x30 0x07 0x01 0x04 */ +#ifdef SET_SERIAL_AFTER_OPEN if (size == 20 && data[3] == 0x10) { HIDAPI_DriverXboxOne_HandleSerialIDPacket(joystick, ctx, data, size); } +#endif break; case 0x20: if (ctx->init_state < XBOX_ONE_INIT_STATE_COMPLETE) {