Adding the possibility to test new Effects ... (#282)

* Update effects_configurator.html

* Update content_effectsconfigurator.js

* Update hyperion.js

* Update de.json

* Add argument QString "pythonScript" to runEffect function

* Update Hyperion.h

* Update EffectEngine.cpp

* Update Hyperion.cpp

* Update JsonClientConnection.cpp

* Update schema-effect.json
This commit is contained in:
Paulchen Panther
2016-10-30 22:59:45 +01:00
committed by brindosch
parent 864538f188
commit 08dfec20c5
10 changed files with 59 additions and 22 deletions

View File

@@ -345,27 +345,31 @@ int EffectEngine::runEffect(const QString &effectName, int priority, int timeout
return runEffect(effectName, QJsonObject(), priority, timeout);
}
int EffectEngine::runEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout)
int EffectEngine::runEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript)
{
Info( _log, "run effect %s on channel %d", effectName.toUtf8().constData(), priority);
const EffectDefinition * effectDefinition = nullptr;
for (const EffectDefinition & e : _availableEffects)
if (pythonScript == "")
{
if (e.name == effectName)
const EffectDefinition * effectDefinition = nullptr;
for (const EffectDefinition & e : _availableEffects)
{
effectDefinition = &e;
break;
if (e.name == effectName)
{
effectDefinition = &e;
break;
}
}
if (effectDefinition == nullptr)
{
// no such effect
Error(_log, "effect %s not found", effectName.toUtf8().constData());
return -1;
}
}
if (effectDefinition == nullptr)
{
// no such effect
Error(_log, "effect %s not found", effectName.toUtf8().constData());
return -1;
}
return runEffectScript(effectDefinition->script, effectName, args.isEmpty() ? effectDefinition->args : args, priority, timeout);
return runEffectScript(effectDefinition->script, effectName, args.isEmpty() ? effectDefinition->args : args, priority, timeout);
} else
return runEffectScript(pythonScript, effectName, args, priority, timeout);
}
int EffectEngine::runEffectScript(const QString &script, const QString &name, const QJsonObject &args, int priority, int timeout)

View File

@@ -824,9 +824,9 @@ int Hyperion::setEffect(const QString &effectName, int priority, int timeout)
return _effectEngine->runEffect(effectName, priority, timeout);
}
int Hyperion::setEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout)
int Hyperion::setEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript)
{
return _effectEngine->runEffect(effectName, args, priority, timeout);
return _effectEngine->runEffect(effectName, args, priority, timeout, pythonScript);
}
void Hyperion::update()

View File

@@ -420,13 +420,14 @@ void JsonClientConnection::handleEffectCommand(const QJsonObject& message, const
// extract parameters
int priority = message["priority"].toInt();
int duration = message["duration"].toInt(-1);
QString pythonScript = message["pythonScript"].toString("");
const QJsonObject & effect = message["effect"].toObject();
const QString & effectName = effect["name"].toString();
// set output
if (effect.contains("args"))
{
_hyperion->setEffect(effectName, effect["args"].toObject(), priority, duration);
_hyperion->setEffect(effectName, effect["args"].toObject(), priority, duration, pythonScript);
}
else
{

View File

@@ -32,6 +32,10 @@
}
},
"additionalProperties": false
},
"pythonScript" : {
"type" : "string",
"required" : false
}
},
"additionalProperties": false