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
|
@ -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