mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Added the possibility to set effect arguments over json
Former-commit-id: 4bc2920c04853e549c712ec70492371b14d20877
This commit is contained in:
14
include/effectengine/EffectDefinition.h
Normal file
14
include/effectengine/EffectDefinition.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
// stl include
|
||||
#include <string>
|
||||
|
||||
// json include
|
||||
#include <json/value.h>
|
||||
|
||||
struct EffectDefinition
|
||||
{
|
||||
std::string name;
|
||||
std::string script;
|
||||
Json::Value args;
|
||||
};
|
@@ -1,11 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
// Qt includes
|
||||
#include <QObject>
|
||||
|
||||
// Json includes
|
||||
#include <json/value.h>
|
||||
|
||||
// Hyperion includes
|
||||
#include <hyperion/Hyperion.h>
|
||||
|
||||
// Effect engine includes
|
||||
#include <effectengine/EffectDefinition.h>
|
||||
|
||||
// pre-declarioation
|
||||
class Effect;
|
||||
typedef struct _ts PyThreadState;
|
||||
@@ -18,32 +24,28 @@ public:
|
||||
EffectEngine(Hyperion * hyperion, const Json::Value & jsonEffectConfig);
|
||||
virtual ~EffectEngine();
|
||||
|
||||
std::list<std::string> getEffects() const;
|
||||
const std::list<EffectDefinition> & getEffects() const;
|
||||
|
||||
public slots:
|
||||
/// Run the specified effect on the given priority channel and optionally specify a timeout
|
||||
int runEffect(const std::string &effectName, int priority, int timeout = -1);
|
||||
|
||||
/// Run the specified effect on the given priority channel and optionally specify a timeout
|
||||
int runEffect(const std::string &effectName, const Json::Value & args, int priority, int timeout = -1);
|
||||
|
||||
/// Clear any effect running on the provided channel
|
||||
void channelCleared(int priority);
|
||||
|
||||
/// Clear all effects
|
||||
void allChannelsCleared();
|
||||
|
||||
public:
|
||||
struct EffectDefinition
|
||||
{
|
||||
std::string script;
|
||||
Json::Value args;
|
||||
};
|
||||
|
||||
private slots:
|
||||
void effectFinished(Effect * effect);
|
||||
|
||||
private:
|
||||
Hyperion * _hyperion;
|
||||
|
||||
std::map<std::string, EffectDefinition> _availableEffects;
|
||||
std::list<EffectDefinition> _availableEffects;
|
||||
|
||||
std::list<Effect *> _activeEffects;
|
||||
|
||||
|
Reference in New Issue
Block a user