diff options
author | 2023-01-14 05:34:33 +1100 | |
---|---|---|
committer | 2023-01-14 05:34:33 +1100 | |
commit | f65b37599ee353556c5cf065a8fe7d573c3accad (patch) | |
tree | ba082137a30ab81d001dffa92cc98e3ffd865f39 /src/osd/modules/input/input_sdl.cpp | |
parent | c2e96c27325b48305c45a01ef0400b7c2d9b4239 (diff) |
osd: Recognise Joy-Con pairs with sdlgame input module.
Diffstat (limited to 'src/osd/modules/input/input_sdl.cpp')
-rw-r--r-- | src/osd/modules/input/input_sdl.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp index 3ac99ffef22..71906554259 100644 --- a/src/osd/modules/input/input_sdl.cpp +++ b/src/osd/modules/input/input_sdl.cpp @@ -209,10 +209,10 @@ char const *const CONTROLLER_BUTTON_XBOX360[]{ "D-pad Left", "D-pad Right", "Capture", - "P1", - "P2", - "P3", - "P4", + "RSR", + "LSL", + "RSL", + "LSR", "Touchpad" }; [[maybe_unused]] char const *const CONTROLLER_BUTTON_STADIA[]{ @@ -1213,7 +1213,12 @@ public: break; //case SDL_CONTROLLER_TYPE_SWITCH_JOYCON_LEFT: //case SDL_CONTROLLER_TYPE_SWITCH_JOYCON_RIGHT: - //case SDL_CONTROLLER_TYPE_SWITCH_JOYCON_PAIR: + case SDL_CONTROLLER_TYPE_SWITCH_JOYCON_PAIR: + osd_printf_verbose("Game Controller: ... Joy-Con pair type\n"); + axisnames = CONTROLLER_AXIS_SWITCH; + buttonnames = CONTROLLER_BUTTON_SWITCH; + digitaltriggers = true; + break; #endif default: // default to Xbox 360 names osd_printf_verbose("Game Controller: ... unrecognized type (%d)\n", int(ctrltype)); @@ -1223,12 +1228,12 @@ public: // add axes std::tuple<SDL_GameControllerAxis, input_item_id, bool> axes[]{ - { SDL_CONTROLLER_AXIS_LEFTX, ITEM_ID_XAXIS, false }, - { SDL_CONTROLLER_AXIS_LEFTY, ITEM_ID_YAXIS, false }, - { SDL_CONTROLLER_AXIS_RIGHTX, ITEM_ID_ZAXIS, false }, - { SDL_CONTROLLER_AXIS_RIGHTY, ITEM_ID_RZAXIS, false }, - { SDL_CONTROLLER_AXIS_TRIGGERLEFT, ITEM_ID_SLIDER1, true }, - { SDL_CONTROLLER_AXIS_TRIGGERRIGHT, ITEM_ID_SLIDER2, true } }; + { SDL_CONTROLLER_AXIS_LEFTX, ITEM_ID_XAXIS, false }, + { SDL_CONTROLLER_AXIS_LEFTY, ITEM_ID_YAXIS, false }, + { SDL_CONTROLLER_AXIS_RIGHTX, ITEM_ID_ZAXIS, false }, + { SDL_CONTROLLER_AXIS_RIGHTY, ITEM_ID_RZAXIS, false }, + { SDL_CONTROLLER_AXIS_TRIGGERLEFT, ITEM_ID_SLIDER1, true }, + { SDL_CONTROLLER_AXIS_TRIGGERRIGHT, ITEM_ID_SLIDER2, true } }; for (auto [axis, item, buttontest] : axes) { bool avail = !buttontest || !digitaltriggers; |