start handling monitors
This commit is contained in:
parent
cf51ab71a2
commit
d6c2553af2
9 changed files with 175 additions and 7 deletions
|
|
@ -5,6 +5,7 @@
|
|||
#include <unordered_map>
|
||||
#include "../defines.hpp"
|
||||
#include <vector>
|
||||
#include <deque>
|
||||
|
||||
struct SConfigValue {
|
||||
int64_t intValue = -1;
|
||||
|
|
@ -12,6 +13,14 @@ struct SConfigValue {
|
|||
std::string strValue = "";
|
||||
};
|
||||
|
||||
struct SMonitorRule {
|
||||
std::string name = "";
|
||||
Vector2D resolution = Vector2D(1280,720);
|
||||
Vector2D offset = Vector2D(0,0);
|
||||
float mfact = 0.5;
|
||||
float scale = 1;
|
||||
};
|
||||
|
||||
class CConfigManager {
|
||||
public:
|
||||
CConfigManager();
|
||||
|
|
@ -22,6 +31,8 @@ public:
|
|||
float getFloat(std::string);
|
||||
std::string getString(std::string);
|
||||
|
||||
SMonitorRule getMonitorRuleFor(std::string);
|
||||
|
||||
private:
|
||||
std::unordered_map<std::string, SConfigValue> configValues;
|
||||
time_t lastModifyTime = 0; // for reloading the config if changed
|
||||
|
|
@ -32,12 +43,15 @@ private:
|
|||
|
||||
bool isFirstLaunch = true; // For exec-once
|
||||
|
||||
std::deque<SMonitorRule> m_dMonitorRules;
|
||||
|
||||
// internal methods
|
||||
void loadConfigLoadVars();
|
||||
SConfigValue getConfigValueSafe(std::string);
|
||||
void parseLine(std::string&);
|
||||
void configSetValueSafe(const std::string&, const std::string&);
|
||||
void handleRawExec(const std::string&, const std::string&);
|
||||
void handleMonitor(const std::string&, const std::string&);
|
||||
};
|
||||
|
||||
inline std::unique_ptr<CConfigManager> g_pConfigManager;
|
||||
Loading…
Add table
Add a link
Reference in a new issue