diff options
| author | xDarksome <dev@darkso.me> | 2022-07-02 19:43:52 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-02 19:43:52 +0300 |
| commit | 185c4d6ea13ad5f4483aa2e389e43bd09106002f (patch) | |
| tree | a7bc4a9510c39e367317b5ce64d2ee0e0a72d4f0 /src/config/ConfigManager.hpp | |
| parent | fc4b10d13c14c4eb08febb0637f27177cb6a1940 (diff) | |
| parent | b7b3344188e3ebd2baed14bc288ee42a1ae8d6f2 (diff) | |
Merge branch 'hyprwm:main' into main
Diffstat (limited to 'src/config/ConfigManager.hpp')
| -rw-r--r-- | src/config/ConfigManager.hpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 8c0bd857..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 { @@ -52,13 +54,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 +88,7 @@ private: std::unordered_map<std::string, time_t> configModifyTimes; // stores modify times std::unordered_map<std::string, std::string> configDynamicVars; // stores dynamic vars declared by the user std::unordered_map<std::string, SConfigValue> configValues; + std::unordered_map<std::string, std::unordered_map<std::string, SConfigValue>> deviceConfigs; // stores device configs std::string configCurrentPath; @@ -100,12 +108,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); |
