hyperion.ng
SettingsManager.h
1 #pragma once
2 
3 #include <utils/Logger.h>
4 #include <utils/settings.h>
5 
6 // qt incl
7 #include <QJsonObject>
8 
9 class Hyperion;
10 
14 class SettingsManager : public QObject
15 {
16  Q_OBJECT
17 public:
23  SettingsManager(Hyperion* hyperion, const quint8& instance, const QString& configFile);
24 
28  SettingsManager(const quint8& instance, const QString& configFile);
29  ~SettingsManager();
30 
37  bool saveSettings(QJsonObject config, const bool& correct = false);
38 
44  const QJsonDocument getSetting(const settings::type& type);
45 
50  const QJsonObject & getSettings() { return _qconfig; };
51 
52 signals:
58  void settingsChanged(const settings::type& type, const QJsonDocument& data);
59 
60 private:
62  Hyperion* _hyperion;
63 
65  Logger* _log;
66 
68  static QJsonObject schemaJson;
69 
71  QJsonObject _qconfig;
72 };
Definition: Logger.h:32
SettingsManager(Hyperion *hyperion, const quint8 &instance, const QString &configFile)
Construct a settings manager and assign a hyperion instance hyperion The parent hyperion instance i...
Definition: SettingsManager.cpp:19
const QJsonDocument getSetting(const settings::type &type)
get a single setting json from config
Definition: SettingsManager.cpp:136
The main class of Hyperion.
Definition: Hyperion.h:57
Provide utility methods for Hyperion class.
Definition: BlackBorderDetector.h:7
const QJsonObject & getSettings()
get the full settings object of this instance (with global settings)
Definition: SettingsManager.h:50
Manage the settings read write from/to config file, on settings changed will emit a signal to update ...
Definition: SettingsManager.h:14
bool saveSettings(QJsonObject config, const bool &correct=false)
Save a complete json config.
Definition: SettingsManager.cpp:145
void settingsChanged(const settings::type &type, const QJsonDocument &data)
Emits whenever a config part changed.