2020-11-25 00:20:41 +01:00
|
|
|
#include "settings.h"
|
|
|
|
|
2020-12-08 16:22:18 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
2021-11-01 19:53:35 +01:00
|
|
|
void Settings::parse_file(const String &path) {
|
2020-12-08 16:22:18 +01:00
|
|
|
FILE *f = fopen(path.c_str(), "r");
|
|
|
|
|
|
|
|
if (!f) {
|
2020-12-26 17:48:00 +01:00
|
|
|
printf("Settings::parse_file: Error opening file!\n");
|
2020-12-08 16:22:18 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
fseek(f, 0, SEEK_END);
|
|
|
|
long fsize = ftell(f);
|
|
|
|
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
|
|
|
|
|
2021-11-01 19:53:35 +01:00
|
|
|
String config_str;
|
2020-12-08 16:22:18 +01:00
|
|
|
config_str.resize(fsize);
|
|
|
|
|
2021-11-01 19:53:35 +01:00
|
|
|
fread(config_str.dataw(), 1, fsize, f);
|
2020-12-08 16:22:18 +01:00
|
|
|
fclose(f);
|
|
|
|
|
|
|
|
settings.Parse(config_str.c_str());
|
|
|
|
}
|
|
|
|
|
|
|
|
Settings *Settings::get_singleton() {
|
|
|
|
return _singleton;
|
|
|
|
}
|
|
|
|
|
|
|
|
Settings::Settings(const bool singleton) {
|
|
|
|
if (singleton) {
|
|
|
|
if (_singleton) {
|
|
|
|
printf("Settings singleton overridden!\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
_singleton = this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Settings::~Settings() {
|
|
|
|
if (_singleton == this) {
|
|
|
|
_singleton = nullptr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Settings *Settings::_singleton = nullptr;
|