24d51e1c92
Adds an option `-c` or `--config` with one required argument that allows the user to specify to where the config file is located. Useful for scripts that run specific games with different preferences for settings.
39 lines
906 B
C++
39 lines
906 B
C++
// Copyright 2014 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <filesystem>
|
|
#include <memory>
|
|
#include <optional>
|
|
#include <string>
|
|
|
|
#include "common/settings.h"
|
|
|
|
class INIReader;
|
|
|
|
class Config {
|
|
std::filesystem::path sdl2_config_loc;
|
|
std::unique_ptr<INIReader> sdl2_config;
|
|
|
|
bool LoadINI(const std::string& default_contents = "", bool retry = true);
|
|
void ReadValues();
|
|
|
|
public:
|
|
explicit Config(std::optional<std::filesystem::path> config_path);
|
|
~Config();
|
|
|
|
void Reload();
|
|
|
|
private:
|
|
/**
|
|
* Applies a value read from the sdl2_config to a BasicSetting.
|
|
*
|
|
* @param group The name of the INI group
|
|
* @param setting The yuzu setting to modify
|
|
*/
|
|
template <typename Type>
|
|
void ReadSetting(const std::string& group, Settings::BasicSetting<Type>& setting);
|
|
};
|