Chore: Minor code cleanups (SDL2Gamepad.cs)

This commit is contained in:
Evan Husted 2024-10-10 18:17:46 -05:00 committed by KeatonTheBot
parent e7e89efb3c
commit ab1eb8168b

View file

@ -321,23 +321,7 @@ namespace Ryujinx.Input.SDL2
return (0.0f, 0.0f); return (0.0f, 0.0f);
} }
short stickX; (short stickX, short stickY) = GetStickXY(inputId);
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}");
}
float resultX = ConvertRawStickValue(stickX); float resultX = ConvertRawStickValue(stickX);
float resultY = -ConvertRawStickValue(stickY); float resultY = -ConvertRawStickValue(stickY);
@ -368,6 +352,18 @@ namespace Ryujinx.Input.SDL2
return (resultX, resultY); 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) public bool IsPressed(GamepadButtonInputId inputId)
{ {
if (inputId == GamepadButtonInputId.LeftTrigger) if (inputId == GamepadButtonInputId.LeftTrigger)