summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.hpp
diff options
context:
space:
mode:
authorxDarksome <dev@darkso.me>2022-07-02 19:43:52 +0300
committerGitHub <noreply@github.com>2022-07-02 19:43:52 +0300
commit185c4d6ea13ad5f4483aa2e389e43bd09106002f (patch)
treea7bc4a9510c39e367317b5ce64d2ee0e0a72d4f0 /src/config/ConfigManager.hpp
parentfc4b10d13c14c4eb08febb0637f27177cb6a1940 (diff)
parentb7b3344188e3ebd2baed14bc288ee42a1ae8d6f2 (diff)
Merge branch 'hyprwm:main' into main
Diffstat (limited to 'src/config/ConfigManager.hpp')
-rw-r--r--src/config/ConfigManager.hpp19
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);