Commit df537a7c0e30124c7602f6dd8e5afcb10afba36f

Sam Lantinga 2022-08-09T00:18:19

SDL_GameControllerSetPlayerIndex(gamecontroller, -1) means turn off the player LED if possible

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diff --git a/src/joystick/hidapi/SDL_hidapi_switch.c b/src/joystick/hidapi/SDL_hidapi_switch.c
index e8680b4..99e3c37 100644
--- a/src/joystick/hidapi/SDL_hidapi_switch.c
+++ b/src/joystick/hidapi/SDL_hidapi_switch.c
@@ -848,9 +848,11 @@ static void SDLCALL SDL_HomeLEDHintChanged(void *userdata, const char *name, con
 static void UpdateSlotLED(SDL_DriverSwitch_Context *ctx)
 {
     if (!ctx->m_bInputOnly) {
-        Uint8 slot = (ctx->m_nPlayerIndex % 4);
-        Uint8 led_data = ctx->m_bPlayerLights ? (1 << slot) : 0;
-
+        Uint8 led_data = 0;
+        
+        if (ctx->m_bPlayerLights && ctx->m_nPlayerIndex >= 0) {
+            led_data = (1 << (ctx->m_nPlayerIndex % 4));
+        }
         WriteSubcommand(ctx, k_eSwitchSubcommandIDs_SetPlayerLights, &led_data, sizeof(led_data), NULL);
     }
 }