Commit e16afa792f7e752b0ef5ce6ec2530aabfcb977e6

Sam Lantinga 2020-11-24T16:38:49

Automatically switch to testing a new controller when it's plugged in

diff --git a/test/testgamecontroller.c b/test/testgamecontroller.c
index 7f3af1e..d321480 100644
--- a/test/testgamecontroller.c
+++ b/test/testgamecontroller.c
@@ -165,15 +165,17 @@ loop(void *arg)
         switch (event.type) {
         case SDL_CONTROLLERDEVICEADDED:
             SDL_Log("Game controller device %d added.\n", (int) event.cdevice.which);
-            if (!gamecontroller) {
-                gamecontroller = SDL_GameControllerOpen(event.cdevice.which);
-                if (gamecontroller) {
-                    InitGameController();
-                } else {
-                    SDL_Log("Couldn't open controller: %s\n", SDL_GetError());
-                }
-                UpdateWindowTitle();
+            if (gamecontroller) {
+                SDL_GameControllerClose(gamecontroller);
+            }
+
+            gamecontroller = SDL_GameControllerOpen(event.cdevice.which);
+            if (gamecontroller) {
+                InitGameController();
+            } else {
+                SDL_Log("Couldn't open controller: %s\n", SDL_GetError());
             }
+            UpdateWindowTitle();
             break;
 
         case SDL_CONTROLLERDEVICEREMOVED: