From f06d22d6f01e657ebbc0c8ef082739cd468e47b5 Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:09:18 +0000
Subject: Infra: Capitalisation Consistency (#6296)
* Rename Ryujinx.UI.Common
* Rename Ryujinx.UI.LocaleGenerator
* Update in Files
AboutWindow
* Configuration State
* Rename projects
* Ryujinx/UI
* Fix build
* Main remaining inconsistencies
* HLE.UI Namespace
* HLE.UI Files
* Namespace
* Ryujinx.UI.Common.Configuration.UI
* Ryujinx.UI.Common,Configuration.UI Files
* More instances
---
.../Configuration/ConfigurationFileFormat.cs | 409 +++++++++++++++++++++
1 file changed, 409 insertions(+)
create mode 100644 src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
(limited to 'src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs')
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
new file mode 100644
index 00000000..0ee51d83
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
@@ -0,0 +1,409 @@
+using Ryujinx.Common.Configuration;
+using Ryujinx.Common.Configuration.Hid;
+using Ryujinx.Common.Configuration.Multiplayer;
+using Ryujinx.Common.Logging;
+using Ryujinx.Common.Utilities;
+using Ryujinx.UI.Common.Configuration.System;
+using Ryujinx.UI.Common.Configuration.UI;
+using System.Collections.Generic;
+using System.Text.Json.Nodes;
+
+namespace Ryujinx.UI.Common.Configuration
+{
+ public class ConfigurationFileFormat
+ {
+ ///
+ /// The current version of the file format
+ ///
+ public const int CurrentVersion = 48;
+
+ ///
+ /// Version of the configuration file format
+ ///
+ public int Version { get; set; }
+
+ ///
+ /// Enables or disables logging to a file on disk
+ ///
+ public bool EnableFileLog { get; set; }
+
+ ///
+ /// Whether or not backend threading is enabled. The "Auto" setting will determine whether threading should be enabled at runtime.
+ ///
+ public BackendThreading BackendThreading { get; set; }
+
+ ///
+ /// Resolution Scale. An integer scale applied to applicable render targets. Values 1-4, or -1 to use a custom floating point scale instead.
+ ///
+ public int ResScale { get; set; }
+
+ ///
+ /// Custom Resolution Scale. A custom floating point scale applied to applicable render targets. Only active when Resolution Scale is -1.
+ ///
+ public float ResScaleCustom { get; set; }
+
+ ///
+ /// Max Anisotropy. Values range from 0 - 16. Set to -1 to let the game decide.
+ ///
+ public float MaxAnisotropy { get; set; }
+
+ ///
+ /// Aspect Ratio applied to the renderer window.
+ ///
+ public AspectRatio AspectRatio { get; set; }
+
+ ///
+ /// Applies anti-aliasing to the renderer.
+ ///
+ public AntiAliasing AntiAliasing { get; set; }
+
+ ///
+ /// Sets the framebuffer upscaling type.
+ ///
+ public ScalingFilter ScalingFilter { get; set; }
+
+ ///
+ /// Sets the framebuffer upscaling level.
+ ///
+ public int ScalingFilterLevel { get; set; }
+
+ ///
+ /// Dumps shaders in this local directory
+ ///
+ public string GraphicsShadersDumpPath { get; set; }
+
+ ///
+ /// Enables printing debug log messages
+ ///
+ public bool LoggingEnableDebug { get; set; }
+
+ ///
+ /// Enables printing stub log messages
+ ///
+ public bool LoggingEnableStub { get; set; }
+
+ ///
+ /// Enables printing info log messages
+ ///
+ public bool LoggingEnableInfo { get; set; }
+
+ ///
+ /// Enables printing warning log messages
+ ///
+ public bool LoggingEnableWarn { get; set; }
+
+ ///
+ /// Enables printing error log messages
+ ///
+ public bool LoggingEnableError { get; set; }
+
+ ///
+ /// Enables printing trace log messages
+ ///
+ public bool LoggingEnableTrace { get; set; }
+
+ ///
+ /// Enables printing guest log messages
+ ///
+ public bool LoggingEnableGuest { get; set; }
+
+ ///
+ /// Enables printing FS access log messages
+ ///
+ public bool LoggingEnableFsAccessLog { get; set; }
+
+ ///
+ /// Controls which log messages are written to the log targets
+ ///
+ public LogClass[] LoggingFilteredClasses { get; set; }
+
+ ///
+ /// Change Graphics API debug log level
+ ///
+ public GraphicsDebugLevel LoggingGraphicsDebugLevel { get; set; }
+
+ ///
+ /// Change System Language
+ ///
+ public Language SystemLanguage { get; set; }
+
+ ///
+ /// Change System Region
+ ///
+ public Region SystemRegion { get; set; }
+
+ ///
+ /// Change System TimeZone
+ ///
+ public string SystemTimeZone { get; set; }
+
+ ///
+ /// Change System Time Offset in seconds
+ ///
+ public long SystemTimeOffset { get; set; }
+
+ ///
+ /// Enables or disables Docked Mode
+ ///
+ public bool DockedMode { get; set; }
+
+ ///
+ /// Enables or disables Discord Rich Presence
+ ///
+ public bool EnableDiscordIntegration { get; set; }
+
+ ///
+ /// Checks for updates when Ryujinx starts when enabled
+ ///
+ public bool CheckUpdatesOnStart { get; set; }
+
+ ///
+ /// Show "Confirm Exit" Dialog
+ ///
+ public bool ShowConfirmExit { get; set; }
+
+ ///
+ /// Whether to hide cursor on idle, always or never
+ ///
+ public HideCursorMode HideCursor { get; set; }
+
+ ///
+ /// Enables or disables Vertical Sync
+ ///
+ public bool EnableVsync { get; set; }
+
+ ///
+ /// Enables or disables Shader cache
+ ///
+ public bool EnableShaderCache { get; set; }
+
+ ///
+ /// Enables or disables texture recompression
+ ///
+ public bool EnableTextureRecompression { get; set; }
+
+ ///
+ /// Enables or disables Macro high-level emulation
+ ///
+ public bool EnableMacroHLE { get; set; }
+
+ ///
+ /// Enables or disables color space passthrough, if available.
+ ///
+ public bool EnableColorSpacePassthrough { get; set; }
+
+ ///
+ /// Enables or disables profiled translation cache persistency
+ ///
+ public bool EnablePtc { get; set; }
+
+ ///
+ /// Enables or disables guest Internet access
+ ///
+ public bool EnableInternetAccess { get; set; }
+
+ ///
+ /// Enables integrity checks on Game content files
+ ///
+ public bool EnableFsIntegrityChecks { get; set; }
+
+ ///
+ /// Enables FS access log output to the console. Possible modes are 0-3
+ ///
+ public int FsGlobalAccessLogMode { get; set; }
+
+ ///
+ /// The selected audio backend
+ ///
+ public AudioBackend AudioBackend { get; set; }
+
+ ///
+ /// The audio volume
+ ///
+ public float AudioVolume { get; set; }
+
+ ///
+ /// The selected memory manager mode
+ ///
+ public MemoryManagerMode MemoryManagerMode { get; set; }
+
+ ///
+ /// Expands the RAM amount on the emulated system from 4GiB to 6GiB
+ ///
+ public bool ExpandRam { get; set; }
+
+ ///
+ /// Enable or disable ignoring missing services
+ ///
+ public bool IgnoreMissingServices { get; set; }
+
+ ///
+ /// Used to toggle columns in the GUI
+ ///
+ public GuiColumns GuiColumns { get; set; }
+
+ ///
+ /// Used to configure column sort settings in the GUI
+ ///
+ public ColumnSort ColumnSort { get; set; }
+
+ ///
+ /// A list of directories containing games to be used to load games into the games list
+ ///
+ public List GameDirs { get; set; }
+
+ ///
+ /// A list of file types to be hidden in the games List
+ ///
+ public ShownFileTypes ShownFileTypes { get; set; }
+
+ ///
+ /// Main window start-up position, size and state
+ ///
+ public WindowStartup WindowStartup { get; set; }
+
+ ///
+ /// Language Code for the UI
+ ///
+ public string LanguageCode { get; set; }
+
+ ///
+ /// Enable or disable custom themes in the GUI
+ ///
+ public bool EnableCustomTheme { get; set; }
+
+ ///
+ /// Path to custom GUI theme
+ ///
+ public string CustomThemePath { get; set; }
+
+ ///
+ /// Chooses the base style // Not Used
+ ///
+ public string BaseStyle { get; set; }
+
+ ///
+ /// Chooses the view mode of the game list // Not Used
+ ///
+ public int GameListViewMode { get; set; }
+
+ ///
+ /// Show application name in Grid Mode // Not Used
+ ///
+ public bool ShowNames { get; set; }
+
+ ///
+ /// Sets App Icon Size // Not Used
+ ///
+ public int GridSize { get; set; }
+
+ ///
+ /// Sorts Apps in the game list // Not Used
+ ///
+ public int ApplicationSort { get; set; }
+
+ ///
+ /// Sets if Grid is ordered in Ascending Order // Not Used
+ ///
+ public bool IsAscendingOrder { get; set; }
+
+ ///
+ /// Start games in fullscreen mode
+ ///
+ public bool StartFullscreen { get; set; }
+
+ ///
+ /// Show console window
+ ///
+ public bool ShowConsole { get; set; }
+
+ ///
+ /// Enable or disable keyboard support (Independent from controllers binding)
+ ///
+ public bool EnableKeyboard { get; set; }
+
+ ///
+ /// Enable or disable mouse support (Independent from controllers binding)
+ ///
+ public bool EnableMouse { get; set; }
+
+ ///
+ /// Hotkey Keyboard Bindings
+ ///
+ public KeyboardHotkeys Hotkeys { get; set; }
+
+ ///
+ /// Legacy keyboard control bindings
+ ///
+ /// Kept for file format compatibility (to avoid possible failure when parsing configuration on old versions)
+ /// TODO: Remove this when those older versions aren't in use anymore.
+ public List KeyboardConfig { get; set; }
+
+ ///
+ /// Legacy controller control bindings
+ ///
+ /// Kept for file format compatibility (to avoid possible failure when parsing configuration on old versions)
+ /// TODO: Remove this when those older versions aren't in use anymore.
+ public List ControllerConfig { get; set; }
+
+ ///
+ /// Input configurations
+ ///
+ public List InputConfig { get; set; }
+
+ ///
+ /// Graphics backend
+ ///
+ public GraphicsBackend GraphicsBackend { get; set; }
+
+ ///
+ /// Preferred GPU
+ ///
+ public string PreferredGpu { get; set; }
+
+ ///
+ /// Multiplayer Mode
+ ///
+ public MultiplayerMode MultiplayerMode { get; set; }
+
+ ///
+ /// GUID for the network interface used by LAN (or 0 for default)
+ ///
+ public string MultiplayerLanInterfaceId { get; set; }
+
+ ///
+ /// Uses Hypervisor over JIT if available
+ ///
+ public bool UseHypervisor { get; set; }
+
+ ///
+ /// Loads a configuration file from disk
+ ///
+ /// The path to the JSON configuration file
+ /// Parsed configuration file
+ public static bool TryLoad(string path, out ConfigurationFileFormat configurationFileFormat)
+ {
+ try
+ {
+ configurationFileFormat = JsonHelper.DeserializeFromFile(path, ConfigurationFileFormatSettings.SerializerContext.ConfigurationFileFormat);
+
+ return configurationFileFormat.Version != 0;
+ }
+ catch
+ {
+ configurationFileFormat = null;
+
+ return false;
+ }
+ }
+
+ ///
+ /// Save a configuration file to disk
+ ///
+ /// The path to the JSON configuration file
+ public void SaveConfig(string path)
+ {
+ JsonHelper.SerializeToFile(path, this, ConfigurationFileFormatSettings.SerializerContext.ConfigurationFileFormat);
+ }
+ }
+}
--
cgit v1.2.3