From 341aa21b87dcc638c14298f176a02e5d36e56769 Mon Sep 17 00:00:00 2001 From: jackun Date: Mon, 16 Mar 2020 18:32:48 +0200 Subject: [PATCH] [config] Move options map and config_file_path to overlay_params --- src/config.cpp | 14 +++++--------- src/config.h | 9 ++------- src/overlay_params.cpp | 8 ++++---- src/overlay_params.h | 5 +++++ 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index 22b016b9..97de0214 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -4,14 +4,10 @@ #include #include #include "config.h" -#include "overlay_params.h" #include "file_utils.h" #include "string_utils.h" -std::string config_file_path; -std::unordered_map options; - -void parseConfigLine(std::string line) { +void parseConfigLine(std::string line, std::unordered_map& 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 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; } } diff --git a/src/config.h b/src/config.h index 35d45b7f..53de83a4 100644 --- a/src/config.h +++ b/src/config.h @@ -1,7 +1,2 @@ -#include -#include - -extern std::unordered_map options; -extern std::string config_file_path; - -void parseConfigFile(void); \ No newline at end of file +#include "overlay_params.h" +void parseConfigFile(overlay_params& p); \ No newline at end of file diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 2234ffe5..ec861e3e 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -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] = \ diff --git a/src/overlay_params.h b/src/overlay_params.h index 782c6405..7a1523c7 100644 --- a/src/overlay_params.h +++ b/src/overlay_params.h @@ -25,6 +25,7 @@ #define OVERLAY_PARAMS_H #include +#include #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 options; + }; const extern char *overlay_param_names[];