aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTSRBerry <20988865+TSRBerry@users.noreply.github.com>2023-06-28 18:23:00 +0200
committerGitHub <noreply@github.com>2023-06-28 18:23:00 +0200
commit46b7c905f5dbb8c7e527281e22d5d2fc36bc666f (patch)
tree5b5dc632da1288a698bb8ad2c83a13cfe861ea57
parent40f2bd37e3b025ae3b932d15971d8a8e2f8b9866 (diff)
[Ryujinx.Input] Address dotnet-format issues (#5384)1.1.934
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Address dotnet format CA1816 warnings * Address or silence dotnet format CA1806 and a few CA1854 warnings * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Add comments to disabled warnings * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * Remove redundant code, convert to auto-properties and fix naming rule violations * Remove bogus change * Address review feedback
-rw-r--r--src/Ryujinx.Input/Assigner/GamepadButtonAssigner.cs15
-rw-r--r--src/Ryujinx.Input/Assigner/IButtonAssigner.cs2
-rw-r--r--src/Ryujinx.Input/Assigner/KeyboardKeyAssigner.cs4
-rw-r--r--src/Ryujinx.Input/GamepadButtonInputId.cs2
-rw-r--r--src/Ryujinx.Input/GamepadFeaturesFlag.cs2
-rw-r--r--src/Ryujinx.Input/HLE/InputManager.cs3
-rw-r--r--src/Ryujinx.Input/HLE/NpadController.cs368
-rw-r--r--src/Ryujinx.Input/HLE/NpadManager.cs33
-rw-r--r--src/Ryujinx.Input/HLE/TouchScreenManager.cs15
-rw-r--r--src/Ryujinx.Input/IMouse.cs4
-rw-r--r--src/Ryujinx.Input/Key.cs4
-rw-r--r--src/Ryujinx.Input/KeyboardStateSnapshot.cs2
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Client.cs157
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs22
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerInfo.cs4
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Protocol/Header.cs2
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Protocol/MessageType.cs4
-rw-r--r--src/Ryujinx.Input/Motion/CemuHook/Protocol/SharedResponse.cs18
-rw-r--r--src/Ryujinx.Input/Motion/MotionInput.cs14
-rw-r--r--src/Ryujinx.Input/Motion/MotionSensorFilter.cs14
-rw-r--r--src/Ryujinx.Input/MotionInputId.cs2
-rw-r--r--src/Ryujinx.Input/MouseButton.cs4
-rw-r--r--src/Ryujinx.Input/MouseStateSnapshot.cs6
-rw-r--r--src/Ryujinx.Input/StickInputId.cs2
24 files changed, 352 insertions, 351 deletions
diff --git a/src/Ryujinx.Input/Assigner/GamepadButtonAssigner.cs b/src/Ryujinx.Input/Assigner/GamepadButtonAssigner.cs
index 8621b3a5..388ebcc0 100644
--- a/src/Ryujinx.Input/Assigner/GamepadButtonAssigner.cs
+++ b/src/Ryujinx.Input/Assigner/GamepadButtonAssigner.cs
@@ -10,15 +10,15 @@ namespace Ryujinx.Input.Assigner
/// </summary>
public class GamepadButtonAssigner : IButtonAssigner
{
- private IGamepad _gamepad;
+ private readonly IGamepad _gamepad;
private GamepadStateSnapshot _currState;
private GamepadStateSnapshot _prevState;
- private JoystickButtonDetector _detector;
+ private readonly JoystickButtonDetector _detector;
- private bool _forStick;
+ private readonly bool _forStick;
public GamepadButtonAssigner(IGamepad gamepad, float triggerThreshold, bool forStick)
{
@@ -35,7 +35,7 @@ namespace Ryujinx.Input.Assigner
{
_currState = _gamepad.GetStateSnapshot();
_prevState = _currState;
- }
+ }
}
public void ReadInput()
@@ -116,7 +116,7 @@ namespace Ryujinx.Input.Assigner
private class JoystickButtonDetector
{
- private Dictionary<GamepadButtonInputId, InputSummary> _stats;
+ private readonly Dictionary<GamepadButtonInputId, InputSummary> _stats;
public JoystickButtonDetector()
{
@@ -135,9 +135,8 @@ namespace Ryujinx.Input.Assigner
public void AddInput(GamepadButtonInputId button, float value)
{
- InputSummary inputSummary;
- if (!_stats.TryGetValue(button, out inputSummary))
+ if (!_stats.TryGetValue(button, out InputSummary inputSummary))
{
inputSummary = new InputSummary();
_stats.Add(button, inputSummary);
@@ -148,7 +147,7 @@ namespace Ryujinx.Input.Assigner
public override string ToString()
{
- StringWriter writer = new StringWriter();
+ StringWriter writer = new();
foreach (var kvp in _stats)
{
diff --git a/src/Ryujinx.Input/Assigner/IButtonAssigner.cs b/src/Ryujinx.Input/Assigner/IButtonAssigner.cs
index 021736df..76a9fece 100644
--- a/src/Ryujinx.Input/Assigner/IButtonAssigner.cs
+++ b/src/Ryujinx.Input/Assigner/IButtonAssigner.cs
@@ -33,4 +33,4 @@ namespace Ryujinx.Input.Assigner
/// <returns>The pressed button that was read</returns>
string GetPressedButton();
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Assigner/KeyboardKeyAssigner.cs b/src/Ryujinx.Input/Assigner/KeyboardKeyAssigner.cs
index 23ae3655..e52ef4a2 100644
--- a/src/Ryujinx.Input/Assigner/KeyboardKeyAssigner.cs
+++ b/src/Ryujinx.Input/Assigner/KeyboardKeyAssigner.cs
@@ -5,7 +5,7 @@ namespace Ryujinx.Input.Assigner
/// </summary>
public class KeyboardKeyAssigner : IButtonAssigner
{
- private IKeyboard _keyboard;
+ private readonly IKeyboard _keyboard;
private KeyboardStateSnapshot _keyboardState;
@@ -47,4 +47,4 @@ namespace Ryujinx.Input.Assigner
return !ShouldCancel() ? keyPressed : "";
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/GamepadButtonInputId.cs b/src/Ryujinx.Input/GamepadButtonInputId.cs
index d1e4b9ac..618f8d0a 100644
--- a/src/Ryujinx.Input/GamepadButtonInputId.cs
+++ b/src/Ryujinx.Input/GamepadButtonInputId.cs
@@ -52,6 +52,6 @@
SingleLeftTrigger1,
SingleRightTrigger1,
- Count
+ Count,
}
}
diff --git a/src/Ryujinx.Input/GamepadFeaturesFlag.cs b/src/Ryujinx.Input/GamepadFeaturesFlag.cs
index 87310a32..206b4ea1 100644
--- a/src/Ryujinx.Input/GamepadFeaturesFlag.cs
+++ b/src/Ryujinx.Input/GamepadFeaturesFlag.cs
@@ -23,6 +23,6 @@ namespace Ryujinx.Input
/// Motion
/// <remarks>Also named sixaxis</remarks>
/// </summary>
- Motion
+ Motion,
}
}
diff --git a/src/Ryujinx.Input/HLE/InputManager.cs b/src/Ryujinx.Input/HLE/InputManager.cs
index bc38cf5a..6dba839b 100644
--- a/src/Ryujinx.Input/HLE/InputManager.cs
+++ b/src/Ryujinx.Input/HLE/InputManager.cs
@@ -25,7 +25,7 @@ namespace Ryujinx.Input.HLE
{
return new NpadManager(KeyboardDriver, GamepadDriver, MouseDriver);
}
-
+
public TouchScreenManager CreateTouchScreenManager()
{
if (MouseDriver == null)
@@ -48,6 +48,7 @@ namespace Ryujinx.Input.HLE
public void Dispose()
{
+ GC.SuppressFinalize(this);
Dispose(true);
}
}
diff --git a/src/Ryujinx.Input/HLE/NpadController.cs b/src/Ryujinx.Input/HLE/NpadController.cs
index 46c0fc33..c193b45c 100644
--- a/src/Ryujinx.Input/HLE/NpadController.cs
+++ b/src/Ryujinx.Input/HLE/NpadController.cs
@@ -8,7 +8,6 @@ using System;
using System.Collections.Concurrent;
using System.Numerics;
using System.Runtime.CompilerServices;
-
using CemuHookClient = Ryujinx.Input.Motion.CemuHook.Client;
using ConfigControllerType = Ryujinx.Common.Configuration.Hid.ControllerType;
@@ -28,29 +27,28 @@ namespace Ryujinx.Input.HLE
}
}
- private static readonly HLEButtonMappingEntry[] _hleButtonMapping = new HLEButtonMappingEntry[]
- {
- new HLEButtonMappingEntry(GamepadButtonInputId.A, ControllerKeys.A),
- new HLEButtonMappingEntry(GamepadButtonInputId.B, ControllerKeys.B),
- new HLEButtonMappingEntry(GamepadButtonInputId.X, ControllerKeys.X),
- new HLEButtonMappingEntry(GamepadButtonInputId.Y, ControllerKeys.Y),
- new HLEButtonMappingEntry(GamepadButtonInputId.LeftStick, ControllerKeys.LStick),
- new HLEButtonMappingEntry(GamepadButtonInputId.RightStick, ControllerKeys.RStick),
- new HLEButtonMappingEntry(GamepadButtonInputId.LeftShoulder, ControllerKeys.L),
- new HLEButtonMappingEntry(GamepadButtonInputId.RightShoulder, ControllerKeys.R),
- new HLEButtonMappingEntry(GamepadButtonInputId.LeftTrigger, ControllerKeys.Zl),
- new HLEButtonMappingEntry(GamepadButtonInputId.RightTrigger, ControllerKeys.Zr),
- new HLEButtonMappingEntry(GamepadButtonInputId.DpadUp, ControllerKeys.DpadUp),
- new HLEButtonMappingEntry(GamepadButtonInputId.DpadDown, ControllerKeys.DpadDown),
- new HLEButtonMappingEntry(GamepadButtonInputId.DpadLeft, ControllerKeys.DpadLeft),
- new HLEButtonMappingEntry(GamepadButtonInputId.DpadRight, ControllerKeys.DpadRight),
- new HLEButtonMappingEntry(GamepadButtonInputId.Minus, ControllerKeys.Minus),
- new HLEButtonMappingEntry(GamepadButtonInputId.Plus, ControllerKeys.Plus),
-
- new HLEButtonMappingEntry(GamepadButtonInputId.SingleLeftTrigger0, ControllerKeys.SlLeft),
- new HLEButtonMappingEntry(GamepadButtonInputId.SingleRightTrigger0, ControllerKeys.SrLeft),
- new HLEButtonMappingEntry(GamepadButtonInputId.SingleLeftTrigger1, ControllerKeys.SlRight),
- new HLEButtonMappingEntry(GamepadButtonInputId.SingleRightTrigger1, ControllerKeys.SrRight),
+ private static readonly HLEButtonMappingEntry[] _hleButtonMapping = {
+ new(GamepadButtonInputId.A, ControllerKeys.A),
+ new(GamepadButtonInputId.B, ControllerKeys.B),
+ new(GamepadButtonInputId.X, ControllerKeys.X),
+ new(GamepadButtonInputId.Y, ControllerKeys.Y),
+ new(GamepadButtonInputId.LeftStick, ControllerKeys.LStick),
+ new(GamepadButtonInputId.RightStick, ControllerKeys.RStick),
+ new(GamepadButtonInputId.LeftShoulder, ControllerKeys.L),
+ new(GamepadButtonInputId.RightShoulder, ControllerKeys.R),
+ new(GamepadButtonInputId.LeftTrigger, ControllerKeys.Zl),
+ new(GamepadButtonInputId.RightTrigger, ControllerKeys.Zr),
+ new(GamepadButtonInputId.DpadUp, ControllerKeys.DpadUp),
+ new(GamepadButtonInputId.DpadDown, ControllerKeys.DpadDown),
+ new(GamepadButtonInputId.DpadLeft, ControllerKeys.DpadLeft),
+ new(GamepadButtonInputId.DpadRight, ControllerKeys.DpadRight),
+ new(GamepadButtonInputId.Minus, ControllerKeys.Minus),
+ new(GamepadButtonInputId.Plus, ControllerKeys.Plus),
+
+ new(GamepadButtonInputId.SingleLeftTrigger0, ControllerKeys.SlLeft),
+ new(GamepadButtonInputId.SingleRightTrigger0, ControllerKeys.SrLeft),
+ new(GamepadButtonInputId.SingleLeftTrigger1, ControllerKeys.SlRight),
+ new(GamepadButtonInputId.SingleRightTrigger1, ControllerKeys.SrRight),
};
private class HLEKeyboardMappingEntry
@@ -65,150 +63,147 @@ namespace Ryujinx.Input.HLE
}
}
- private static readonly HLEKeyboardMappingEntry[] KeyMapping = new HLEKeyboardMappingEntry[]
- {
- new HLEKeyboardMappingEntry(Key.A, 0x4),
- new HLEKeyboardMappingEntry(Key.B, 0x5),
- new HLEKeyboardMappingEntry(Key.C, 0x6),
- new HLEKeyboardMappingEntry(Key.D, 0x7),
- new HLEKeyboardMappingEntry(Key.E, 0x8),
- new HLEKeyboardMappingEntry(Key.F, 0x9),
- new HLEKeyboardMappingEntry(Key.G, 0xA),
- new HLEKeyboardMappingEntry(Key.H, 0xB),
- new HLEKeyboardMappingEntry(Key.I, 0xC),
- new HLEKeyboardMappingEntry(Key.J, 0xD),
- new HLEKeyboardMappingEntry(Key.K, 0xE),
- new HLEKeyboardMappingEntry(Key.L, 0xF),
- new HLEKeyboardMappingEntry(Key.M, 0x10),
- new HLEKeyboardMappingEntry(Key.N, 0x11),
- new HLEKeyboardMappingEntry(Key.O, 0x12),
- new HLEKeyboardMappingEntry(Key.P, 0x13),
- new HLEKeyboardMappingEntry(Key.Q, 0x14),
- new HLEKeyboardMappingEntry(Key.R, 0x15),
- new HLEKeyboardMappingEntry(Key.S, 0x16),
- new HLEKeyboardMappingEntry(Key.T, 0x17),
- new HLEKeyboardMappingEntry(Key.U, 0x18),
- new HLEKeyboardMappingEntry(Key.V, 0x19),
- new HLEKeyboardMappingEntry(Key.W, 0x1A),
- new HLEKeyboardMappingEntry(Key.X, 0x1B),
- new HLEKeyboardMappingEntry(Key.Y, 0x1C),
- new HLEKeyboardMappingEntry(Key.Z, 0x1D),
-
- new HLEKeyboardMappingEntry(Key.Number1, 0x1E),
- new HLEKeyboardMappingEntry(Key.Number2, 0x1F),
- new HLEKeyboardMappingEntry(Key.Number3, 0x20),
- new HLEKeyboardMappingEntry(Key.Number4, 0x21),
- new HLEKeyboardMappingEntry(Key.Number5, 0x22),
- new HLEKeyboardMappingEntry(Key.Number6, 0x23),
- new HLEKeyboardMappingEntry(Key.Number7, 0x24),
- new HLEKeyboardMappingEntry(Key.Number8, 0x25),
- new HLEKeyboardMappingEntry(Key.Number9, 0x26),
- new HLEKeyboardMappingEntry(Key.Number0, 0x27),
-
- new HLEKeyboardMappingEntry(Key.Enter, 0x28),
- new HLEKeyboardMappingEntry(Key.Escape, 0x29),
- new HLEKeyboardMappingEntry(Key.BackSpace, 0x2A),
- new HLEKeyboardMappingEntry(Key.Tab, 0x2B),
- new HLEKeyboardMappingEntry(Key.Space, 0x2C),
- new HLEKeyboardMappingEntry(Key.Minus, 0x2D),
- new HLEKeyboardMappingEntry(Key.Plus, 0x2E),
- new HLEKeyboardMappingEntry(Key.BracketLeft, 0x2F),
- new HLEKeyboardMappingEntry(Key.BracketRight, 0x30),
- new HLEKeyboardMappingEntry(Key.BackSlash, 0x31),
- new HLEKeyboardMappingEntry(Key.Tilde, 0x32),
- new HLEKeyboardMappingEntry(Key.Semicolon, 0x33),
- new HLEKeyboardMappingEntry(Key.Quote, 0x34),
- new HLEKeyboardMappingEntry(Key.Grave, 0x35),
- new HLEKeyboardMappingEntry(Key.Comma, 0x36),
- new HLEKeyboardMappingEntry(Key.Period, 0x37),
- new HLEKeyboardMappingEntry(Key.Slash, 0x38),
- new HLEKeyboardMappingEntry(Key.CapsLock, 0x39),
-
- new HLEKeyboardMappingEntry(Key.F1, 0x3a),
- new HLEKeyboardMappingEntry(Key.F2, 0x3b),
- new HLEKeyboardMappingEntry(Key.F3, 0x3c),
- new HLEKeyboardMappingEntry(Key.F4, 0x3d),
- new HLEKeyboardMappingEntry(Key.F5, 0x3e),
- new HLEKeyboardMappingEntry(Key.F6, 0x3f),
- new HLEKeyboardMappingEntry(Key.F7, 0x40),
- new HLEKeyboardMappingEntry(Key.F8, 0x41),
- new HLEKeyboardMappingEntry(Key.F9, 0x42),
- new HLEKeyboardMappingEntry(Key.F10, 0x43),
- new HLEKeyboardMappingEntry(Key.F11, 0x44),
- new HLEKeyboardMappingEntry(Key.F12, 0x45),
-
- new HLEKeyboardMappingEntry(Key.PrintScreen, 0x46),
- new HLEKeyboardMappingEntry(Key.ScrollLock, 0x47),
- new HLEKeyboardMappingEntry(Key.Pause, 0x48),
- new HLEKeyboardMappingEntry(Key.Insert, 0x49),
- new HLEKeyboardMappingEntry(Key.Home, 0x4A),
- new HLEKeyboardMappingEntry(Key.PageUp, 0x4B),
- new HLEKeyboardMappingEntry(Key.Delete, 0x4C),
- new HLEKeyboardMappingEntry(Key.End, 0x4D),
- new HLEKeyboardMappingEntry(Key.PageDown, 0x4E),
- new HLEKeyboardMappingEntry(Key.Right, 0x4F),
- new HLEKeyboardMappingEntry(Key.Left, 0x50),
- new HLEKeyboardMappingEntry(Key.Down, 0x51),
- new HLEKeyboardMappingEntry(Key.Up, 0x52),
-
- new HLEKeyboardMappingEntry(Key.NumLock, 0x53),
- new HLEKeyboardMappingEntry(Key.KeypadDivide, 0x54),
- new HLEKeyboardMappingEntry(Key.KeypadMultiply, 0x55),
- new HLEKeyboardMappingEntry(Key.KeypadSubtract, 0x56),
- new HLEKeyboardMappingEntry(Key.KeypadAdd, 0x57),
- new HLEKeyboardMappingEntry(Key.KeypadEnter, 0x58),
- new HLEKeyboardMappingEntry(Key.Keypad1, 0x59),
- new HLEKeyboardMappingEntry(Key.Keypad2, 0x5A),
- new HLEKeyboardMappingEntry(Key.Keypad3, 0x5B),
- new HLEKeyboardMappingEntry(Key.Keypad4, 0x5C),
- new HLEKeyboardMappingEntry(Key.Keypad5, 0x5D),
- new HLEKeyboardMappingEntry(Key.Keypad6, 0x5E),
- new HLEKeyboardMappingEntry(Key.Keypad7, 0x5F),
- new HLEKeyboardMappingEntry(Key.Keypad8, 0x60),
- new HLEKeyboardMappingEntry(Key.Keypad9, 0x61),
- new HLEKeyboardMappingEntry(Key.Keypad0, 0x62),
- new HLEKeyboardMappingEntry(Key.KeypadDecimal, 0x63),
-
- new HLEKeyboardMappingEntry(Key.F13, 0x68),
- new HLEKeyboardMappingEntry(Key.F14, 0x69),
- new HLEKeyboardMappingEntry(Key.F15, 0x6A),
- new HLEKeyboardMappingEntry(Key.F16, 0x6B),
- new HLEKeyboardMappingEntry(Key.F17, 0x6C),
- new HLEKeyboardMappingEntry(Key.F18, 0x6D),
- new HLEKeyboardMappingEntry(Key.F19, 0x6E),
- new HLEKeyboardMappingEntry(Key.F20, 0x6F),
- new HLEKeyboardMappingEntry(Key.F21, 0x70),
- new HLEKeyboardMappingEntry(Key.F22, 0x71),
- new HLEKeyboardMappingEntry(Key.F23, 0x72),
- new HLEKeyboardMappingEntry(Key.F24, 0x73),
-
- new HLEKeyboardMappingEntry(Key.ControlLeft, 0xE0),
- new HLEKeyboardMappingEntry(Key.ShiftLeft, 0xE1),
- new HLEKeyboardMappingEntry(Key.AltLeft, 0xE2),
- new HLEKeyboardMappingEntry(Key.WinLeft, 0xE3),
- new HLEKeyboardMappingEntry(Key.ControlRight, 0xE4),
- new HLEKeyboardMappingEntry(Key.ShiftRight, 0xE5),
- new HLEKeyboardMappingEntry(Key.AltRight, 0xE6),
- new HLEKeyboardMappingEntry(Key.WinRight, 0xE7),
+ private static readonly HLEKeyboardMappingEntry[] _keyMapping = {
+ new(Key.A, 0x4),
+ new(Key.B, 0x5),
+ new(Key.C, 0x6),
+ new(Key.D, 0x7),
+ new(Key.E, 0x8),
+ new(Key.F, 0x9),
+ new(Key.G, 0xA),
+ new(Key.H, 0xB),
+ new(Key.I, 0xC),
+ new(Key.J, 0xD),
+ new(Key.K, 0xE),
+ new(Key.L, 0xF),
+ new(Key.M, 0x10),
+ new(Key.N, 0x11),
+ new(Key.O, 0x12),
+ new(Key.P, 0x13),
+ new(Key.Q, 0x14),
+ new(Key.R, 0x15),
+ new(Key.S, 0x16),
+ new(Key.T, 0x17),
+ new(Key.U, 0x18),
+ new(Key.V, 0x19),
+ new(Key.W, 0x1A),
+ new(Key.X, 0x1B),
+ new(Key.Y, 0x1C),
+ new(Key.Z, 0x1D),
+
+ new(Key.Number1, 0x1E),
+ new(Key.Number2, 0x1F),
+ new(Key.Number3, 0x20),
+ new(Key.Number4, 0x21),
+ new(Key.Number5, 0x22),
+ new(Key.Number6, 0x23),
+ new(Key.Number7, 0x24),
+ new(Key.Number8, 0x25),
+ new(Key.Number9, 0x26),
+ new(Key.Number0, 0x27),
+
+ new(Key.Enter, 0x28),
+ new(Key.Escape, 0x29),
+ new(Key.BackSpace, 0x2A),
+ new(Key.Tab, 0x2B),
+ new(Key.Space, 0x2C),
+ new(Key.Minus, 0x2D),
+ new(Key.Plus, 0x2E),
+ new(Key.BracketLeft, 0x2F),
+ new(Key.BracketRight, 0x30),
+ new(Key.BackSlash, 0x31),
+ new(Key.Tilde, 0x32),
+ new(Key.Semicolon, 0x33),
+ new(Key.Quote, 0x34),
+ new(Key.Grave, 0x35),
+ new(Key.Comma, 0x36),
+ new(Key.Period, 0x37),
+ new(Key.Slash, 0x38),
+ new(Key.CapsLock, 0x39),
+
+ new(Key.F1, 0x3a),
+ new(Key.F2, 0x3b),
+ new(Key.F3, 0x3c),
+ new(Key.F4, 0x3d),
+ new(Key.F5, 0x3e),
+ new(Key.F6, 0x3f),
+ new(Key.F7, 0x40),
+ new(Key.F8, 0x41),
+ new(Key.F9, 0x42),
+ new(Key.F10, 0x43),
+ new(Key.F11, 0x44),
+ new(Key.F12, 0x45),
+
+ new(Key.PrintScreen, 0x46),
+ new(Key.ScrollLock, 0x47),
+ new(Key.Pause, 0x48),
+ new(Key.Insert, 0x49),
+ new(Key.Home, 0x4A),
+ new(Key.PageUp, 0x4B),
+ new(Key.Delete, 0x4C),
+ new(Key.End, 0x4D),
+ new(Key.PageDown, 0x4E),
+ new(Key.Right, 0x4F),
+ new(Key.Left, 0x50),
+ new(Key.Down, 0x51),
+ new(Key.Up, 0x52),
+
+ new(Key.NumLock, 0x53),
+ new(Key.KeypadDivide, 0x54),
+ new(Key.KeypadMultiply, 0x55),
+ new(Key.KeypadSubtract, 0x56),
+ new(Key.KeypadAdd, 0x57),
+ new(Key.KeypadEnter, 0x58),
+ new(Key.Keypad1, 0x59),
+ new(Key.Keypad2, 0x5A),
+ new(Key.Keypad3, 0x5B),
+ new(Key.Keypad4, 0x5C),
+ new(Key.Keypad5, 0x5D),
+ new(Key.Keypad6, 0x5E),
+ new(Key.Keypad7, 0x5F),
+ new(Key.Keypad8, 0x60),
+ new(Key.Keypad9, 0x61),
+ new(Key.Keypad0, 0x62),
+ new(Key.KeypadDecimal, 0x63),
+
+ new(Key.F13, 0x68),
+ new(Key.F14, 0x69),
+ new(Key.F15, 0x6A),
+ new(Key.F16, 0x6B),
+ new(Key.F17, 0x6C),
+ new(Key.F18, 0x6D),
+ new(Key.F19, 0x6E),
+ new(Key.F20, 0x6F),
+ new(Key.F21, 0x70),
+ new(Key.F22, 0x71),
+ new(Key.F23, 0x72),
+ new(Key.F24, 0x73),
+
+ new(Key.ControlLeft, 0xE0),
+ new(Key.ShiftLeft, 0xE1),
+ new(Key.AltLeft, 0xE2),
+ new(Key.WinLeft, 0xE3),
+ new(Key.ControlRight, 0xE4),
+ new(Key.ShiftRight, 0xE5),
+ new(Key.AltRight, 0xE6),
+ new(Key.WinRight, 0xE7),
};
- private static readonly HLEKeyboardMappingEntry[] KeyModifierMapping = new HLEKeyboardMappingEntry[]
- {
- new HLEKeyboardMappingEntry(Key.ControlLeft, 0),
- new HLEKeyboardMappingEntry(Key.ShiftLeft, 1),
- new HLEKeyboardMappingEntry(Key.AltLeft, 2),
- new HLEKeyboardMappingEntry(Key.WinLeft, 3),
- new HLEKeyboardMappingEntry(Key.ControlRight, 4),
- new HLEKeyboardMappingEntry(Key.ShiftRight, 5),
- new HLEKeyboardMappingEntry(Key.AltRight, 6),
- new HLEKeyboardMappingEntry(Key.WinRight, 7),
- new HLEKeyboardMappingEntry(Key.CapsLock, 8),
- new HLEKeyboardMappingEntry(Key.ScrollLock, 9),
- new HLEKeyboardMappingEntry(Key.NumLock, 10),
+ private static readonly HLEKeyboardMappingEntry[] _keyModifierMapping = {
+ new(Key.ControlLeft, 0),
+ new(Key.ShiftLeft, 1),
+ new(Key.AltLeft, 2),
+ new(Key.WinLeft, 3),
+ new(Key.ControlRight, 4),
+ new(Key.ShiftRight, 5),
+ new(Key.AltRight, 6),
+ new(Key.WinRight, 7),
+ new(Key.CapsLock, 8),
+ new(Key.ScrollLock, 9),
+ new(Key.NumLock, 10),
};
private bool _isValid;
- private string _id;
private MotionInput _leftMotionInput;
private MotionInput _rightMotionInput;
@@ -219,14 +214,14 @@ namespace Ryujinx.Input.HLE
public IGamepadDriver GamepadDriver { get; private set; }
public GamepadStateSnapshot State { get; private set; }
- public string Id => _id;
+ public string Id { get; private set; }
- private CemuHookClient _cemuHookClient;
+ private readonly CemuHookClient _cemuHookClient;
public NpadController(CemuHookClient cemuHookClient)
{
State = default;
- _id = null;
+ Id = null;
_isValid = false;
_cemuHookClient = cemuHookClient;
}
@@ -237,8 +232,8 @@ namespace Ryujinx.Input.HLE
_gamepad?.Dispose();
- _id = config.Id;
- _gamepad = GamepadDriver.GetGamepad(_id);
+ Id = config.Id;
+ _gamepad = GamepadDriver.GetGamepad(Id);
_isValid = _gamepad != null;
UpdateUserConfiguration(config);
@@ -278,7 +273,7 @@ namespace Ryujinx.Input.HLE
if (motionConfig.MotionBackend != MotionInputBackendType.CemuHook)
{
_leftMotionInput = new MotionInput();
- }
+ }
else
{
_leftMotionInput = null;
@@ -347,7 +342,7 @@ namespace Ryujinx.Input.HLE
public GamepadInput GetHLEInputState()
{
- GamepadInput state = new GamepadInput();
+ GamepadInput state = new();
// First update all buttons
foreach (HLEButtonMappingEntry entry in _hleButtonMapping)
@@ -366,13 +361,13 @@ namespace Ryujinx.Input.HLE
state.LStick = new JoystickPosition
{
Dx = ClampAxis(leftAxisX),
- Dy = ClampAxis(leftAxisY)
+ Dy = ClampAxis(leftAxisY),
};
state.RStick = new JoystickPosition
{
Dx = ClampAxis(rightAxisX),
- Dy = ClampAxis(rightAxisY)
+ Dy = ClampAxis(rightAxisY),
};
}
else if (_config is StandardControllerInputConfig controllerConfig)
@@ -391,16 +386,16 @@ namespace Ryujinx.Input.HLE
private static JoystickPosition ApplyDeadzone(float x, float y, float deadzone)
{
float magnitudeClamped = Math.Min(MathF.Sqrt(x * x + y * y), 1f);
-
+
if (magnitudeClamped <= deadzone)
{
- return new JoystickPosition() {Dx = 0, Dy = 0};
+ return new JoystickPosition { Dx = 0, Dy = 0 };
}
-
- return new JoystickPosition()
+
+ return new JoystickPosition
{
Dx = ClampAxis((x / magnitudeClamped) * ((magnitudeClamped - deadzone) / (1 - deadzone))),
- Dy = ClampAxis((y / magnitudeClamped) * ((magnitudeClamped - deadzone) / (1 - deadzone)))
+ Dy = ClampAxis((y / magnitudeClamped) * ((magnitudeClamped - deadzone) / (1 - deadzone))),
};
}
@@ -428,7 +423,7 @@ namespace Ryujinx.Input.HLE
return new JoystickPosition
{
Dx = (int)point.X,
- Dy = (int)point.Y
+ Dy = (int)point.Y,
};
}
@@ -476,12 +471,12 @@ namespace Ryujinx.Input.HLE
rotation = new Vector3();
}
- return new SixAxisInput()
+ return new SixAxisInput
{
Accelerometer = accelerometer,
- Gyroscope = gyroscope,
- Rotation = rotation,
- Orientation = orientationForHLE
+ Gyroscope = gyroscope,
+ Rotation = rotation,
+ Orientation = orientationForHLE,
};
}
@@ -502,20 +497,20 @@ namespace Ryujinx.Input.HLE
{
KeyboardStateSnapshot keyboardState = keyboard.GetKeyboardStateSnapshot();
- KeyboardInput hidKeyboard = new KeyboardInput
+ KeyboardInput hidKeyboard = new()
{
Modifier = 0,
- Keys = new ulong[0x4]
+ Keys = new ulong[0x4],
};
- foreach (HLEKeyboardMappingEntry entry in KeyMapping)
+ foreach (HLEKeyboardMappingEntry entry in _keyMapping)
{
ulong value = keyboardState.IsPressed(entry.TargetKey) ? 1UL : 0UL;
hidKeyboard.Keys[entry.Target / 0x40] |= (value << (entry.Target % 0x40));
}
- foreach (HLEKeyboardMappingEntry entry in KeyModifierMapping)
+ foreach (HLEKeyboardMappingEntry entry in _keyModifierMapping)
{
int value = keyboardState.IsPressed(entry.TargetKey) ? 1 : 0;
@@ -539,6 +534,7 @@ namespace Ryujinx.Input.HLE
public void Dispose()
{
+ GC.SuppressFinalize(this);
Dispose(true);
}
diff --git a/src/Ryujinx.Input/HLE/NpadManager.cs b/src/Ryujinx.Input/HLE/NpadManager.cs
index 89a2f585..25887748 100644
--- a/src/Ryujinx.Input/HLE/NpadManager.cs
+++ b/src/Ryujinx.Input/HLE/NpadManager.cs
@@ -7,13 +7,15 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using CemuHookClient = Ryujinx.Input.Motion.CemuHook.Client;
+using ControllerType = Ryujinx.Common.Configuration.Hid.ControllerType;
+using PlayerIndex = Ryujinx.HLE.HOS.Services.Hid.PlayerIndex;
using Switch = Ryujinx.HLE.Switch;
namespace Ryujinx.Input.HLE
{
public class NpadManager : IDisposable
{
- private CemuHookClient _cemuHookClient;
+ private readonly CemuHookClient _cemuHookClient;
private readonly object _lock = new();
@@ -21,7 +23,7 @@ namespace Ryujinx.Input.HLE
private const int MaxControllers = 9;
- private NpadController[] _controllers;
+ private readonly NpadController[] _controllers;
private readonly IGamepadDriver _keyboardDriver;
private readonly IGamepadDriver _gamepadDriver;
@@ -51,7 +53,7 @@ namespace Ryujinx.Input.HLE
{
lock (_lock)
{
- List<InputConfig> validInputs = new List<InputConfig>();
+ List<InputConfig> validInputs = new();
foreach (var inputConfigEntry in _inputConfig)
{
if (_controllers[(int)inputConfigEntry.PlayerIndex] != null)
@@ -96,10 +98,8 @@ namespace Ryujinx.Input.HLE
{
return controller.UpdateDriverConfiguration(targetDriver, config);
}
- else
- {
- return controller.GamepadDriver != null;
- }
+
+ return controller.GamepadDriver != null;
}
public void ReloadConfiguration(List<InputConfig> inputConfig, bool enableKeyboard, bool enableMouse)
@@ -112,11 +112,11 @@ namespace Ryujinx.Input.HLE
_controllers[i] = null;
}
- List<InputConfig> validInputs = new List<InputConfig>();
+ List<InputConfig> validInputs = new();
foreach (InputConfig inputConfigEntry in inputConfig)
{
- NpadController controller = new NpadController(_cemuHookClient);
+ NpadController controller = new(_cemuHookClient);
bool isValid = DriverConfigurationUpdate(ref controller, inputConfigEntry);
@@ -131,9 +131,9 @@ namespace Ryujinx.Input.HLE
}
}
- _inputConfig = inputConfig;
+ _inputConfig = inputConfig;
_enableKeyboard = enableKeyboard;
- _enableMouse = enableMouse;
+ _enableMouse = enableMouse;
_device.Hid.RefreshInputConfig(validInputs);
}
@@ -167,8 +167,8 @@ namespace Ryujinx.Input.HLE
{
lock (_lock)
{
- List<GamepadInput> hleInputStates = new List<GamepadInput>();
- List<SixAxisInput> hleMotionStates = new List<SixAxisInput>(NpadDevices.MaxControllers);
+ List<GamepadInput> hleInputStates = new();
+ List<SixAxisInput> hleMotionStates = new(NpadDevices.MaxControllers);
KeyboardInput? hleKeyboardInput = null;
@@ -178,7 +178,7 @@ namespace Ryujinx.Input.HLE
(SixAxisInput, SixAxisInput) motionState = default;
NpadController controller = _controllers[(int)inputConfig.PlayerIndex];
- Ryujinx.HLE.HOS.Services.Hid.PlayerIndex playerIndex = (Ryujinx.HLE.HOS.Services.Hid.PlayerIndex)inputConfig.PlayerIndex;
+ PlayerIndex playerIndex = (PlayerIndex)inputConfig.PlayerIndex;
bool isJoyconPair = false;
@@ -195,7 +195,7 @@ namespace Ryujinx.Input.HLE
inputState.Buttons |= _device.Hid.UpdateStickButtons(inputState.LStick, inputState.RStick);
- isJoyconPair = inputConfig.ControllerType == Common.Configuration.Hid.ControllerType.JoyconPair;
+ isJoyconPair = inputConfig.ControllerType == ControllerType.JoyconPair;
var altMotionState = isJoyconPair ? controller.GetHLEMotionState(true) : default;
@@ -284,7 +284,7 @@ namespace Ryujinx.Input.HLE
{
lock (_lock)
{
- return _inputConfig.Find(x => x.PlayerIndex == (Ryujinx.Common.Configuration.Hid.PlayerIndex)index);
+ return _inputConfig.Find(x => x.PlayerIndex == (Common.Configuration.Hid.PlayerIndex)index);
}
}
@@ -314,6 +314,7 @@ namespace Ryujinx.Input.HLE
public void Dispose()
{
+ GC.SuppressFinalize(this);
Dispose(true);
}
}
diff --git a/src/Ryujinx.Input/HLE/TouchScreenManager.cs b/src/Ryujinx.Input/HLE/TouchScreenManager.cs
index e4b0f8fc..c613f928 100644
--- a/src/Ryujinx.Input/HLE/TouchScreenManager.cs
+++ b/src/Ryujinx.Input/HLE/TouchScreenManager.cs
@@ -31,7 +31,7 @@ namespace Ryujinx.Input.HLE
MouseStateSnapshot snapshot = IMouse.GetMouseStateSnapshot(_mouse);
var touchPosition = IMouse.GetScreenPosition(snapshot.Position, _mouse.ClientSize, aspectRatio);
- TouchPoint currentPoint = new TouchPoint
+ TouchPoint currentPoint = new()
{
Attribute = TouchAttribute.End,
@@ -41,7 +41,7 @@ namespace Ryujinx.Input.HLE
// Placeholder values till more data is acquired
DiameterX = 10,
DiameterY = 10,
- Angle = 90
+ Angle = 90,
};
_device.Hid.Touchscreen.Update(currentPoint);
@@ -71,7 +71,7 @@ namespace Ryujinx.Input.HLE
attribute = TouchAttribute.End;
}
- TouchPoint currentPoint = new TouchPoint
+ TouchPoint currentPoint = new()
{
Attribute = attribute,
@@ -81,7 +81,7 @@ namespace Ryujinx.Input.HLE
// Placeholder values till more data is acquired
DiameterX = 10,
DiameterY = 10,
- Angle = 90
+ Angle = 90,
};
_device.Hid.Touchscreen.Update(currentPoint);
@@ -94,6 +94,9 @@ namespace Ryujinx.Input.HLE
return false;
}
- public void Dispose() { }
+ public void Dispose()
+ {
+ GC.SuppressFinalize(this);
+ }
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/IMouse.cs b/src/Ryujinx.Input/IMouse.cs
index fde150fc..e20e7798 100644
--- a/src/Ryujinx.Input/IMouse.cs
+++ b/src/Ryujinx.Input/IMouse.cs
@@ -8,7 +8,9 @@ namespace Ryujinx.Input
/// </summary>
public interface IMouse : IGamepad
{
+#pragma warning disable IDE0051 // Remove unused private member
private const int SwitchPanelWidth = 1280;
+#pragma warning restore IDE0051
private const int SwitchPanelHeight = 720;
/// <summary>
@@ -101,4 +103,4 @@ namespace Ryujinx.Input
return new Vector2();
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Key.cs b/src/Ryujinx.Input/Key.cs
index 5fa04484..b4229e05 100644
--- a/src/Ryujinx.Input/Key.cs
+++ b/src/Ryujinx.Input/Key.cs
@@ -137,6 +137,6 @@
BackSlash,
Unbound,
- Count
+ Count,
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/KeyboardStateSnapshot.cs b/src/Ryujinx.Input/KeyboardStateSnapshot.cs
index da77a461..abf85666 100644
--- a/src/Ryujinx.Input/KeyboardStateSnapshot.cs
+++ b/src/Ryujinx.Input/KeyboardStateSnapshot.cs
@@ -7,7 +7,7 @@ namespace Ryujinx.Input
/// </summary>
public class KeyboardStateSnapshot
{
- private bool[] _keysState;
+ private readonly bool[] _keysState;
/// <summary>
/// Create a new <see cref="KeyboardStateSnapshot"/>.
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Client.cs b/src/Ryujinx.Input/Motion/CemuHook/Client.cs
index a79412a1..b8b936c1 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Client.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Client.cs
@@ -19,7 +19,7 @@ namespace Ryujinx.Input.Motion.CemuHook
{
public class Client : IDisposable
{
- public const uint Magic = 0x43555344; // DSUC
+ public const uint Magic = 0x43555344; // DSUC
public const ushort Version = 1001;
private bool _active;
@@ -29,15 +29,15 @@ namespace Ryujinx.Input.Motion.CemuHook
private readonly Dictionary<int, UdpClient> _clients;
private readonly bool[] _clientErrorStatus = new bool[Enum.GetValues<PlayerIndex>().Length];
- private readonly long[] _clientRetryTimer = new long[Enum.GetValues<PlayerIndex>().Length];
- private NpadManager _npadManager;
+ private readonly long[] _clientRetryTimer = new long[Enum.GetValues<PlayerIndex>().Length];
+ private readonly NpadManager _npadManager;
public Client(NpadManager npadManager)
{
_npadManager = npadManager;
- _hosts = new Dictionary<int, IPEndPoint>();
- _motionData = new Dictionary<int, Dictionary<int, MotionInput>>();
- _clients = new Dictionary<int, UdpClient>();
+ _hosts = new Dictionary<int, IPEndPoint>();
+ _motionData = new Dictionary<int, Dictionary<int, MotionInput>>();
+ _clients = new Dictionary<int, UdpClient>();
CloseClients();
}
@@ -84,7 +84,7 @@ namespace Ryujinx.Input.Motion.CemuHook
try
{
- IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(host), port);
+ IPEndPoint endPoint = new(IPAddress.Parse(host), port);
client = new UdpClient(host, port);
@@ -141,9 +141,9 @@ namespace Ryujinx.Input.Motion.CemuHook
{
lock (_motionData)
{
- if (_motionData.ContainsKey(player))
+ if (_motionData.TryGetValue(player, out Dictionary<int, MotionInput> value))
{
- if (_motionData[player].TryGetValue(slot, out input))
+ if (value.TryGetValue(slot, out input))
{
return true;
}
@@ -164,26 +164,26 @@ namespace Ryujinx.Input.Motion.CemuHook
private void Send(byte[] data, int clientId)
{
- if (_clients.TryGetValue(clientId, out UdpClient _client))
+ if (_clients.TryGetValue(clientId, out UdpClient client))
{
- if (_client != null && _client.Client != null && _client.Client.Connected)
+ if (client != null && client.Client != null && client.Client.Connected)
{
try
{
- _client?.Send(data, data.Length);
+ client?.Send(data, data.Length);
}
catch (SocketException socketException)
{
if (!_clientErrorStatus[clientId])
{
- Logger.Warning?.PrintMsg(LogClass.Hid, $"Unable to send data request to motion source at {_client.Client.RemoteEndPoint}. Error: {socketException.ErrorCode}");
+ Logger.Warning?.PrintMsg(LogClass.Hid, $"Unable to send data request to motion source at {client.Client.RemoteEndPoint}. Error: {socketException.ErrorCode}");
}
_clientErrorStatus[clientId] = true;
RemoveClient(clientId);
- _client?.Dispose();
+ client?.Dispose();
SetRetryTimer(clientId);
}
@@ -193,7 +193,7 @@ namespace Ryujinx.Input.Motion.CemuHook
RemoveClient(clientId);
- _client?.Dispose();
+ client?.Dispose();
SetRetryTimer(clientId);
}
@@ -203,13 +203,13 @@ namespace Ryujinx.Input.Motion.CemuHook
private byte[] Receive(int clientId, int timeout = 0)
{
- if (_hosts.TryGetValue(clientId, out IPEndPoint endPoint) && _clients.TryGetValue(clientId, out UdpClient _client))
+ if (_hosts.TryGetValue(clientId, out IPEndPoint endPoint) && _clients.TryGetValue(clientId, out UdpClient client))
{
- if (_client != null && _client.Client != null && _client.Client.Connected)
+ if (client != null && client.Client != null && client.Client.Connected)
{
- _client.Client.ReceiveTimeout = timeout;
+ client.Client.ReceiveTimeout = timeout;
- var result = _client?.Receive(ref endPoint);
+ var result = client?.Receive(ref endPoint);
if (result.Length > 0)
{
@@ -242,9 +242,9 @@ namespace Ryujinx.Input.Motion.CemuHook
public void ReceiveLoop(int clientId)
{
- if (_hosts.TryGetValue(clientId, out IPEndPoint endPoint) && _clients.TryGetValue(clientId, out UdpClient _client))
+ if (_hosts.TryGetValue(clientId, out IPEndPoint endPoint) && _clients.TryGetValue(clientId, out UdpClient client))
{
- if (_client != null && _client.Client != null && _client.Client.Connected)
+ if (client != null && client.Client != null && client.Client.Connected)
{
try
{
@@ -271,7 +271,7 @@ namespace Ryujinx.Input.Motion.CemuHook
RemoveClient(clientId);
- _client?.Dispose();
+ client?.Dispose();
SetRetryTimer(clientId);
}
@@ -281,7 +281,7 @@ namespace Ryujinx.Input.Motion.CemuHook
RemoveClient(clientId);
- _client?.Dispose();
+ client?.Dispose();
SetRetryTimer(clientId);
}
@@ -297,8 +297,8 @@ namespace Ryujinx.Input.Motion.CemuHook
data = data.AsSpan()[16..].ToArray();
- using MemoryStream stream = new MemoryStream(data);
- using BinaryReader reader = new BinaryReader(stream);
+ using MemoryStream stream = new(data);
+ using BinaryReader reader = new(stream);
switch (type)
{
@@ -310,18 +310,18 @@ namespace Ryujinx.Input.Motion.CemuHook
case MessageType.Data:
ControllerDataResponse inputData = reader.ReadStruct<ControllerDataResponse>();
- Vector3 accelerometer = new Vector3()
+ Vector3 accelerometer = new()
{
X = -inputData.AccelerometerX,
Y = inputData.AccelerometerZ,
- Z = -inputData.AccelerometerY
+ Z = -inputData.AccelerometerY,
};
- Vector3 gyroscrope = new Vector3()
+ Vector3 gyroscrope = new()
{
X = inputData.GyroscopePitch,
Y = inputData.GyroscopeRoll,
- Z = -inputData.GyroscopeYaw
+ Z = -inputData.GyroscopeYaw,
};
ulong timestamp = inputData.MotionTimestamp;
@@ -346,7 +346,7 @@ namespace Ryujinx.Input.Motion.CemuHook
}
else
{
- MotionInput input = new MotionInput();
+ MotionInput input = new();
input.Update(accelerometer, gyroscrope, timestamp, cemuHookConfig.Sensitivity, (float)cemuHookConfig.GyroDeadzone);
@@ -355,11 +355,11 @@ namespace Ryujinx.Input.Motion.CemuHook
}
else
{
- MotionInput input = new MotionInput();
+ MotionInput input = new();
input.Update(accelerometer, gyroscrope, timestamp, cemuHookConfig.Sensitivity, (float)cemuHookConfig.GyroDeadzone);
- _motionData.Add(clientId, new Dictionary<int, MotionInput>() { { slot, input } });
+ _motionData.Add(clientId, new Dictionary<int, MotionInput> { { slot, input } });
}
}
else
@@ -380,38 +380,37 @@ namespace Ryujinx.Input.Motion.CemuHook
Header header = GenerateHeader(clientId);
- using (MemoryStream stream = MemoryStreamManager.Shared.GetStream())
- using (BinaryWriter writer = new BinaryWriter(stream))
- {
- writer.WriteStruct(header);
+ using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
+ using BinaryWriter writer = new(stream);
- ControllerInfoRequest request = new ControllerInfoRequest()
- {
- Type = MessageType.Info,
- PortsCount = 4
- };
+ writer.WriteStruct(header);
+
+ ControllerInfoRequest request = new()
+ {
+ Type = MessageType.Info,
+ PortsCount = 4,
+ };
- request.PortIndices[0] = (byte)slot;
+ request.PortIndices[0] = (byte)slot;
- writer.WriteStruct(request);
+ writer.WriteStruct(request);
- header.Length = (ushort)(stream.Length - 16);
+ header.Length = (ushort)(stream.Length - 16);
- writer.Seek(6, SeekOrigin.Begin);
- writer.Write(header.Length);
+ writer.Seek(6, SeekOrigin.Begin);
+ writer.Write(header.Length);
- Crc32.Hash(stream.ToArray(), header.Crc32.AsSpan());
+ Crc32.Hash(stream.ToArray(), header.Crc32.AsSpan());
- writer.Seek(8, SeekOrigin.Begin);
- writer.Write(header.Crc32.AsSpan());
+ writer.Seek(8, SeekOrigin.Begin);
+ writer.Write(header.Crc32.AsSpan());
- byte[] data = stream.ToArray();
+ byte[] data = stream.ToArray();
- Send(data, clientId);
- }
+ Send(data, clientId);
}
- public unsafe void RequestData(int clientId, int slot)
+ public void RequestData(int clientId, int slot)
{
if (!_active)
{
@@ -420,44 +419,43 @@ namespace Ryujinx.Input.Motion.CemuHook
Header header = GenerateHeader(clientId);
- using (MemoryStream stream = MemoryStreamManager.Shared.GetStream())
- using (BinaryWriter writer = new BinaryWriter(stream))
- {
- writer.WriteStruct(header);
+ using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
+ using BinaryWriter writer = new(stream);
- ControllerDataRequest request = new ControllerDataRequest()
- {
- Type = MessageType.Data,
- Slot = (byte)slot,
- SubscriberType = SubscriberType.Slot
- };
+ writer.WriteStruct(header);
+
+ ControllerDataRequest request = new()
+ {
+ Type = MessageType.Data,
+ Slot = (byte)slot,
+ SubscriberType = SubscriberType.Slot,
+ };
- writer.WriteStruct(request);
+ writer.WriteStruct(request);
- header.Length = (ushort)(stream.Length - 16);
+ header.Length = (ushort)(stream.Length - 16);
- writer.Seek(6, SeekOrigin.Begin);
- writer.Write(header.Length);
+ writer.Seek(6, SeekOrigin.Begin);
+ writer.Write(header.Length);
- Crc32.Hash(stream.ToArray(), header.Crc32.AsSpan());
+ Crc32.Hash(stream.ToArray(), header.Crc32.AsSpan());
- writer.Seek(8, SeekOrigin.Begin);
- writer.Write(header.Crc32.AsSpan());
+ writer.Seek(8, SeekOrigin.Begin);
+ writer.Write(header.Crc32.AsSpan());
- byte[] data = stream.ToArray();
+ byte[] data = stream.ToArray();
- Send(data, clientId);
- }
+ Send(data, clientId);
}
- private Header GenerateHeader(int clientId)
+ private static Header GenerateHeader(int clientId)
{
- Header header = new Header()
+ Header header = new()
{
- Id = (uint)clientId,
+ Id = (uint)clientId,
MagicString = Magic,
- Version = Version,
- Length = 0
+ Version = Version,
+ Length = 0,
};
return header;
@@ -465,9 +463,10 @@ namespace Ryujinx.Input.Motion.CemuHook
public void Dispose()
{
+ GC.SuppressFinalize(this);
_active = false;
CloseClients();
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs b/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs
index 7fb72344..4eee2e8e 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerData.cs
@@ -16,15 +16,15 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
public struct ControllerDataResponse
{
public SharedResponse Shared;
- public byte Connected;
- public uint PacketId;
- public byte ExtraButtons;
- public byte MainButtons;
- public ushort PSExtraInput;
- public ushort LeftStickXY;
- public ushort RightStickXY;
- public uint DPadAnalog;
- public ulong MainButtonsAnalog;
+ public byte Connected;
+ public uint PacketId;
+ public byte ExtraButtons;
+ public byte MainButtons;
+ public ushort PSExtraInput;
+ public ushort LeftStickXY;
+ public ushort RightStickXY;
+ public uint DPadAnalog;
+ public ulong MainButtonsAnalog;
public Array6<byte> Touch1;
public Array6<byte> Touch2;
@@ -42,6 +42,6 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
{
All,
Slot,
- Mac
+ Mac,
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerInfo.cs b/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerInfo.cs
index 63d4524a..3e51c291 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerInfo.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Protocol/ControllerInfo.cs
@@ -7,7 +7,7 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
public struct ControllerInfoResponse
{
public SharedResponse Shared;
- private byte _zero;
+ private readonly byte _zero;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
@@ -17,4 +17,4 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
public int PortsCount;
public Array4<byte> PortIndices;
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Protocol/Header.cs b/src/Ryujinx.Input/Motion/CemuHook/Protocol/Header.cs
index 57f58ff0..142006d1 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Protocol/Header.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Protocol/Header.cs
@@ -12,4 +12,4 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
public Array4<byte> Crc32;
public uint Id;
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Protocol/MessageType.cs b/src/Ryujinx.Input/Motion/CemuHook/Protocol/MessageType.cs
index de1e5e90..5ef15a7a 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Protocol/MessageType.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Protocol/MessageType.cs
@@ -4,6 +4,6 @@
{
Protocol = 0x100000,
Info,
- Data
+ Data,
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/CemuHook/Protocol/SharedResponse.cs b/src/Ryujinx.Input/Motion/CemuHook/Protocol/SharedResponse.cs
index e2e1ee9b..be37f53b 100644
--- a/src/Ryujinx.Input/Motion/CemuHook/Protocol/SharedResponse.cs
+++ b/src/Ryujinx.Input/Motion/CemuHook/Protocol/SharedResponse.cs
@@ -6,11 +6,11 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SharedResponse
{
- public MessageType Type;
- public byte Slot;
- public SlotState State;
+ public MessageType Type;
+ public byte Slot;
+ public SlotState State;
public DeviceModelType ModelType;
- public ConnectionType ConnectionType;
+ public ConnectionType ConnectionType;
public Array6<byte> MacAddress;
public BatteryStatus BatteryStatus;
@@ -20,21 +20,21 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
{
Disconnected,
Reserved,
- Connected
+ Connected,
}
public enum DeviceModelType : byte
{
None,
PartialGyro,
- FullGyro
+ FullGyro,
}
public enum ConnectionType : byte
{
None,
USB,
- Bluetooth
+ Bluetooth,
}
public enum BatteryStatus : byte
@@ -46,6 +46,6 @@ namespace Ryujinx.Input.Motion.CemuHook.Protocol
High,
Full,
Charging,
- Charged
+ Charged,
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/MotionInput.cs b/src/Ryujinx.Input/Motion/MotionInput.cs
index 1923d9cb..2c7af58f 100644
--- a/src/Ryujinx.Input/Motion/MotionInput.cs
+++ b/src/Ryujinx.Input/Motion/MotionInput.cs
@@ -6,19 +6,19 @@ namespace Ryujinx.Input
{
public class MotionInput
{
- public ulong TimeStamp { get; set; }
+ public ulong TimeStamp { get; set; }
public Vector3 Accelerometer { get; set; }
- public Vector3 Gyroscrope { get; set; }
- public Vector3 Rotation { get; set; }
+ public Vector3 Gyroscrope { get; set; }
+ public Vector3 Rotation { get; set; }
private readonly MotionSensorFilter _filter;
public MotionInput()
{
- TimeStamp = 0;
+ TimeStamp = 0;
Accelerometer = new Vector3();
- Gyroscrope = new Vector3();
- Rotation = new Vector3();
+ Gyroscrope = new Vector3();
+ Rotation = new Vector3();
// TODO: RE the correct filter.
_filter = new MotionSensorFilter(0f);
@@ -62,4 +62,4 @@ namespace Ryujinx.Input
return degree * (MathF.PI / 180);
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/Motion/MotionSensorFilter.cs b/src/Ryujinx.Input/Motion/MotionSensorFilter.cs
index 440fa7ac..1a974968 100644
--- a/src/Ryujinx.Input/Motion/MotionSensorFilter.cs
+++ b/src/Ryujinx.Input/Motion/MotionSensorFilter.cs
@@ -106,19 +106,19 @@ namespace Ryujinx.Input.Motion
float q1 = Quaternion.W;
// Estimated direction of gravity.
- Vector3 gravity = new Vector3()
+ Vector3 gravity = new()
{
X = 2f * (q2 * q4 - q1 * q3),
Y = 2f * (q1 * q2 + q3 * q4),
- Z = q1 * q1 - q2 * q2 - q3 * q3 + q4 * q4
+ Z = q1 * q1 - q2 * q2 - q3 * q3 + q4 * q4,
};
// Error is cross product between estimated direction and measured direction of gravity.
- Vector3 error = new Vector3()
+ Vector3 error = new()
{
X = accel.Y * gravity.Z - accel.Z * gravity.Y,
Y = accel.Z * gravity.X - accel.X * gravity.Z,
- Z = accel.X * gravity.Y - accel.Y * gravity.X
+ Z = accel.X * gravity.Y - accel.Y * gravity.X,
};
if (Ki > 0f)
@@ -134,7 +134,7 @@ namespace Ryujinx.Input.Motion
gyro += (Kp * error) + (Ki * _intergralError);
// Integrate rate of change of quaternion.
- Vector3 delta = new Vector3(q2, q3, q4);
+ Vector3 delta = new(q2, q3, q4);
q1 += (-q2 * gyro.X - q3 * gyro.Y - q4 * gyro.Z) * (SampleRateCoefficient * SamplePeriod);
q2 += (q1 * gyro.X + delta.Y * gyro.Z - delta.Z * gyro.Y) * (SampleRateCoefficient * SamplePeriod);
@@ -142,7 +142,7 @@ namespace Ryujinx.Input.Motion
q4 += (q1 * gyro.Z + delta.X * gyro.Y - delta.Y * gyro.X) * (SampleRateCoefficient * SamplePeriod);
// Normalise quaternion.
- Quaternion quaternion = new Quaternion(q2, q3, q4, q1);
+ Quaternion quaternion = new(q2, q3, q4, q1);
norm = 1f / quaternion.Length();
@@ -159,4 +159,4 @@ namespace Ryujinx.Input.Motion
Quaternion = Quaternion.Identity;
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/MotionInputId.cs b/src/Ryujinx.Input/MotionInputId.cs
index 3176a987..61c7d305 100644
--- a/src/Ryujinx.Input/MotionInputId.cs
+++ b/src/Ryujinx.Input/MotionInputId.cs
@@ -20,6 +20,6 @@
/// Gyroscope.
/// </summary>
/// <remarks>Values are in degrees</remarks>
- Gyroscope
+ Gyroscope,
}
}
diff --git a/src/Ryujinx.Input/MouseButton.cs b/src/Ryujinx.Input/MouseButton.cs
index ab764216..a2991002 100644
--- a/src/Ryujinx.Input/MouseButton.cs
+++ b/src/Ryujinx.Input/MouseButton.cs
@@ -11,6 +11,6 @@ namespace Ryujinx.Input
Button7,
Button8,
Button9,
- Count
+ Count,
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/MouseStateSnapshot.cs b/src/Ryujinx.Input/MouseStateSnapshot.cs
index ddfdebc6..9efc9f9c 100644
--- a/src/Ryujinx.Input/MouseStateSnapshot.cs
+++ b/src/Ryujinx.Input/MouseStateSnapshot.cs
@@ -8,7 +8,7 @@ namespace Ryujinx.Input
/// </summary>
public class MouseStateSnapshot
{
- private bool[] _buttonState;
+ private readonly bool[] _buttonState;
/// <summary>
/// The position of the mouse cursor
@@ -31,7 +31,7 @@ namespace Ryujinx.Input
_buttonState = buttonState;
Position = position;
- Scroll = scroll;
+ Scroll = scroll;
}
/// <summary>
@@ -42,4 +42,4 @@ namespace Ryujinx.Input
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool IsPressed(MouseButton button) => _buttonState[(int)button];
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.Input/StickInputId.cs b/src/Ryujinx.Input/StickInputId.cs
index fc9d8043..94c0f25e 100644
--- a/src/Ryujinx.Input/StickInputId.cs
+++ b/src/Ryujinx.Input/StickInputId.cs
@@ -9,6 +9,6 @@
Left,
Right,
- Count
+ Count,
}
}