aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.UI.Common/Models
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.UI.Common/Models')
-rw-r--r--src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApi.cs67
-rw-r--r--src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiGamesSwitch.cs15
-rw-r--r--src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiUsage.cs12
-rw-r--r--src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJson.cs14
-rw-r--r--src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJsonSerializerContext.cs9
-rw-r--r--src/Ryujinx.UI.Common/Models/Github/GithubReleaseAssetJsonResponse.cs9
-rw-r--r--src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonResponse.cs10
-rw-r--r--src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonSerializerContext.cs9
8 files changed, 145 insertions, 0 deletions
diff --git a/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApi.cs b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApi.cs
new file mode 100644
index 00000000..7989f0f1
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApi.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Amiibo
+{
+ public struct AmiiboApi : IEquatable<AmiiboApi>
+ {
+ [JsonPropertyName("name")]
+ public string Name { get; set; }
+ [JsonPropertyName("head")]
+ public string Head { get; set; }
+ [JsonPropertyName("tail")]
+ public string Tail { get; set; }
+ [JsonPropertyName("image")]
+ public string Image { get; set; }
+ [JsonPropertyName("amiiboSeries")]
+ public string AmiiboSeries { get; set; }
+ [JsonPropertyName("character")]
+ public string Character { get; set; }
+ [JsonPropertyName("gameSeries")]
+ public string GameSeries { get; set; }
+ [JsonPropertyName("type")]
+ public string Type { get; set; }
+
+ [JsonPropertyName("release")]
+ public Dictionary<string, string> Release { get; set; }
+
+ [JsonPropertyName("gamesSwitch")]
+ public List<AmiiboApiGamesSwitch> GamesSwitch { get; set; }
+
+ public readonly override string ToString()
+ {
+ return Name;
+ }
+
+ public readonly string GetId()
+ {
+ return Head + Tail;
+ }
+
+ public readonly bool Equals(AmiiboApi other)
+ {
+ return Head + Tail == other.Head + other.Tail;
+ }
+
+ public readonly override bool Equals(object obj)
+ {
+ return obj is AmiiboApi other && Equals(other);
+ }
+
+ public readonly override int GetHashCode()
+ {
+ return HashCode.Combine(Head, Tail);
+ }
+
+ public static bool operator ==(AmiiboApi left, AmiiboApi right)
+ {
+ return left.Equals(right);
+ }
+
+ public static bool operator !=(AmiiboApi left, AmiiboApi right)
+ {
+ return !(left == right);
+ }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiGamesSwitch.cs b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiGamesSwitch.cs
new file mode 100644
index 00000000..40e635bf
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiGamesSwitch.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Amiibo
+{
+ public class AmiiboApiGamesSwitch
+ {
+ [JsonPropertyName("amiiboUsage")]
+ public List<AmiiboApiUsage> AmiiboUsage { get; set; }
+ [JsonPropertyName("gameID")]
+ public List<string> GameId { get; set; }
+ [JsonPropertyName("gameName")]
+ public string GameName { get; set; }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiUsage.cs b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiUsage.cs
new file mode 100644
index 00000000..4f8d292b
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboApiUsage.cs
@@ -0,0 +1,12 @@
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Amiibo
+{
+ public class AmiiboApiUsage
+ {
+ [JsonPropertyName("Usage")]
+ public string Usage { get; set; }
+ [JsonPropertyName("write")]
+ public bool Write { get; set; }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJson.cs b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJson.cs
new file mode 100644
index 00000000..15083f50
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJson.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Amiibo
+{
+ public struct AmiiboJson
+ {
+ [JsonPropertyName("amiibo")]
+ public List<AmiiboApi> Amiibo { get; set; }
+ [JsonPropertyName("lastUpdated")]
+ public DateTime LastUpdated { get; set; }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJsonSerializerContext.cs b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJsonSerializerContext.cs
new file mode 100644
index 00000000..bc3f1303
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Amiibo/AmiiboJsonSerializerContext.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Amiibo
+{
+ [JsonSerializable(typeof(AmiiboJson))]
+ public partial class AmiiboJsonSerializerContext : JsonSerializerContext
+ {
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Github/GithubReleaseAssetJsonResponse.cs b/src/Ryujinx.UI.Common/Models/Github/GithubReleaseAssetJsonResponse.cs
new file mode 100644
index 00000000..8f528dc0
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Github/GithubReleaseAssetJsonResponse.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.UI.Common.Models.Github
+{
+ public class GithubReleaseAssetJsonResponse
+ {
+ public string Name { get; set; }
+ public string State { get; set; }
+ public string BrowserDownloadUrl { get; set; }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonResponse.cs b/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonResponse.cs
new file mode 100644
index 00000000..0250e109
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonResponse.cs
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace Ryujinx.UI.Common.Models.Github
+{
+ public class GithubReleasesJsonResponse
+ {
+ public string Name { get; set; }
+ public List<GithubReleaseAssetJsonResponse> Assets { get; set; }
+ }
+}
diff --git a/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonSerializerContext.cs b/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonSerializerContext.cs
new file mode 100644
index 00000000..71864257
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Models/Github/GithubReleasesJsonSerializerContext.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Ryujinx.UI.Common.Models.Github
+{
+ [JsonSerializable(typeof(GithubReleasesJsonResponse), GenerationMode = JsonSourceGenerationMode.Metadata)]
+ public partial class GithubReleasesJsonSerializerContext : JsonSerializerContext
+ {
+ }
+}