Changes to configuration (#811)

* config loading changes

- load config from either ryufs or ryujinx.exe parent folder with parent folder taking priority
- config file in repo is only copied to parent directory if built in debug mode

* AcK's requested changes

* add "Profile Debug" as a condition to copy the default config to output
This commit is contained in:
Xpl0itR 2020-02-14 19:19:13 +00:00 committed by GitHub
parent dbe3f938c7
commit a73fd9e9bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 6 deletions

View file

@ -14,6 +14,8 @@ namespace Ryujinx
{
public static string Version { get; private set; }
public static string ConfigurationPath { get; set; }
static void Main(string[] args)
{
Toolkit.Init(new ToolkitOptions
@ -40,19 +42,33 @@ namespace Ryujinx
// Initialize Discord integration
DiscordIntegrationModule.Initialize();
string configurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
string localConfigurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
string globalConfigurationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx", "Config.json");
// Now load the configuration as the other subsystems are now registered
if (File.Exists(configurationPath))
if (File.Exists(localConfigurationPath))
{
ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(configurationPath);
ConfigurationPath = localConfigurationPath;
ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(localConfigurationPath);
ConfigurationState.Instance.Load(configurationFileFormat);
}
else if (File.Exists(globalConfigurationPath))
{
ConfigurationPath = globalConfigurationPath;
ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(globalConfigurationPath);
ConfigurationState.Instance.Load(configurationFileFormat);
}
else
{
// No configuration, we load the default values and save it on disk
ConfigurationPath = globalConfigurationPath;
ConfigurationState.Instance.LoadDefault();
ConfigurationState.Instance.ToFileFormat().SaveConfig(configurationPath);
ConfigurationState.Instance.ToFileFormat().SaveConfig(globalConfigurationPath);
}
Profile.Initialize();

View file

@ -90,7 +90,7 @@
</ItemGroup>
<ItemGroup>
<None Update="Config.json">
<None Update="Config.json" Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Profile Debug'">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="RPsupported.dat">

View file

@ -1116,7 +1116,7 @@ namespace Ryujinx.Ui
public static void SaveConfig()
{
ConfigurationState.Instance.ToFileFormat().SaveConfig(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json"));
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
}
}
}