changed var name; fixed class name; removed hashset argument from GetConfiguredController function.
This commit is contained in:
parent
da268ebbee
commit
72c3ca7769
@ -1,11 +1,6 @@
|
||||
using Ryujinx.Ava.UI.Models.Input;
|
||||
using Ryujinx.Ava.UI.ViewModels;
|
||||
using Ryujinx.Ava.UI.ViewModels;
|
||||
using Ryujinx.Ava.Utilities.Configuration;
|
||||
using Ryujinx.Common.Configuration.Hid;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
|
||||
using ConfigGamepadInputId = Ryujinx.Common.Configuration.Hid.Controller.GamepadInputId;
|
||||
using ConfigStickInputId = Ryujinx.Common.Configuration.Hid.Controller.StickInputId;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Input;
|
||||
using Ryujinx.Input.HLE;
|
||||
@ -20,7 +15,7 @@ namespace Ryujinx.Ava.Input
|
||||
private readonly InputManager _inputManager;
|
||||
private readonly MainWindowViewModel _viewModel;
|
||||
private readonly ConfigurationState _configurationState;
|
||||
private readonly ControllerConfigurator _controllerConfigurator;
|
||||
private readonly ControllerAssignmentManager _assignmentManager;
|
||||
|
||||
public event Action ConfigurationUpdated;
|
||||
|
||||
@ -29,7 +24,7 @@ namespace Ryujinx.Ava.Input
|
||||
_inputManager = inputManager;
|
||||
_viewModel = mainWindowViewModel;
|
||||
_configurationState = ConfigurationState.Instance;
|
||||
_controllerConfigurator = new ControllerConfigurator();
|
||||
_assignmentManager = new ControllerAssignmentManager();
|
||||
|
||||
_inputManager.GamepadDriver.OnGamepadConnected += HandleOnGamepadConnected;
|
||||
_inputManager.GamepadDriver.OnGamepadDisconnected += HandleOnGamepadDisconnected;
|
||||
@ -56,8 +51,8 @@ namespace Ryujinx.Ava.Input
|
||||
List<IGamepad> controllers = _inputManager.GamepadDriver.GetGamepads().ToList();
|
||||
List<InputConfig> oldConfig = _configurationState.Hid.InputConfig.Value.Where(x => x != null).ToList();
|
||||
|
||||
List<InputConfig> newConfig = _controllerConfigurator.GetConfiguredControllers(
|
||||
controllers, oldConfig, new HashSet<int>(), out bool hasNewControllersConnected);
|
||||
List<InputConfig> newConfig = _assignmentManager.GetConfiguredControllers(
|
||||
controllers, oldConfig, out bool hasNewControllersConnected);
|
||||
|
||||
_viewModel.AppHost?.NpadManager.ReloadConfiguration(newConfig, _configurationState.Hid.EnableKeyboard, _configurationState.Hid.EnableMouse);
|
||||
|
||||
@ -66,7 +61,7 @@ namespace Ryujinx.Ava.Input
|
||||
// there is no *new* controller, we must switch the order of the controllers in
|
||||
// oldConfig to match the new order since probably a controller was disconnected
|
||||
// or an old controller was reconnected
|
||||
newConfig = _controllerConfigurator.ReorderControllers(newConfig, oldConfig);
|
||||
newConfig = ControllerAssignmentManager.ReorderControllers(newConfig, oldConfig);
|
||||
}
|
||||
|
||||
_configurationState.Hid.InputConfig.Value = newConfig;
|
||||
|
@ -10,7 +10,7 @@ using StickInputId = Ryujinx.Common.Configuration.Hid.Controller.StickInputId;
|
||||
|
||||
namespace Ryujinx.Ava.Input
|
||||
{
|
||||
public class ControllerConfigurator
|
||||
public class ControllerAssignmentManager
|
||||
{
|
||||
private readonly uint[] _playerColors =
|
||||
[
|
||||
@ -26,7 +26,7 @@ namespace Ryujinx.Ava.Input
|
||||
|
||||
private const int MaxControllers = 9;
|
||||
|
||||
public List<InputConfig> ReorderControllers(List<InputConfig> newConfig, List<InputConfig> oldConfig)
|
||||
public static List<InputConfig> ReorderControllers(List<InputConfig> newConfig, List<InputConfig> oldConfig)
|
||||
{
|
||||
List<InputConfig> reorderedConfig = oldConfig.Select(config => new GamepadInputConfig(config).GetConfig()).ToList();
|
||||
|
||||
@ -46,7 +46,6 @@ namespace Ryujinx.Ava.Input
|
||||
public List<InputConfig> GetConfiguredControllers(
|
||||
List<IGamepad> controllers,
|
||||
List<InputConfig> oldConfig,
|
||||
HashSet<int> usedIndices,
|
||||
out bool hasNewControllersConnected)
|
||||
{
|
||||
Dictionary<string, InputConfig> oldConfigMap = oldConfig
|
||||
@ -54,6 +53,7 @@ namespace Ryujinx.Ava.Input
|
||||
.ToDictionary(x => x.Id);
|
||||
|
||||
Dictionary<int, InputConfig> playerIndexMap = new();
|
||||
HashSet<int> usedIndices = [];
|
||||
int recognizedControllersCount = 0;
|
||||
|
||||
List<IGamepad> remainingControllers = controllers.Where(c => c?.Id != null).ToList();
|
||||
@ -76,7 +76,7 @@ namespace Ryujinx.Ava.Input
|
||||
return orderedConfigs;
|
||||
}
|
||||
|
||||
private void AddExistingControllers(
|
||||
private static void AddExistingControllers(
|
||||
List<IGamepad> controllers,
|
||||
Dictionary<string, InputConfig> oldConfigMap,
|
||||
Dictionary<int, InputConfig> playerIndexMap,
|
||||
@ -85,8 +85,11 @@ namespace Ryujinx.Ava.Input
|
||||
{
|
||||
foreach (var controller in controllers.ToList())
|
||||
{
|
||||
if (oldConfigMap.TryGetValue(controller.Id, out InputConfig existingConfig))
|
||||
if (!oldConfigMap.TryGetValue(controller.Id, out InputConfig existingConfig))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int desiredIndex = (int)existingConfig.PlayerIndex;
|
||||
|
||||
// Ensure the index is valid and available
|
||||
@ -106,9 +109,8 @@ namespace Ryujinx.Ava.Input
|
||||
controllers.Remove(controller);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddNewControllers(
|
||||
private static void AddNewControllers(
|
||||
List<IGamepad> controllers,
|
||||
Dictionary<int, InputConfig> playerIndexMap,
|
||||
HashSet<int> usedIndices)
|
||||
@ -123,7 +125,7 @@ namespace Ryujinx.Ava.Input
|
||||
}
|
||||
}
|
||||
|
||||
private int GetFirstAvailableIndex(HashSet<int> usedIndices)
|
||||
private static int GetFirstAvailableIndex(HashSet<int> usedIndices)
|
||||
{
|
||||
for (int i = 0; i < MaxControllers; i++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user