aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs')
-rw-r--r--src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs b/src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs
new file mode 100644
index 00000000..7e71ba7a
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Extensions/FileTypeExtensions.cs
@@ -0,0 +1,25 @@
+using System;
+using static Ryujinx.UI.Common.Configuration.ConfigurationState.UISection;
+
+namespace Ryujinx.UI.Common
+{
+ public static class FileTypesExtensions
+ {
+ /// <summary>
+ /// Gets the current <see cref="ShownFileTypeSettings"/> value for the correlating FileType name.
+ /// </summary>
+ /// <param name="type">The name of the <see cref="ShownFileTypeSettings"/> parameter to get the value of.</param>
+ /// <param name="config">The config instance to get the value from.</param>
+ /// <returns>The current value of the setting. Value is <see langword="true"/> if the file type is the be shown on the games list, <see langword="false"/> otherwise.</returns>
+ public static bool GetConfigValue(this FileTypes type, ShownFileTypeSettings config) => type switch
+ {
+ FileTypes.NSP => config.NSP.Value,
+ FileTypes.PFS0 => config.PFS0.Value,
+ FileTypes.XCI => config.XCI.Value,
+ FileTypes.NCA => config.NCA.Value,
+ FileTypes.NRO => config.NRO.Value,
+ FileTypes.NSO => config.NSO.Value,
+ _ => throw new ArgumentOutOfRangeException(nameof(type), type, null),
+ };
+ }
+}