aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/Configuration/Hid
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Common/Configuration/Hid
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Common/Configuration/Hid')
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/GamepadInputId.cs58
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/GenericControllerInputConfig.cs82
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs11
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/CemuHookMotionConfigController.cs30
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs79
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigController.cs25
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigJsonSerializerContext.cs12
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs13
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/Motion/StandardMotionConfigController.cs4
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/RumbleConfigController.cs20
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/StandardControllerInputConfig.cs4
-rw-r--r--Ryujinx.Common/Configuration/Hid/Controller/StickInputId.cs15
-rw-r--r--Ryujinx.Common/Configuration/Hid/ControllerType.cs23
-rw-r--r--Ryujinx.Common/Configuration/Hid/GenericInputConfigurationCommon.cs15
-rw-r--r--Ryujinx.Common/Configuration/Hid/InputBackendType.cs13
-rw-r--r--Ryujinx.Common/Configuration/Hid/InputConfig.cs41
-rw-r--r--Ryujinx.Common/Configuration/Hid/InputConfigJsonSerializerContext.cs14
-rw-r--r--Ryujinx.Common/Configuration/Hid/JsonInputConfigConverter.cs81
-rw-r--r--Ryujinx.Common/Configuration/Hid/Key.cs143
-rw-r--r--Ryujinx.Common/Configuration/Hid/Keyboard/GenericKeyboardInputConfig.cs15
-rw-r--r--Ryujinx.Common/Configuration/Hid/Keyboard/JoyconConfigKeyboardStick.cs11
-rw-r--r--Ryujinx.Common/Configuration/Hid/Keyboard/StandardKeyboardInputConfig.cs4
-rw-r--r--Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs17
-rw-r--r--Ryujinx.Common/Configuration/Hid/LeftJoyconCommonConfig.cs15
-rw-r--r--Ryujinx.Common/Configuration/Hid/PlayerIndex.cs22
-rw-r--r--Ryujinx.Common/Configuration/Hid/RightJoyconCommonConfig.cs15
26 files changed, 0 insertions, 782 deletions
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/GamepadInputId.cs b/Ryujinx.Common/Configuration/Hid/Controller/GamepadInputId.cs
deleted file mode 100644
index ad1fa667..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/GamepadInputId.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- [JsonConverter(typeof(TypedStringEnumConverter<GamepadInputId>))]
- public enum GamepadInputId : byte
- {
- Unbound,
- A,
- B,
- X,
- Y,
- LeftStick,
- RightStick,
- LeftShoulder,
- RightShoulder,
-
- // Likely axis
- LeftTrigger,
- // Likely axis
- RightTrigger,
-
- DpadUp,
- DpadDown,
- DpadLeft,
- DpadRight,
-
- // Special buttons
-
- Minus,
- Plus,
-
- Back = Minus,
- Start = Plus,
-
- Guide,
- Misc1,
-
- // Xbox Elite paddle
- Paddle1,
- Paddle2,
- Paddle3,
- Paddle4,
-
- // PS5 touchpad button
- Touchpad,
-
- // Virtual buttons for single joycon
- SingleLeftTrigger0,
- SingleRightTrigger0,
-
- SingleLeftTrigger1,
- SingleRightTrigger1,
-
- Count
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/GenericControllerInputConfig.cs b/Ryujinx.Common/Configuration/Hid/Controller/GenericControllerInputConfig.cs
deleted file mode 100644
index d7f0e788..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/GenericControllerInputConfig.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using Ryujinx.Common.Configuration.Hid.Controller.Motion;
-using System;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- public class GenericControllerInputConfig<Button, Stick> : GenericInputConfigurationCommon<Button> where Button : unmanaged where Stick : unmanaged
- {
- [JsonIgnore]
- private float _deadzoneLeft;
- [JsonIgnore]
- private float _deadzoneRight;
- [JsonIgnore]
- private float _triggerThreshold;
-
- /// <summary>
- /// Left JoyCon Controller Stick Bindings
- /// </summary>
- public JoyconConfigControllerStick<Button, Stick> LeftJoyconStick { get; set; }
-
- /// <summary>
- /// Right JoyCon Controller Stick Bindings
- /// </summary>
- public JoyconConfigControllerStick<Button, Stick> RightJoyconStick { get; set; }
-
- /// <summary>
- /// Controller Left Analog Stick Deadzone
- /// </summary>
- public float DeadzoneLeft
- {
- get => _deadzoneLeft; set
- {
- _deadzoneLeft = MathF.Round(value, 3);
- OnPropertyChanged();
- }
- }
-
- /// <summary>
- /// Controller Right Analog Stick Deadzone
- /// </summary>
- public float DeadzoneRight
- {
- get => _deadzoneRight; set
- {
- _deadzoneRight = MathF.Round(value, 3);
- OnPropertyChanged();
- }
- }
-
- /// <summary>
- /// Controller Left Analog Stick Range
- /// </summary>
- public float RangeLeft { get; set; }
-
- /// <summary>
- /// Controller Right Analog Stick Range
- /// </summary>
- public float RangeRight { get; set; }
-
- /// <summary>
- /// Controller Trigger Threshold
- /// </summary>
- public float TriggerThreshold
- {
- get => _triggerThreshold; set
- {
- _triggerThreshold = MathF.Round(value, 3);
- OnPropertyChanged();
- }
- }
-
- /// <summary>
- /// Controller Motion Settings
- /// </summary>
- public MotionConfigController Motion { get; set; }
-
- /// <summary>
- /// Controller Rumble Settings
- /// </summary>
- public RumbleConfigController Rumble { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs b/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs
deleted file mode 100644
index 869cff4f..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- public class JoyconConfigControllerStick<Button, Stick> where Button: unmanaged where Stick: unmanaged
- {
- public Stick Joystick { get; set; }
- public bool InvertStickX { get; set; }
- public bool InvertStickY { get; set; }
- public bool Rotate90CW { get; set; }
- public Button StickButton { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/CemuHookMotionConfigController.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/CemuHookMotionConfigController.cs
deleted file mode 100644
index 2a5a73ff..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/CemuHookMotionConfigController.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- public class CemuHookMotionConfigController : MotionConfigController
- {
- /// <summary>
- /// Motion Controller Slot
- /// </summary>
- public int Slot { get; set; }
-
- /// <summary>
- /// Motion Controller Alternative Slot, for RightJoyCon in Pair mode
- /// </summary>
- public int AltSlot { get; set; }
-
- /// <summary>
- /// Mirror motion input in Pair mode
- /// </summary>
- public bool MirrorInput { get; set; }
-
- /// <summary>
- /// Host address of the DSU Server
- /// </summary>
- public string DsuServerHost { get; set; }
-
- /// <summary>
- /// Port of the DSU Server
- /// </summary>
- public int DsuServerPort { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs
deleted file mode 100644
index 2b9e0af4..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- class JsonMotionConfigControllerConverter : JsonConverter<MotionConfigController>
- {
- private static readonly MotionConfigJsonSerializerContext SerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
-
- private static MotionInputBackendType GetMotionInputBackendType(ref Utf8JsonReader reader)
- {
- // Temporary reader to get the backend type
- Utf8JsonReader tempReader = reader;
-
- MotionInputBackendType result = MotionInputBackendType.Invalid;
-
- while (tempReader.Read())
- {
- // NOTE: We scan all properties ignoring the depth entirely on purpose.
- // The reason behind this is that we cannot track in a reliable way the depth of the object because Utf8JsonReader never emit the first TokenType == StartObject if the json start with an object.
- // As such, this code will try to parse very field named "motion_backend" to the correct enum.
- if (tempReader.TokenType == JsonTokenType.PropertyName)
- {
- string propertyName = tempReader.GetString();
-
- if (propertyName.Equals("motion_backend"))
- {
- tempReader.Read();
-
- if (tempReader.TokenType == JsonTokenType.String)
- {
- string backendTypeRaw = tempReader.GetString();
-
- if (!Enum.TryParse(backendTypeRaw, out result))
- {
- result = MotionInputBackendType.Invalid;
- }
- else
- {
- break;
- }
- }
- }
- }
- }
-
- return result;
- }
-
- public override MotionConfigController Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
- {
- MotionInputBackendType motionBackendType = GetMotionInputBackendType(ref reader);
-
- return motionBackendType switch
- {
- MotionInputBackendType.GamepadDriver => JsonSerializer.Deserialize(ref reader, SerializerContext.StandardMotionConfigController),
- MotionInputBackendType.CemuHook => JsonSerializer.Deserialize(ref reader, SerializerContext.CemuHookMotionConfigController),
- _ => throw new InvalidOperationException($"Unknown backend type {motionBackendType}"),
- };
- }
-
- public override void Write(Utf8JsonWriter writer, MotionConfigController value, JsonSerializerOptions options)
- {
- switch (value.MotionBackend)
- {
- case MotionInputBackendType.GamepadDriver:
- JsonSerializer.Serialize(writer, value as StandardMotionConfigController, SerializerContext.StandardMotionConfigController);
- break;
- case MotionInputBackendType.CemuHook:
- JsonSerializer.Serialize(writer, value as CemuHookMotionConfigController, SerializerContext.CemuHookMotionConfigController);
- break;
- default:
- throw new ArgumentException($"Unknown motion backend type {value.MotionBackend}");
- }
- }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigController.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigController.cs
deleted file mode 100644
index 7636aa41..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigController.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- [JsonConverter(typeof(JsonMotionConfigControllerConverter))]
- public class MotionConfigController
- {
- public MotionInputBackendType MotionBackend { get; set; }
-
- /// <summary>
- /// Gyro Sensitivity
- /// </summary>
- public int Sensitivity { get; set; }
-
- /// <summary>
- /// Gyro Deadzone
- /// </summary>
- public double GyroDeadzone { get; set; }
-
- /// <summary>
- /// Enable Motion Controls
- /// </summary>
- public bool EnableMotion { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigJsonSerializerContext.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigJsonSerializerContext.cs
deleted file mode 100644
index 5cd9e452..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionConfigJsonSerializerContext.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- [JsonSourceGenerationOptions(WriteIndented = true)]
- [JsonSerializable(typeof(MotionConfigController))]
- [JsonSerializable(typeof(CemuHookMotionConfigController))]
- [JsonSerializable(typeof(StandardMotionConfigController))]
- public partial class MotionConfigJsonSerializerContext : JsonSerializerContext
- {
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs
deleted file mode 100644
index c6551047..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/MotionInputBackendType.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- [JsonConverter(typeof(TypedStringEnumConverter<MotionInputBackendType>))]
- public enum MotionInputBackendType : byte
- {
- Invalid,
- GamepadDriver,
- CemuHook
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/Motion/StandardMotionConfigController.cs b/Ryujinx.Common/Configuration/Hid/Controller/Motion/StandardMotionConfigController.cs
deleted file mode 100644
index df925444..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/Motion/StandardMotionConfigController.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller.Motion
-{
- public class StandardMotionConfigController : MotionConfigController { }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/RumbleConfigController.cs b/Ryujinx.Common/Configuration/Hid/Controller/RumbleConfigController.cs
deleted file mode 100644
index 48be4f13..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/RumbleConfigController.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- public class RumbleConfigController
- {
- /// <summary>
- /// Controller Strong Rumble Multiplier
- /// </summary>
- public float StrongRumble { get; set; }
-
- /// <summary>
- /// Controller Weak Rumble Multiplier
- /// </summary>
- public float WeakRumble { get; set; }
-
- /// <summary>
- /// Enable Rumble
- /// </summary>
- public bool EnableRumble { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/StandardControllerInputConfig.cs b/Ryujinx.Common/Configuration/Hid/Controller/StandardControllerInputConfig.cs
deleted file mode 100644
index 4154a42b..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/StandardControllerInputConfig.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- public class StandardControllerInputConfig : GenericControllerInputConfig<GamepadInputId, StickInputId> { }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Controller/StickInputId.cs b/Ryujinx.Common/Configuration/Hid/Controller/StickInputId.cs
deleted file mode 100644
index 5fc4d1c8..00000000
--- a/Ryujinx.Common/Configuration/Hid/Controller/StickInputId.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid.Controller
-{
- [JsonConverter(typeof(TypedStringEnumConverter<StickInputId>))]
- public enum StickInputId : byte
- {
- Unbound,
- Left,
- Right,
-
- Count
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/ControllerType.cs b/Ryujinx.Common/Configuration/Hid/ControllerType.cs
deleted file mode 100644
index 70f811c8..00000000
--- a/Ryujinx.Common/Configuration/Hid/ControllerType.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- // This enum was duplicated from Ryujinx.HLE.HOS.Services.Hid.PlayerIndex and should be kept identical
- [Flags]
- [JsonConverter(typeof(TypedStringEnumConverter<ControllerType>))]
- public enum ControllerType : int
- {
- 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
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/GenericInputConfigurationCommon.cs b/Ryujinx.Common/Configuration/Hid/GenericInputConfigurationCommon.cs
deleted file mode 100644
index 3d43817e..00000000
--- a/Ryujinx.Common/Configuration/Hid/GenericInputConfigurationCommon.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid
-{
- public class GenericInputConfigurationCommon<Button> : InputConfig where Button : unmanaged
- {
- /// <summary>
- /// Left JoyCon Controller Bindings
- /// </summary>
- public LeftJoyconCommonConfig<Button> LeftJoycon { get; set; }
-
- /// <summary>
- /// Right JoyCon Controller Bindings
- /// </summary>
- public RightJoyconCommonConfig<Button> RightJoycon { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/InputBackendType.cs b/Ryujinx.Common/Configuration/Hid/InputBackendType.cs
deleted file mode 100644
index 1db3f570..00000000
--- a/Ryujinx.Common/Configuration/Hid/InputBackendType.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- [JsonConverter(typeof(TypedStringEnumConverter<InputBackendType>))]
- public enum InputBackendType
- {
- Invalid,
- WindowKeyboard,
- GamepadSDL2,
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/InputConfig.cs b/Ryujinx.Common/Configuration/Hid/InputConfig.cs
deleted file mode 100644
index 16c8f8e3..00000000
--- a/Ryujinx.Common/Configuration/Hid/InputConfig.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- [JsonConverter(typeof(JsonInputConfigConverter))]
- public class InputConfig : INotifyPropertyChanged
- {
- /// <summary>
- /// The current version of the input file format
- /// </summary>
- public const int CurrentVersion = 1;
-
- public int Version { get; set; }
-
- public InputBackendType Backend { get; set; }
-
- /// <summary>
- /// Controller id
- /// </summary>
- public string Id { 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; }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/InputConfigJsonSerializerContext.cs b/Ryujinx.Common/Configuration/Hid/InputConfigJsonSerializerContext.cs
deleted file mode 100644
index 254c4feb..00000000
--- a/Ryujinx.Common/Configuration/Hid/InputConfigJsonSerializerContext.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Ryujinx.Common.Configuration.Hid.Controller;
-using Ryujinx.Common.Configuration.Hid.Keyboard;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- [JsonSourceGenerationOptions(WriteIndented = true)]
- [JsonSerializable(typeof(InputConfig))]
- [JsonSerializable(typeof(StandardKeyboardInputConfig))]
- [JsonSerializable(typeof(StandardControllerInputConfig))]
- public partial class InputConfigJsonSerializerContext : JsonSerializerContext
- {
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/JsonInputConfigConverter.cs b/Ryujinx.Common/Configuration/Hid/JsonInputConfigConverter.cs
deleted file mode 100644
index 08bbcbf1..00000000
--- a/Ryujinx.Common/Configuration/Hid/JsonInputConfigConverter.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using Ryujinx.Common.Configuration.Hid.Controller;
-using Ryujinx.Common.Configuration.Hid.Keyboard;
-using Ryujinx.Common.Utilities;
-using System;
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- public class JsonInputConfigConverter : JsonConverter<InputConfig>
- {
- private static readonly InputConfigJsonSerializerContext SerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
-
- private static InputBackendType GetInputBackendType(ref Utf8JsonReader reader)
- {
- // Temporary reader to get the backend type
- Utf8JsonReader tempReader = reader;
-
- InputBackendType result = InputBackendType.Invalid;
-
- while (tempReader.Read())
- {
- // NOTE: We scan all properties ignoring the depth entirely on purpose.
- // The reason behind this is that we cannot track in a reliable way the depth of the object because Utf8JsonReader never emit the first TokenType == StartObject if the json start with an object.
- // As such, this code will try to parse very field named "backend" to the correct enum.
- if (tempReader.TokenType == JsonTokenType.PropertyName)
- {
- string propertyName = tempReader.GetString();
-
- if (propertyName.Equals("backend"))
- {
- tempReader.Read();
-
- if (tempReader.TokenType == JsonTokenType.String)
- {
- string backendTypeRaw = tempReader.GetString();
-
- if (!Enum.TryParse(backendTypeRaw, out result))
- {
- result = InputBackendType.Invalid;
- }
- else
- {
- break;
- }
- }
- }
- }
- }
-
- return result;
- }
-
- public override InputConfig Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
- {
- InputBackendType backendType = GetInputBackendType(ref reader);
-
- return backendType switch
- {
- InputBackendType.WindowKeyboard => JsonSerializer.Deserialize(ref reader, SerializerContext.StandardKeyboardInputConfig),
- InputBackendType.GamepadSDL2 => JsonSerializer.Deserialize(ref reader, SerializerContext.StandardControllerInputConfig),
- _ => throw new InvalidOperationException($"Unknown backend type {backendType}"),
- };
- }
-
- public override void Write(Utf8JsonWriter writer, InputConfig value, JsonSerializerOptions options)
- {
- switch (value.Backend)
- {
- case InputBackendType.WindowKeyboard:
- JsonSerializer.Serialize(writer, value as StandardKeyboardInputConfig, SerializerContext.StandardKeyboardInputConfig);
- break;
- case InputBackendType.GamepadSDL2:
- JsonSerializer.Serialize(writer, value as StandardControllerInputConfig, SerializerContext.StandardControllerInputConfig);
- break;
- default:
- throw new ArgumentException($"Unknown backend type {value.Backend}");
- }
- }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Key.cs b/Ryujinx.Common/Configuration/Hid/Key.cs
deleted file mode 100644
index 3501b8ae..00000000
--- a/Ryujinx.Common/Configuration/Hid/Key.cs
+++ /dev/null
@@ -1,143 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- [JsonConverter(typeof(TypedStringEnumConverter<Key>))]
- public enum Key
- {
- Unknown,
- ShiftLeft,
- ShiftRight,
- ControlLeft,
- ControlRight,
- AltLeft,
- AltRight,
- WinLeft,
- WinRight,
- Menu,
- F1,
- F2,
- F3,
- F4,
- F5,
- F6,
- F7,
- F8,
- F9,
- F10,
- F11,
- F12,
- F13,
- F14,
- F15,
- F16,
- F17,
- F18,
- F19,
- F20,
- F21,
- F22,
- F23,
- F24,
- F25,
- F26,
- F27,
- F28,
- F29,
- F30,
- F31,
- F32,
- F33,
- F34,
- F35,
- Up,
- Down,
- Left,
- Right,
- Enter,
- Escape,
- Space,
- Tab,
- BackSpace,
- Insert,
- Delete,
- PageUp,
- PageDown,
- Home,
- End,
- CapsLock,
- ScrollLock,
- PrintScreen,
- Pause,
- NumLock,
- Clear,
- Keypad0,
- Keypad1,
- Keypad2,
- Keypad3,
- Keypad4,
- Keypad5,
- Keypad6,
- Keypad7,
- Keypad8,
- Keypad9,
- KeypadDivide,
- KeypadMultiply,
- KeypadSubtract,
- KeypadAdd,
- KeypadDecimal,
- KeypadEnter,
- A,
- B,
- C,
- D,
- E,
- F,
- G,
- H,
- I,
- J,
- K,
- L,
- M,
- N,
- O,
- P,
- Q,
- R,
- S,
- T,
- U,
- V,
- W,
- X,
- Y,
- Z,
- Number0,
- Number1,
- Number2,
- Number3,
- Number4,
- Number5,
- Number6,
- Number7,
- Number8,
- Number9,
- Tilde,
- Grave,
- Minus,
- Plus,
- BracketLeft,
- BracketRight,
- Semicolon,
- Quote,
- Comma,
- Period,
- Slash,
- BackSlash,
- Unbound,
-
- Count
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/Keyboard/GenericKeyboardInputConfig.cs b/Ryujinx.Common/Configuration/Hid/Keyboard/GenericKeyboardInputConfig.cs
deleted file mode 100644
index b6c82c93..00000000
--- a/Ryujinx.Common/Configuration/Hid/Keyboard/GenericKeyboardInputConfig.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Keyboard
-{
- public class GenericKeyboardInputConfig<Key> : GenericInputConfigurationCommon<Key> where Key : unmanaged
- {
- /// <summary>
- /// Left JoyCon Controller Stick Bindings
- /// </summary>
- public JoyconConfigKeyboardStick<Key> LeftJoyconStick { get; set; }
-
- /// <summary>
- /// Right JoyCon Controller Stick Bindings
- /// </summary>
- public JoyconConfigKeyboardStick<Key> RightJoyconStick { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Keyboard/JoyconConfigKeyboardStick.cs b/Ryujinx.Common/Configuration/Hid/Keyboard/JoyconConfigKeyboardStick.cs
deleted file mode 100644
index cadc17e8..00000000
--- a/Ryujinx.Common/Configuration/Hid/Keyboard/JoyconConfigKeyboardStick.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Keyboard
-{
- public class JoyconConfigKeyboardStick<Key> where Key: unmanaged
- {
- public Key StickUp { get; set; }
- public Key StickDown { get; set; }
- public Key StickLeft { get; set; }
- public Key StickRight { get; set; }
- public Key StickButton { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/Keyboard/StandardKeyboardInputConfig.cs b/Ryujinx.Common/Configuration/Hid/Keyboard/StandardKeyboardInputConfig.cs
deleted file mode 100644
index 054d777d..00000000
--- a/Ryujinx.Common/Configuration/Hid/Keyboard/StandardKeyboardInputConfig.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid.Keyboard
-{
- public class StandardKeyboardInputConfig : GenericKeyboardInputConfig<Key> { }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs b/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs
deleted file mode 100644
index 1a10c2a5..00000000
--- a/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid
-{
- // NOTE: Please don't change this to struct.
- // This breaks Avalonia's TwoWay binding, which makes us unable to save new KeyboardHotkeys.
- public class KeyboardHotkeys
- {
- public Key ToggleVsync { get; set; }
- public Key Screenshot { get; set; }
- public Key ShowUi { get; set; }
- public Key Pause { get; set; }
- public Key ToggleMute { get; set; }
- public Key ResScaleUp { get; set; }
- public Key ResScaleDown { get; set; }
- public Key VolumeUp { get; set; }
- public Key VolumeDown { get; set; }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/LeftJoyconCommonConfig.cs b/Ryujinx.Common/Configuration/Hid/LeftJoyconCommonConfig.cs
deleted file mode 100644
index a57240c4..00000000
--- a/Ryujinx.Common/Configuration/Hid/LeftJoyconCommonConfig.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid
-{
- public class LeftJoyconCommonConfig<Button>
- {
- public Button ButtonMinus { get; set; }
- public Button ButtonL { get; set; }
- public Button ButtonZl { get; set; }
- public Button ButtonSl { get; set; }
- public Button ButtonSr { get; set; }
- public Button DpadUp { get; set; }
- public Button DpadDown { get; set; }
- public Button DpadLeft { get; set; }
- public Button DpadRight { get; set; }
- }
-}
diff --git a/Ryujinx.Common/Configuration/Hid/PlayerIndex.cs b/Ryujinx.Common/Configuration/Hid/PlayerIndex.cs
deleted file mode 100644
index dd6495d4..00000000
--- a/Ryujinx.Common/Configuration/Hid/PlayerIndex.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using Ryujinx.Common.Utilities;
-using System.Text.Json.Serialization;
-
-namespace Ryujinx.Common.Configuration.Hid
-{
- // This enum was duplicated from Ryujinx.HLE.HOS.Services.Hid.PlayerIndex and should be kept identical
- [JsonConverter(typeof(TypedStringEnumConverter<PlayerIndex>))]
- 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
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Hid/RightJoyconCommonConfig.cs b/Ryujinx.Common/Configuration/Hid/RightJoyconCommonConfig.cs
deleted file mode 100644
index ca2d0176..00000000
--- a/Ryujinx.Common/Configuration/Hid/RightJoyconCommonConfig.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace Ryujinx.Common.Configuration.Hid
-{
- public class RightJoyconCommonConfig<Button>
- {
- public Button ButtonPlus { get; set; }
- public Button ButtonR { get; set; }
- public Button ButtonZr { get; set; }
- public Button ButtonSl { get; set; }
- public Button ButtonSr { get; set; }
- public Button ButtonX { get; set; }
- public Button ButtonB { get; set; }
- public Button ButtonY { get; set; }
- public Button ButtonA { get; set; }
- }
-} \ No newline at end of file