class to static; added a controller check on GetConfiguredControllers

This commit is contained in:
uncavo-hdmi 2025-02-22 17:04:42 +01:00
parent c3bfa67393
commit 538a9c83bd
2 changed files with 11 additions and 7 deletions

View File

@ -15,7 +15,6 @@ namespace Ryujinx.Ava.Input
private readonly InputManager _inputManager;
private readonly MainWindowViewModel _viewModel;
private readonly ConfigurationState _configurationState;
private readonly ControllerAssignmentManager _assignmentManager;
public event Action ConfigurationUpdated;
@ -24,7 +23,6 @@ namespace Ryujinx.Ava.Input
_inputManager = inputManager;
_viewModel = mainWindowViewModel;
_configurationState = ConfigurationState.Instance;
_assignmentManager = new ControllerAssignmentManager();
_inputManager.GamepadDriver.OnGamepadConnected += HandleOnGamepadConnected;
_inputManager.GamepadDriver.OnGamepadDisconnected += HandleOnGamepadDisconnected;
@ -51,7 +49,7 @@ 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 = _assignmentManager.GetConfiguredControllers(
List<InputConfig> newConfig = ControllerAssignmentManager.GetConfiguredControllers(
controllers, oldConfig, out bool hasNewControllersConnected);
_viewModel.AppHost?.NpadManager.ReloadConfiguration(newConfig, _configurationState.Hid.EnableKeyboard, _configurationState.Hid.EnableMouse);

View File

@ -10,9 +10,9 @@ using StickInputId = Ryujinx.Common.Configuration.Hid.Controller.StickInputId;
namespace Ryujinx.Ava.Input
{
public class ControllerAssignmentManager
public static class ControllerAssignmentManager
{
private readonly uint[] _playerColors =
private static readonly uint[] _playerColors =
[
0xFFFF0000, // Player 1 - Red
0xFF0000FF, // Player 2 - Blue
@ -43,11 +43,17 @@ namespace Ryujinx.Ava.Input
return reorderedConfig;
}
public List<InputConfig> GetConfiguredControllers(
public static List<InputConfig> GetConfiguredControllers(
List<IGamepad> controllers,
List<InputConfig> oldConfig,
out bool hasNewControllersConnected)
{
if(controllers == null || controllers.Count == 0)
{
hasNewControllersConnected = false;
return [];
}
Dictionary<string, InputConfig> oldConfigMap = oldConfig
.Where(c => c?.Id != null)
.ToDictionary(x => x.Id);
@ -134,7 +140,7 @@ namespace Ryujinx.Ava.Input
return -1; // Should not happen unless MaxControllers is exceeded
}
private void UpdatePlayerIndicesAndLEDs(List<InputConfig> orderedConfigs)
private static void UpdatePlayerIndicesAndLEDs(List<InputConfig> orderedConfigs)
{
for (int index = 0; index < orderedConfigs.Count; index++)
{