2020-09-21 17:17:34 +00:00
|
|
|
// SPDX-License-Identifier: MIT
|
2020-05-25 19:34:42 +00:00
|
|
|
//
|
2020-09-21 17:17:34 +00:00
|
|
|
// EmulationStation Desktop Edition
|
2020-06-21 12:25:28 +00:00
|
|
|
// Settings.h
|
2020-05-25 19:34:42 +00:00
|
|
|
//
|
2020-06-21 12:25:28 +00:00
|
|
|
// Functions to read from and write to the configuration file es_settings.cfg.
|
|
|
|
// The default values for the application settings are defined here as well.
|
2020-05-25 19:34:42 +00:00
|
|
|
//
|
|
|
|
|
2017-10-31 17:12:50 +00:00
|
|
|
#ifndef ES_CORE_SETTINGS_H
|
|
|
|
#define ES_CORE_SETTINGS_H
|
|
|
|
|
2013-06-17 19:01:03 +00:00
|
|
|
#include <map>
|
2020-11-28 21:27:00 +00:00
|
|
|
#include <string>
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-05-25 19:34:42 +00:00
|
|
|
// This is a singleton for storing settings.
|
2013-06-17 19:01:03 +00:00
|
|
|
class Settings
|
|
|
|
{
|
|
|
|
public:
|
2020-06-21 12:25:28 +00:00
|
|
|
static Settings* getInstance();
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
void loadFile();
|
|
|
|
void saveFile();
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
// You will get a warning if you try a get on a key that is not already present.
|
|
|
|
bool getBool(const std::string& name);
|
2020-12-14 16:25:41 +00:00
|
|
|
bool getDefaultBool(const std::string& name);
|
2020-06-21 12:25:28 +00:00
|
|
|
int getInt(const std::string& name);
|
2020-12-14 16:25:41 +00:00
|
|
|
int getDefaultInt(const std::string& name);
|
2020-06-21 12:25:28 +00:00
|
|
|
float getFloat(const std::string& name);
|
2020-12-14 16:25:41 +00:00
|
|
|
float getDefaultFloat(const std::string& name);
|
2020-06-21 12:25:28 +00:00
|
|
|
const std::string& getString(const std::string& name);
|
2020-12-14 16:25:41 +00:00
|
|
|
const std::string& getDefaultString(const std::string& name);
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
bool setBool(const std::string& name, bool value);
|
|
|
|
bool setInt(const std::string& name, int value);
|
|
|
|
bool setFloat(const std::string& name, float value);
|
|
|
|
bool setString(const std::string& name, const std::string& value);
|
2013-06-17 19:01:03 +00:00
|
|
|
|
|
|
|
private:
|
2020-06-21 12:25:28 +00:00
|
|
|
static Settings* sInstance;
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
Settings();
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
// Clear everything and load default values.
|
|
|
|
void setDefaults();
|
2013-06-17 19:01:03 +00:00
|
|
|
|
2020-06-21 12:25:28 +00:00
|
|
|
bool mWasChanged;
|
2020-05-25 19:34:42 +00:00
|
|
|
|
2020-12-14 16:25:41 +00:00
|
|
|
// Pair of settings: default value, current value.
|
|
|
|
std::map<std::string, std::pair<bool, bool>> mBoolMap;
|
|
|
|
std::map<std::string, std::pair<int, int>> mIntMap;
|
|
|
|
std::map<std::string, std::pair<float, float>> mFloatMap;
|
|
|
|
std::map<std::string, std::pair<std::string, std::string>> mStringMap;
|
2013-06-17 19:01:03 +00:00
|
|
|
};
|
2017-10-31 17:12:50 +00:00
|
|
|
|
|
|
|
#endif // ES_CORE_SETTINGS_H
|