From cee712105850ac3385cd0091a923438167433f9f Mon Sep 17 00:00:00 2001 From: TSR Berry <20988865+TSRBerry@users.noreply.github.com> Date: Sat, 8 Apr 2023 01:22:00 +0200 Subject: Move solution and projects to src --- .../Motion/JsonMotionConfigControllerConverter.cs | 79 ---------------------- 1 file changed, 79 deletions(-) delete mode 100644 Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs (limited to 'Ryujinx.Common/Configuration/Hid/Controller/Motion/JsonMotionConfigControllerConverter.cs') 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 - { - 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}"); - } - } - } -} -- cgit v1.2.3