Browse Source

Allow setting the player index to -1, which turns off the player LED for PS5 controllers

Sam Lantinga 4 năm trước cách đây
mục cha
commit
b2a0c712cb

+ 3 - 4
Xcode/SDL/SDL.xcodeproj/project.pbxproj

@@ -160,9 +160,6 @@ SDL_SetJoystickIDForPlayerIndex(int player_index, SDL_JoystickID instance_id)
     int device_index;
     int existing_player_index;
 
-    if (player_index < 0) {
-        return SDL_FALSE;
-    }
     if (player_index >= SDL_joystick_player_count) {
         SDL_JoystickID *new_players = (SDL_JoystickID *)SDL_realloc(SDL_joystick_players, (player_index + 1)*sizeof(*SDL_joystick_players));
         if (!new_players) {
@@ -184,7 +181,9 @@ SDL_SetJoystickIDForPlayerIndex(int player_index, SDL_JoystickID instance_id)
         SDL_joystick_players[existing_player_index] = -1;
     }
 
-    SDL_joystick_players[player_index] = instance_id;
+    if (player_index >= 0) {
+        SDL_joystick_players[player_index] = instance_id;
+    }
 
     /* Update the driver with the new index */
     device_index = SDL_JoystickGetDeviceIndexFromInstanceID(instance_id);

+ 3 - 1
src/joystick/hidapi/SDL_hidapi_xbox360.c

@@ -133,7 +133,9 @@ HIDAPI_DriverXbox360_SetDevicePlayerIndex(SDL_HIDAPI_Device *device, SDL_Joystic
     if (!device->dev) {
         return;
     }
-    SetSlotLED(device->dev, (player_index % 4));
+    if (player_index >= 0) {
+        SetSlotLED(device->dev, (player_index % 4));
+    }
 }
 
 static SDL_bool

+ 3 - 1
src/joystick/hidapi/SDL_hidapi_xbox360w.c

@@ -131,7 +131,9 @@ HIDAPI_DriverXbox360W_SetDevicePlayerIndex(SDL_HIDAPI_Device *device, SDL_Joysti
     if (!device->dev) {
         return;
     }
-    SetSlotLED(device->dev, (player_index % 4));
+    if (player_index >= 0) {
+        SetSlotLED(device->dev, (player_index % 4));
+    }
 }
 
 static SDL_bool