Added new option "exit by pressing plus and minus buttons" to the input section.
This commit is contained in:
@@ -3,6 +3,7 @@ using Ryujinx.Common.Configuration.Hid;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Graphics.Gpu;
|
||||
using Ryujinx.HLE.HOS.Services.Hid;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
@@ -273,15 +274,21 @@ namespace Ryujinx.Input.HLE
|
||||
}
|
||||
}
|
||||
|
||||
public void Update()
|
||||
public bool Update()
|
||||
{
|
||||
|
||||
// _gamepad may be altered by other threads
|
||||
var gamepad = _gamepad;
|
||||
|
||||
|
||||
if (gamepad != null && GamepadDriver != null)
|
||||
{
|
||||
State = gamepad.GetMappedStateSnapshot();
|
||||
|
||||
if (gamepad.spetialExit())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (_config is StandardControllerInputConfig controllerConfig && controllerConfig.Motion.EnableMotion)
|
||||
{
|
||||
if (controllerConfig.Motion.MotionBackend == MotionInputBackendType.GamepadDriver)
|
||||
@@ -334,6 +341,7 @@ namespace Ryujinx.Input.HLE
|
||||
State = default;
|
||||
_leftMotionInput = null;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public GamepadInput GetHLEInputState()
|
||||
|
||||
@@ -200,8 +200,10 @@ namespace Ryujinx.Input.HLE
|
||||
ReloadConfiguration(inputConfig, enableKeyboard, enableMouse);
|
||||
}
|
||||
|
||||
public void Update(float aspectRatio = 1)
|
||||
public bool Update(float aspectRatio = 1)
|
||||
{
|
||||
bool spetialExit = false;
|
||||
|
||||
lock (_lock)
|
||||
{
|
||||
List<GamepadInput> hleInputStates = new();
|
||||
@@ -225,9 +227,9 @@ namespace Ryujinx.Input.HLE
|
||||
DriverConfigurationUpdate(ref controller, inputConfig);
|
||||
|
||||
controller.UpdateUserConfiguration(inputConfig);
|
||||
controller.Update();
|
||||
spetialExit = controller.Update(); //hotkey press check
|
||||
controller.UpdateRumble(_device.Hid.Npads.GetRumbleQueue(playerIndex));
|
||||
|
||||
|
||||
inputState = controller.GetHLEInputState();
|
||||
|
||||
inputState.Buttons |= _device.Hid.UpdateStickButtons(inputState.LStick, inputState.RStick);
|
||||
@@ -315,6 +317,8 @@ namespace Ryujinx.Input.HLE
|
||||
|
||||
_device.TamperMachine.UpdateInput(hleInputStates);
|
||||
}
|
||||
|
||||
return spetialExit;
|
||||
}
|
||||
|
||||
internal InputConfig GetPlayerInputConfigByIndex(int index)
|
||||
|
||||
@@ -79,6 +79,12 @@ namespace Ryujinx.Input
|
||||
/// <returns>A remapped snaphost of the state of the gamepad.</returns>
|
||||
GamepadStateSnapshot GetMappedStateSnapshot();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the state if the minus and plus buttons were pressed on the gamepad.
|
||||
/// </summary>
|
||||
/// <returns>returns true if the buttons were pressed.</returns>
|
||||
bool spetialExit();
|
||||
|
||||
/// <summary>
|
||||
/// Get a snaphost of the state of the gamepad.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user