Browse Source

Re-enable full controller reports for Joy-Con controllers

When they are in simple report mode, the thumbstick gets turned into a digital hat, so let's use them in full report mode.

(cherry picked from commit bf27269952742a9cc5db6e0a840fce51996b8675)
Sam Lantinga 1 year ago
parent
commit
169f77ed5e
1 changed files with 8 additions and 0 deletions
  1. 8 0
      src/joystick/hidapi/SDL_hidapi_switch.c

+ 8 - 0
src/joystick/hidapi/SDL_hidapi_switch.c

@@ -762,6 +762,14 @@ static Uint8 GetDefaultInputMode(SDL_DriverSwitch_Context *ctx)
         #if 0
         #if 0
         input_mode = k_eSwitchInputReportIDs_FullControllerState;
         input_mode = k_eSwitchInputReportIDs_FullControllerState;
         #endif
         #endif
+
+        /* However, Joy-Con controllers switch their thumbsticks into D-pad mode in simple mode,
+         * so let's enable full controller state for them.
+         */
+        if (ctx->device->product_id == USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT ||
+            ctx->device->product_id == USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT) {
+            input_mode = k_eSwitchInputReportIDs_FullControllerState;
+        }
     }
     }
     return input_mode;
     return input_mode;
 }
 }