mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-02-10 18:36:30 +01:00
The latest git version of GCC has issues with my diamond inheritance shenanigans. Since that's now two compilers that don't like it I thought it'd be best to just axe all of it and just have the two templates like before. This rolls the features of BasicRangedSetting into BasicSetting, and likewise RangedSetting into Setting. It also renames them from BasicSetting and Setting to Setting and SwitchableSetting respectively. Now longer name corresponds to more complex thing.
38 lines
896 B
C++
38 lines
896 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 Setting.
|
|
*
|
|
* @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::Setting<Type>& setting);
|
|
};
|