hyperion.ng
EffectFileHandler.h
1 #pragma once
2 
3 // util
4 #include <utils/Logger.h>
5 #include <effectengine/EffectDefinition.h>
6 #include <effectengine/EffectSchema.h>
7 #include <utils/settings.h>
8 
9 class EffectFileHandler : public QObject
10 {
11  Q_OBJECT
12 private:
13  friend class HyperionDaemon;
14  EffectFileHandler(const QString& rootPath, const QJsonDocument& effectConfig, QObject* parent = nullptr);
15 
16 public:
17  static EffectFileHandler* efhInstance;
18  static EffectFileHandler* getInstance() { return efhInstance; };
19 
23  const std::list<EffectDefinition> & getEffects() const { return _availableEffects; };
24 
28  const std::list<EffectSchema> & getEffectSchemas() { return _effectSchemas; };
29 
36  bool saveEffect(const QJsonObject& obj, QString& resultMsg);
37 
44  bool deleteEffect(const QString& effectName, QString& resultMsg);
45 
46 public slots:
52  void handleSettingsUpdate(const settings::type& type, const QJsonDocument& config);
53 
54 signals:
58  void effectListChanged();
59 
60 private:
64  void updateEffects();
65 
69  bool loadEffectDefinition(const QString & path, const QString & effectConfigFile, EffectDefinition &effectDefinition);
70 
74  bool loadEffectSchema(const QString & path, const QString & effectSchemaFile, EffectSchema &effectSchema);
75 
76 private:
77  QJsonObject _effectConfig;
78  Logger* _log;
79  const QString _rootPath;
80 
81  // available effects
82  std::list<EffectDefinition> _availableEffects;
83 
84  // all schemas
85  std::list<EffectSchema> _effectSchemas;
86 };
Definition: Logger.h:32
Definition: EffectSchema.h:7
Definition: EffectFileHandler.h:9
bool saveEffect(const QJsonObject &obj, QString &resultMsg)
Save an effect.
Definition: EffectFileHandler.cpp:98
void handleSettingsUpdate(const settings::type &type, const QJsonDocument &config)
Handle settings update from Hyperion Settingsmanager emit.
Definition: EffectFileHandler.cpp:51
void effectListChanged()
Emits whenever the data changes for an effect.
Definition: hyperiond.h:67
Definition: EffectDefinition.h:7
const std::list< EffectSchema > & getEffectSchemas()
Get all available schemas.
Definition: EffectFileHandler.h:28
bool deleteEffect(const QString &effectName, QString &resultMsg)
Delete an effect by name.
Definition: EffectFileHandler.cpp:61
const std::list< EffectDefinition > & getEffects() const
Get all available effects.
Definition: EffectFileHandler.h:23