Added the possibility to set effect arguments over json

Former-commit-id: 4bc2920c04853e549c712ec70492371b14d20877
This commit is contained in:
johan
2013-12-01 14:09:01 +01:00
parent ae148afba9
commit 515ae3e8c0
12 changed files with 95 additions and 30 deletions

View File

@@ -162,7 +162,14 @@ void JsonClientConnection::handleEffectCommand(const Json::Value &message)
const std::string & effectName = effect["name"].asString();
// set output
_hyperion->setEffect(effectName, priority, duration);
if (effect.isMember("args"))
{
_hyperion->setEffect(effectName, effect["args"], priority, duration);
}
else
{
_hyperion->setEffect(effectName, priority, duration);
}
// send reply
sendSuccessReply();
@@ -212,11 +219,13 @@ void JsonClientConnection::handleServerInfoCommand(const Json::Value &)
// collect effect info
Json::Value & effects = info["effects"] = Json::Value(Json::arrayValue);
std::list<std::string> effectNames = _hyperion->getEffects();
for (const std::string & name : effectNames)
const std::list<EffectDefinition> & effectsDefinitions = _hyperion->getEffects();
for (const EffectDefinition & effectDefinition : effectsDefinitions)
{
Json::Value effect;
effect["name"] = name;
effect["name"] = effectDefinition.name;
effect["script"] = effectDefinition.script;
effect["args"] = effectDefinition.args;
effects.append(effect);
}