#ifndef CONFIG_MANAGER_H #define CONFIG_MANAGER_H #include #include class ConfigManager: public QObject { Q_OBJECT; Q_PROPERTY(bool recording READ GetRecordingState WRITE SetRecordingState) Q_PROPERTY(int frame_rate READ GetFrameRate WRITE SetFrameRate) Q_PROPERTY(double emissivity READ GetEmissivity WRITE SetEmissivity) Q_PROPERTY(QString viewfinder_config READ GetViewfinderConfig WRITE SetViewfinderConfig) Q_PROPERTY(QString trigger_config READ GetTriggerConfig WRITE SetTriggerConfig) public: ConfigManager(QObject *parent); virtual ~ConfigManager(); public slots: bool GetRecordingState(); void SetRecordingState(bool enable); int GetFrameRate(); void SetFrameRate(int frame_rate); double GetEmissivity(); void SetEmissivity(double emissivity); QString GetViewfinderConfig(); void SetViewfinderConfig(QString config); QString GetTriggerConfig(); void SetTriggerConfig(QString config); signals: void NewRecordingState(bool enable); void NewFrameRate(int frame_rate); void NewEmissivity(double emissivity); private: bool recording = false; int frame_rate = 5; double emissivity = 0.95; QJsonObject viewfinder_config = QJsonObject( { qMakePair(QString("palette"), QJsonValue("rainbow")), qMakePair(QString("low_temp"), QJsonValue(0)), qMakePair(QString("high_temp"), QJsonValue(100)) }); QJsonObject trigger_config = QJsonObject( { qMakePair(QString("method"), QJsonValue("threshold")), qMakePair(QString("min"), QJsonValue(50)), qMakePair(QString("max"), QJsonValue(100)) }); }; #endif