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

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

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

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

Loading…
Cancel
Save