From ab1eb8168b5137fc96355c4fca234e310843344e Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Thu, 10 Oct 2024 18:17:46 -0500 Subject: [PATCH] Chore: Minor code cleanups (SDL2Gamepad.cs) --- src/Ryujinx.Input.SDL2/SDL2Gamepad.cs | 30 ++++++++++++--------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs b/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs index d635b8785..8771dd25f 100644 --- a/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs +++ b/src/Ryujinx.Input.SDL2/SDL2Gamepad.cs @@ -321,23 +321,7 @@ namespace Ryujinx.Input.SDL2 return (0.0f, 0.0f); } - short stickX; - short stickY; - - if (inputId == StickInputId.Left) - { - stickX = SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_LEFTX); - stickY = SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_LEFTY); - } - else if (inputId == StickInputId.Right) - { - stickX = SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_RIGHTX); - stickY = SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_RIGHTY); - } - else - { - throw new NotSupportedException($"Unsupported stick {inputId}"); - } + (short stickX, short stickY) = GetStickXY(inputId); float resultX = ConvertRawStickValue(stickX); float resultY = -ConvertRawStickValue(stickY); @@ -368,6 +352,18 @@ namespace Ryujinx.Input.SDL2 return (resultX, resultY); } + private (short, short) GetStickXY(StickInputId inputId) => + inputId switch + { + StickInputId.Left => ( + SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_LEFTX), + SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_LEFTY)), + StickInputId.Right => ( + SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_RIGHTX), + SDL_GameControllerGetAxis(_gamepadHandle, SDL_GameControllerAxis.SDL_CONTROLLER_AXIS_RIGHTY)), + _ => throw new NotSupportedException($"Unsupported stick {inputId}") + }; + public bool IsPressed(GamepadButtonInputId inputId) { if (inputId == GamepadButtonInputId.LeftTrigger)