From d010ca20492c7638d15690e888d80c6020685df1 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 30 Jun 2022 21:26:00 +0200 Subject: added per-device config options --- src/config/ConfigManager.hpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/config/ConfigManager.hpp') diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 8c0bd857..57124ece 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -52,13 +52,18 @@ public: void tick(); void init(); - int getInt(std::string); - float getFloat(std::string); - std::string getString(std::string); + int getInt(const std::string&); + float getFloat(const std::string&); + std::string getString(const std::string&); void setFloat(std::string, float); void setInt(std::string, int); void setString(std::string, std::string); + int getDeviceInt(const std::string&, const std::string&); + float getDeviceFloat(const std::string&, const std::string&); + std::string getDeviceString(const std::string&, const std::string&); + bool deviceConfigExists(const std::string&); + SConfigValue* getConfigValuePtr(std::string); SMonitorRule getMonitorRuleFor(std::string); @@ -81,6 +86,7 @@ private: std::unordered_map configModifyTimes; // stores modify times std::unordered_map configDynamicVars; // stores dynamic vars declared by the user std::unordered_map configValues; + std::unordered_map> deviceConfigs; // stores device configs std::string configCurrentPath; @@ -100,12 +106,15 @@ private: // internal methods void setDefaultVars(); + void setDeviceDefaultVars(const std::string&); void applyUserDefinedVars(std::string&, const size_t); void loadConfigLoadVars(); - SConfigValue getConfigValueSafe(std::string); + SConfigValue getConfigValueSafe(const std::string&); + SConfigValue getConfigValueSafeDevice(const std::string&, const std::string&); void parseLine(std::string&); void configSetValueSafe(const std::string&, const std::string&); + void handleDeviceConfig(const std::string&, const std::string&); void handleRawExec(const std::string&, const std::string&); void handleMonitor(const std::string&, const std::string&); void handleBind(const std::string&, const std::string&, bool locked = false); -- cgit v1.2.3 From 92890d492a2dea43837591de79ffec828b50d6e2 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 30 Jun 2022 21:38:06 +0200 Subject: fallback on unset device config var --- src/config/ConfigManager.hpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/config/ConfigManager.hpp') diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 57124ece..bcb2fbe5 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -20,6 +20,8 @@ struct SConfigValue { int64_t intValue = -1; float floatValue = -1; std::string strValue = ""; + + bool set = false; // used for device configs }; struct SMonitorRule { -- cgit v1.2.3