Improvements to input and input configuration in the GUI. (#849)
* Improvements to input and input configuration in the GUI * Requested changes * nits * more nits
This commit is contained in:
parent
5f3558fd51
commit
538fba826b
50 changed files with 5883 additions and 2511 deletions
|
@ -4,9 +4,7 @@ using Ryujinx.Common.Configuration.Hid;
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Common.Utilities;
|
||||
using Ryujinx.Configuration.System;
|
||||
using Ryujinx.Configuration.Hid;
|
||||
using Ryujinx.Configuration.Ui;
|
||||
using Ryujinx.UI.Input;
|
||||
|
||||
namespace Ryujinx.Configuration
|
||||
{
|
||||
|
@ -15,7 +13,7 @@ namespace Ryujinx.Configuration
|
|||
/// <summary>
|
||||
/// The current version of the file format
|
||||
/// </summary>
|
||||
public const int CurrentVersion = 5;
|
||||
public const int CurrentVersion = 6;
|
||||
|
||||
public int Version { get; set; }
|
||||
|
||||
|
@ -129,11 +127,6 @@ namespace Ryujinx.Configuration
|
|||
/// </summary>
|
||||
public bool IgnoreMissingServices { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The primary controller's type
|
||||
/// </summary>
|
||||
public ControllerType ControllerType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Used to toggle columns in the GUI
|
||||
/// </summary>
|
||||
|
@ -162,12 +155,12 @@ namespace Ryujinx.Configuration
|
|||
/// <summary>
|
||||
/// Keyboard control bindings
|
||||
/// </summary>
|
||||
public NpadKeyboard KeyboardControls { get; set; }
|
||||
public List<KeyboardConfig> KeyboardConfig { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller control bindings
|
||||
/// </summary>
|
||||
public NpadController JoystickControls { get; set; }
|
||||
public List<ControllerConfig> ControllerConfig { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Loads a configuration file from disk
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
using Ryujinx.Common;
|
||||
using Ryujinx.Common;
|
||||
using Ryujinx.Common.Configuration.Hid;
|
||||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.Configuration.Hid;
|
||||
using Ryujinx.Configuration.System;
|
||||
using Ryujinx.Configuration.Ui;
|
||||
using Ryujinx.UI.Input;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
@ -159,7 +158,7 @@ namespace Ryujinx.Configuration
|
|||
public ReactiveObject<string> TimeZone { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// System Time Offset in seconds
|
||||
/// System Time Offset in Seconds
|
||||
/// </summary>
|
||||
public ReactiveObject<long> SystemTimeOffset { get; private set; }
|
||||
|
||||
|
@ -207,32 +206,22 @@ namespace Ryujinx.Configuration
|
|||
/// </summary>
|
||||
public class HidSection
|
||||
{
|
||||
/// <summary>
|
||||
/// The primary controller's type
|
||||
/// </summary>
|
||||
public ReactiveObject<ControllerType> ControllerType { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Enable or disable keyboard support (Independent from controllers binding)
|
||||
/// </summary>
|
||||
public ReactiveObject<bool> EnableKeyboard { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Keyboard control bindings
|
||||
/// Input device configuration.
|
||||
/// NOTE: This ReactiveObject won't issue an event when the List has elements added or removed.
|
||||
/// TODO: Implement a ReactiveList class.
|
||||
/// </summary>
|
||||
public ReactiveObject<NpadKeyboard> KeyboardControls { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller control bindings
|
||||
/// </summary>
|
||||
public ReactiveObject<NpadController> JoystickControls { get; private set; }
|
||||
public ReactiveObject<List<InputConfig>> InputConfig { get; private set; }
|
||||
|
||||
public HidSection()
|
||||
{
|
||||
ControllerType = new ReactiveObject<ControllerType>();
|
||||
EnableKeyboard = new ReactiveObject<bool>();
|
||||
KeyboardControls = new ReactiveObject<NpadKeyboard>();
|
||||
JoystickControls = new ReactiveObject<NpadController>();
|
||||
EnableKeyboard = new ReactiveObject<bool>();
|
||||
InputConfig = new ReactiveObject<List<InputConfig>>();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -311,6 +300,21 @@ namespace Ryujinx.Configuration
|
|||
|
||||
public ConfigurationFileFormat ToFileFormat()
|
||||
{
|
||||
List<ControllerConfig> controllerConfigList = new List<ControllerConfig>();
|
||||
List<KeyboardConfig> keyboardConfigList = new List<KeyboardConfig>();
|
||||
|
||||
foreach (InputConfig inputConfig in Hid.InputConfig.Value)
|
||||
{
|
||||
if (inputConfig is ControllerConfig controllerConfig)
|
||||
{
|
||||
controllerConfigList.Add(controllerConfig);
|
||||
}
|
||||
else if (inputConfig is KeyboardConfig keyboardConfig)
|
||||
{
|
||||
keyboardConfigList.Add(keyboardConfig);
|
||||
}
|
||||
}
|
||||
|
||||
ConfigurationFileFormat configurationFile = new ConfigurationFileFormat
|
||||
{
|
||||
Version = ConfigurationFileFormat.CurrentVersion,
|
||||
|
@ -336,7 +340,6 @@ namespace Ryujinx.Configuration
|
|||
EnableFsIntegrityChecks = System.EnableFsIntegrityChecks,
|
||||
FsGlobalAccessLogMode = System.FsGlobalAccessLogMode,
|
||||
IgnoreMissingServices = System.IgnoreMissingServices,
|
||||
ControllerType = Hid.ControllerType,
|
||||
GuiColumns = new GuiColumns()
|
||||
{
|
||||
FavColumn = Ui.GuiColumns.FavColumn,
|
||||
|
@ -354,8 +357,8 @@ namespace Ryujinx.Configuration
|
|||
EnableCustomTheme = Ui.EnableCustomTheme,
|
||||
CustomThemePath = Ui.CustomThemePath,
|
||||
EnableKeyboard = Hid.EnableKeyboard,
|
||||
KeyboardControls = Hid.KeyboardControls,
|
||||
JoystickControls = Hid.JoystickControls
|
||||
KeyboardConfig = keyboardConfigList,
|
||||
ControllerConfig = controllerConfigList
|
||||
};
|
||||
|
||||
return configurationFile;
|
||||
|
@ -385,7 +388,6 @@ namespace Ryujinx.Configuration
|
|||
System.EnableFsIntegrityChecks.Value = true;
|
||||
System.FsGlobalAccessLogMode.Value = 0;
|
||||
System.IgnoreMissingServices.Value = false;
|
||||
Hid.ControllerType.Value = ControllerType.Handheld;
|
||||
Ui.GuiColumns.FavColumn.Value = true;
|
||||
Ui.GuiColumns.IconColumn.Value = true;
|
||||
Ui.GuiColumns.AppColumn.Value = true;
|
||||
|
@ -401,73 +403,51 @@ namespace Ryujinx.Configuration
|
|||
Ui.CustomThemePath.Value = "";
|
||||
Hid.EnableKeyboard.Value = false;
|
||||
|
||||
Hid.KeyboardControls.Value = new NpadKeyboard
|
||||
Hid.InputConfig.Value = new List<InputConfig>
|
||||
{
|
||||
LeftJoycon = new NpadKeyboardLeft
|
||||
new KeyboardConfig
|
||||
{
|
||||
StickUp = Key.W,
|
||||
StickDown = Key.S,
|
||||
StickLeft = Key.A,
|
||||
StickRight = Key.D,
|
||||
StickButton = Key.F,
|
||||
DPadUp = Key.Up,
|
||||
DPadDown = Key.Down,
|
||||
DPadLeft = Key.Left,
|
||||
DPadRight = Key.Right,
|
||||
ButtonMinus = Key.Minus,
|
||||
ButtonL = Key.E,
|
||||
ButtonZl = Key.Q,
|
||||
},
|
||||
RightJoycon = new NpadKeyboardRight
|
||||
{
|
||||
StickUp = Key.I,
|
||||
StickDown = Key.K,
|
||||
StickLeft = Key.J,
|
||||
StickRight = Key.L,
|
||||
StickButton = Key.H,
|
||||
ButtonA = Key.Z,
|
||||
ButtonB = Key.X,
|
||||
ButtonX = Key.C,
|
||||
ButtonY = Key.V,
|
||||
ButtonPlus = Key.Plus,
|
||||
ButtonR = Key.U,
|
||||
ButtonZr = Key.O,
|
||||
},
|
||||
Hotkeys = new KeyboardHotkeys
|
||||
{
|
||||
ToggleVsync = Key.Tab
|
||||
}
|
||||
};
|
||||
|
||||
Hid.JoystickControls.Value = new NpadController
|
||||
{
|
||||
Enabled = true,
|
||||
Index = 0,
|
||||
Deadzone = 0.05f,
|
||||
TriggerThreshold = 0.5f,
|
||||
LeftJoycon = new NpadControllerLeft
|
||||
{
|
||||
Stick = ControllerInputId.Axis0,
|
||||
StickButton = ControllerInputId.Button8,
|
||||
DPadUp = ControllerInputId.Hat0Up,
|
||||
DPadDown = ControllerInputId.Hat0Down,
|
||||
DPadLeft = ControllerInputId.Hat0Left,
|
||||
DPadRight = ControllerInputId.Hat0Right,
|
||||
ButtonMinus = ControllerInputId.Button6,
|
||||
ButtonL = ControllerInputId.Button4,
|
||||
ButtonZl = ControllerInputId.Axis2,
|
||||
},
|
||||
RightJoycon = new NpadControllerRight
|
||||
{
|
||||
Stick = ControllerInputId.Axis3,
|
||||
StickButton = ControllerInputId.Button9,
|
||||
ButtonA = ControllerInputId.Button1,
|
||||
ButtonB = ControllerInputId.Button0,
|
||||
ButtonX = ControllerInputId.Button3,
|
||||
ButtonY = ControllerInputId.Button2,
|
||||
ButtonPlus = ControllerInputId.Button7,
|
||||
ButtonR = ControllerInputId.Button5,
|
||||
ButtonZr = ControllerInputId.Axis5,
|
||||
Index = 0,
|
||||
ControllerType = ControllerType.JoyconPair,
|
||||
PlayerIndex = PlayerIndex.Player1,
|
||||
LeftJoycon = new NpadKeyboardLeft
|
||||
{
|
||||
StickUp = Key.W,
|
||||
StickDown = Key.S,
|
||||
StickLeft = Key.A,
|
||||
StickRight = Key.D,
|
||||
StickButton = Key.F,
|
||||
DPadUp = Key.Up,
|
||||
DPadDown = Key.Down,
|
||||
DPadLeft = Key.Left,
|
||||
DPadRight = Key.Right,
|
||||
ButtonMinus = Key.Minus,
|
||||
ButtonL = Key.E,
|
||||
ButtonZl = Key.Q,
|
||||
ButtonSl = Key.Home,
|
||||
ButtonSr = Key.End
|
||||
},
|
||||
RightJoycon = new NpadKeyboardRight
|
||||
{
|
||||
StickUp = Key.I,
|
||||
StickDown = Key.K,
|
||||
StickLeft = Key.J,
|
||||
StickRight = Key.L,
|
||||
StickButton = Key.H,
|
||||
ButtonA = Key.Z,
|
||||
ButtonB = Key.X,
|
||||
ButtonX = Key.C,
|
||||
ButtonY = Key.V,
|
||||
ButtonPlus = Key.Plus,
|
||||
ButtonR = Key.U,
|
||||
ButtonZr = Key.O,
|
||||
ButtonSl = Key.PageUp,
|
||||
ButtonSr = Key.PageDown
|
||||
},
|
||||
Hotkeys = new KeyboardHotkeys
|
||||
{
|
||||
ToggleVsync = Key.Tab
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -521,6 +501,71 @@ namespace Ryujinx.Configuration
|
|||
configurationFileUpdated = true;
|
||||
}
|
||||
|
||||
if (configurationFileFormat.Version < 6)
|
||||
{
|
||||
Common.Logging.Logger.PrintWarning(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 6.");
|
||||
|
||||
configurationFileFormat.ControllerConfig = new List<ControllerConfig>();
|
||||
configurationFileFormat.KeyboardConfig = new List<KeyboardConfig>{
|
||||
new KeyboardConfig
|
||||
{
|
||||
Index = 0,
|
||||
ControllerType = ControllerType.JoyconPair,
|
||||
PlayerIndex = PlayerIndex.Player1,
|
||||
LeftJoycon = new NpadKeyboardLeft
|
||||
{
|
||||
StickUp = Key.W,
|
||||
StickDown = Key.S,
|
||||
StickLeft = Key.A,
|
||||
StickRight = Key.D,
|
||||
StickButton = Key.F,
|
||||
DPadUp = Key.Up,
|
||||
DPadDown = Key.Down,
|
||||
DPadLeft = Key.Left,
|
||||
DPadRight = Key.Right,
|
||||
ButtonMinus = Key.Minus,
|
||||
ButtonL = Key.E,
|
||||
ButtonZl = Key.Q,
|
||||
ButtonSl = Key.Unbound,
|
||||
ButtonSr = Key.Unbound
|
||||
},
|
||||
RightJoycon = new NpadKeyboardRight
|
||||
{
|
||||
StickUp = Key.I,
|
||||
StickDown = Key.K,
|
||||
StickLeft = Key.J,
|
||||
StickRight = Key.L,
|
||||
StickButton = Key.H,
|
||||
ButtonA = Key.Z,
|
||||
ButtonB = Key.X,
|
||||
ButtonX = Key.C,
|
||||
ButtonY = Key.V,
|
||||
ButtonPlus = Key.Plus,
|
||||
ButtonR = Key.U,
|
||||
ButtonZr = Key.O,
|
||||
ButtonSl = Key.Unbound,
|
||||
ButtonSr = Key.Unbound
|
||||
},
|
||||
Hotkeys = new KeyboardHotkeys
|
||||
{
|
||||
ToggleVsync = Key.Tab
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
configurationFileUpdated = true;
|
||||
}
|
||||
|
||||
List<InputConfig> inputConfig = new List<InputConfig>();
|
||||
foreach (ControllerConfig controllerConfig in configurationFileFormat.ControllerConfig)
|
||||
{
|
||||
inputConfig.Add(controllerConfig);
|
||||
}
|
||||
foreach (KeyboardConfig keyboardConfig in configurationFileFormat.KeyboardConfig)
|
||||
{
|
||||
inputConfig.Add(keyboardConfig);
|
||||
}
|
||||
|
||||
Graphics.MaxAnisotropy.Value = configurationFileFormat.MaxAnisotropy;
|
||||
Graphics.ShadersDumpPath.Value = configurationFileFormat.GraphicsShadersDumpPath;
|
||||
Logger.EnableDebug.Value = configurationFileFormat.LoggingEnableDebug;
|
||||
|
@ -544,7 +589,6 @@ namespace Ryujinx.Configuration
|
|||
System.EnableFsIntegrityChecks.Value = configurationFileFormat.EnableFsIntegrityChecks;
|
||||
System.FsGlobalAccessLogMode.Value = configurationFileFormat.FsGlobalAccessLogMode;
|
||||
System.IgnoreMissingServices.Value = configurationFileFormat.IgnoreMissingServices;
|
||||
Hid.ControllerType.Value = configurationFileFormat.ControllerType;
|
||||
Ui.GuiColumns.FavColumn.Value = configurationFileFormat.GuiColumns.FavColumn;
|
||||
Ui.GuiColumns.IconColumn.Value = configurationFileFormat.GuiColumns.IconColumn;
|
||||
Ui.GuiColumns.AppColumn.Value = configurationFileFormat.GuiColumns.AppColumn;
|
||||
|
@ -559,14 +603,13 @@ namespace Ryujinx.Configuration
|
|||
Ui.EnableCustomTheme.Value = configurationFileFormat.EnableCustomTheme;
|
||||
Ui.CustomThemePath.Value = configurationFileFormat.CustomThemePath;
|
||||
Hid.EnableKeyboard.Value = configurationFileFormat.EnableKeyboard;
|
||||
Hid.KeyboardControls.Value = configurationFileFormat.KeyboardControls;
|
||||
Hid.JoystickControls.Value = configurationFileFormat.JoystickControls;
|
||||
Hid.InputConfig.Value = inputConfig;
|
||||
|
||||
if (configurationFileUpdated)
|
||||
{
|
||||
ToFileFormat().SaveConfig(configurationFilePath);
|
||||
|
||||
Common.Logging.Logger.PrintWarning(LogClass.Application, "Configuration file is updated!");
|
||||
Common.Logging.Logger.PrintWarning(LogClass.Application, "Configuration file has been updated!");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,21 +1,16 @@
|
|||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public class NpadController
|
||||
public class ControllerConfig : InputConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Enables or disables controller support
|
||||
/// Controller Left Analog Stick Deadzone
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
public float DeadzoneLeft { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller Device Index
|
||||
/// Controller Right Analog Stick Deadzone
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller Analog Stick Deadzone
|
||||
/// </summary>
|
||||
public float Deadzone { get; set; }
|
||||
public float DeadzoneRight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller Trigger Threshold
|
||||
|
@ -32,4 +27,4 @@
|
|||
/// </summary>
|
||||
public NpadControllerRight RightJoycon { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -40,6 +40,7 @@
|
|||
Hat2Up,
|
||||
Hat2Down,
|
||||
Hat2Left,
|
||||
Hat2Right
|
||||
Hat2Right,
|
||||
Unbound
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,20 @@
|
|||
namespace Ryujinx.Configuration.Hid
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public enum ControllerType
|
||||
[Flags]
|
||||
// This enum was duplicated from Ryujinx.HLE.HOS.Services.Hid.PlayerIndex and should be kept identical
|
||||
public enum ControllerType : int
|
||||
{
|
||||
ProController,
|
||||
Handheld,
|
||||
NpadPair,
|
||||
NpadLeft,
|
||||
NpadRight
|
||||
None,
|
||||
ProController = 1 << 0,
|
||||
Handheld = 1 << 1,
|
||||
JoyconPair = 1 << 2,
|
||||
JoyconLeft = 1 << 3,
|
||||
JoyconRight = 1 << 4,
|
||||
Invalid = 1 << 5,
|
||||
Pokeball = 1 << 6,
|
||||
SystemExternal = 1 << 29,
|
||||
System = 1 << 30
|
||||
}
|
||||
}
|
||||
}
|
20
Ryujinx.Common/Configuration/Hid/InputConfig.cs
Normal file
20
Ryujinx.Common/Configuration/Hid/InputConfig.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public class InputConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Controller Device Index
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller's Type
|
||||
/// </summary>
|
||||
public ControllerType ControllerType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Player's Index for the controller
|
||||
/// </summary>
|
||||
public PlayerIndex PlayerIndex { get; set; }
|
||||
}
|
||||
}
|
|
@ -148,6 +148,7 @@
|
|||
Slash = 128,
|
||||
BackSlash = 129,
|
||||
NonUSBackSlash = 130,
|
||||
LastKey = 131
|
||||
LastKey = 131,
|
||||
Unbound
|
||||
}
|
||||
}
|
||||
|
|
20
Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
Normal file
20
Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public class KeyboardConfig : InputConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// Left JoyCon Keyboard Bindings
|
||||
/// </summary>
|
||||
public NpadKeyboardLeft LeftJoycon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Right JoyCon Keyboard Bindings
|
||||
/// </summary>
|
||||
public NpadKeyboardRight RightJoycon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hotkey Keyboard Bindings
|
||||
/// </summary>
|
||||
public KeyboardHotkeys Hotkeys { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,7 +1,9 @@
|
|||
namespace Ryujinx.Configuration.Hid
|
||||
using Ryujinx.Configuration.Hid;
|
||||
|
||||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public struct KeyboardHotkeys
|
||||
{
|
||||
public Key ToggleVsync { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,14 +2,19 @@
|
|||
{
|
||||
public struct NpadControllerLeft
|
||||
{
|
||||
public ControllerInputId Stick { get; set; }
|
||||
public ControllerInputId StickX { get; set; }
|
||||
public bool InvertStickX { get; set; }
|
||||
public ControllerInputId StickY { get; set; }
|
||||
public bool InvertStickY { get; set; }
|
||||
public ControllerInputId StickButton { get; set; }
|
||||
public ControllerInputId ButtonMinus { get; set; }
|
||||
public ControllerInputId ButtonL { get; set; }
|
||||
public ControllerInputId ButtonZl { get; set; }
|
||||
public ControllerInputId ButtonSl { get; set; }
|
||||
public ControllerInputId ButtonSr { get; set; }
|
||||
public ControllerInputId DPadUp { get; set; }
|
||||
public ControllerInputId DPadDown { get; set; }
|
||||
public ControllerInputId DPadLeft { get; set; }
|
||||
public ControllerInputId DPadRight { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,10 @@
|
|||
{
|
||||
public struct NpadControllerRight
|
||||
{
|
||||
public ControllerInputId Stick { get; set; }
|
||||
public ControllerInputId StickX { get; set; }
|
||||
public bool InvertStickX { get; set; }
|
||||
public ControllerInputId StickY { get; set; }
|
||||
public bool InvertStickY { get; set; }
|
||||
public ControllerInputId StickButton { get; set; }
|
||||
public ControllerInputId ButtonA { get; set; }
|
||||
public ControllerInputId ButtonB { get; set; }
|
||||
|
@ -11,5 +14,7 @@
|
|||
public ControllerInputId ButtonPlus { get; set; }
|
||||
public ControllerInputId ButtonR { get; set; }
|
||||
public ControllerInputId ButtonZr { get; set; }
|
||||
public ControllerInputId ButtonSl { get; set; }
|
||||
public ControllerInputId ButtonSr { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
namespace Ryujinx.UI.Input
|
||||
{
|
||||
public class NpadKeyboard
|
||||
{
|
||||
/// <summary>
|
||||
/// Left JoyCon Keyboard Bindings
|
||||
/// </summary>
|
||||
public Configuration.Hid.NpadKeyboardLeft LeftJoycon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Right JoyCon Keyboard Bindings
|
||||
/// </summary>
|
||||
public Configuration.Hid.NpadKeyboardRight RightJoycon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Hotkey Keyboard Bindings
|
||||
/// </summary>
|
||||
public Configuration.Hid.KeyboardHotkeys Hotkeys { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
namespace Ryujinx.Configuration.Hid
|
||||
using Ryujinx.Configuration.Hid;
|
||||
|
||||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public struct NpadKeyboardLeft
|
||||
{
|
||||
|
@ -14,5 +16,7 @@
|
|||
public Key ButtonMinus { get; set; }
|
||||
public Key ButtonL { get; set; }
|
||||
public Key ButtonZl { get; set; }
|
||||
public Key ButtonSl { get; set; }
|
||||
public Key ButtonSr { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
namespace Ryujinx.Configuration.Hid
|
||||
using Ryujinx.Configuration.Hid;
|
||||
|
||||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
public struct NpadKeyboardRight
|
||||
{
|
||||
|
@ -14,5 +16,7 @@
|
|||
public Key ButtonPlus { get; set; }
|
||||
public Key ButtonR { get; set; }
|
||||
public Key ButtonZr { get; set; }
|
||||
public Key ButtonSl { get; set; }
|
||||
public Key ButtonSr { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
18
Ryujinx.Common/Configuration/Hid/PlayerIndex.cs
Normal file
18
Ryujinx.Common/Configuration/Hid/PlayerIndex.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
namespace Ryujinx.Common.Configuration.Hid
|
||||
{
|
||||
// This enum was duplicated from Ryujinx.HLE.HOS.Services.Hid.PlayerIndex and should be kept identical
|
||||
public enum PlayerIndex : int
|
||||
{
|
||||
Player1 = 0,
|
||||
Player2 = 1,
|
||||
Player3 = 2,
|
||||
Player4 = 3,
|
||||
Player5 = 4,
|
||||
Player6 = 5,
|
||||
Player7 = 6,
|
||||
Player8 = 7,
|
||||
Handheld = 8,
|
||||
Unknown = 9,
|
||||
Auto = 10 // Shouldn't be used directly
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue