[config] Move options map and config_file_path to overlay_params

pull/93/head
jackun 4 years ago
parent c5dad16612
commit 341aa21b87
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

@ -4,14 +4,10 @@
#include <string.h>
#include <thread>
#include "config.h"
#include "overlay_params.h"
#include "file_utils.h"
#include "string_utils.h"
std::string config_file_path;
std::unordered_map<std::string,std::string> options;
void parseConfigLine(std::string line) {
void parseConfigLine(std::string line, std::unordered_map<std::string,std::string>& options) {
std::string param, value;
if (line.find("#") != std::string::npos)
@ -30,8 +26,8 @@ void parseConfigLine(std::string line) {
options[param] = value;
}
void parseConfigFile() {
options.clear();
void parseConfigFile(overlay_params& params) {
params.options.clear();
std::vector<std::string> paths;
static const char *mangohud_dir = "/MangoHud/";
@ -90,10 +86,10 @@ void parseConfigFile() {
std::cerr << "parsing config: " << *p;
while (std::getline(stream, line))
{
parseConfigLine(line);
parseConfigLine(line, params.options);
}
std::cerr << " [ ok ]" << std::endl;
config_file_path = *p;
params.config_file_path = *p;
return;
}
}

@ -1,7 +1,2 @@
#include <unordered_map>
#include <string>
extern std::unordered_map<std::string,std::string> options;
extern std::string config_file_path;
void parseConfigFile(void);
#include "overlay_params.h"
void parseConfigFile(overlay_params& p);

@ -361,8 +361,8 @@ parse_overlay_config(struct overlay_params *params,
if (!env || read_cfg) {
// Get config options
parseConfigFile();
if (options.find("full") != options.end() && options.find("full")->second != "0") {
parseConfigFile(*params);
if (params->options.find("full") != params->options.end() && params->options.find("full")->second != "0") {
#define OVERLAY_PARAM_BOOL(name) \
params->enabled[OVERLAY_PARAM_ENABLED_##name] = 1;
#define OVERLAY_PARAM_CUSTOM(name)
@ -370,10 +370,10 @@ parse_overlay_config(struct overlay_params *params,
#undef OVERLAY_PARAM_BOOL
#undef OVERLAY_PARAM_CUSTOM
params->enabled[OVERLAY_PARAM_ENABLED_crosshair] = 0;
options.erase("full");
params->options.erase("full");
}
for (auto& it : options) {
for (auto& it : params->options) {
#define OVERLAY_PARAM_BOOL(name) \
if (it.first == #name) { \
params->enabled[OVERLAY_PARAM_ENABLED_##name] = \

@ -25,6 +25,7 @@
#define OVERLAY_PARAMS_H
#include <string>
#include <unordered_map>
#ifdef __cplusplus
extern "C" {
@ -139,6 +140,10 @@ struct overlay_params {
KeySym toggle_logging;
KeySym reload_cfg;
std::string time_format, output_file, font_file;
std::string config_file_path;
std::unordered_map<std::string,std::string> options;
};
const extern char *overlay_param_names[];

Loading…
Cancel
Save