diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs')
| -rw-r--r-- | Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs b/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs index 2422a031..c936fc54 100644 --- a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs +++ b/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs @@ -43,6 +43,7 @@ namespace Ryujinx.Ava.Ui.ViewModels private PlayerIndex _playerId; private int _controller; + private int _controllerNumber = 0; private string _controllerImage; private int _device; private object _configuration; @@ -439,6 +440,14 @@ namespace Ryujinx.Ava.Ui.ViewModels return str; } + private static string GetShortGamepadId(string str) + { + const string Hyphen = "-"; + const int Offset = 1; + + return str.Substring(str.IndexOf(Hyphen) + Offset); + } + public void LoadDevices() { lock (Devices) @@ -451,9 +460,11 @@ namespace Ryujinx.Ava.Ui.ViewModels { using IGamepad gamepad = _mainWindow.InputManager.KeyboardDriver.GetGamepad(id); + Logger.Info?.Print(LogClass.Configuration, $"{GetShortGamepadName(gamepad.Name)} has been connected with ID: {gamepad.Id}"); + if (gamepad != null) { - Devices.Add((DeviceType.Keyboard, id, $"{GetShortGamepadName(gamepad.Name)} ({id})")); + Devices.Add((DeviceType.Keyboard, id, $"{GetShortGamepadName(gamepad.Name)}")); } } @@ -461,12 +472,21 @@ namespace Ryujinx.Ava.Ui.ViewModels { using IGamepad gamepad = _mainWindow.InputManager.GamepadDriver.GetGamepad(id); + Logger.Info?.Print(LogClass.Configuration, $"{GetShortGamepadName(gamepad.Name)} has been connected with ID: {gamepad.Id}"); + if (gamepad != null) { - Devices.Add((DeviceType.Controller, id, $"{GetShortGamepadName(gamepad.Name)} ({id})")); + if (Devices.Any(controller => GetShortGamepadId(controller.Id) == GetShortGamepadId(gamepad.Id))) + { + _controllerNumber++; + } + + Devices.Add((DeviceType.Controller, id, $"{GetShortGamepadName(gamepad.Name)} ({_controllerNumber})")); } } + _controllerNumber = 0; + DeviceList.AddRange(Devices.Select(x => x.Name)); Device = Math.Min(Device, DeviceList.Count); } |
