mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
update
This commit is contained in:
parent
8a6c1fdab3
commit
50fc89e800
@ -45,7 +45,7 @@ public:
|
||||
|
||||
public slots:
|
||||
/// Run the specified effect on the given priority channel and optionally specify a timeout
|
||||
int runEffect(const QString &effectName, int priority, int timeout = -1)
|
||||
int runEffect(const QString &effectName, int priority, int timeout = -1, const QString origin="System")
|
||||
{
|
||||
return runEffect(effectName, QJsonObject(), priority, timeout);
|
||||
};
|
||||
@ -68,7 +68,7 @@ private:
|
||||
bool loadEffectSchema(const QString & path, const QString & effectSchemaFile, EffectSchema &effectSchema);
|
||||
|
||||
/// Run the specified effect on the given priority channel and optionally specify a timeout
|
||||
int runEffectScript(const QString &script, const QString &name, const QJsonObject & args, int priority, int timeout = -1);
|
||||
int runEffectScript(const QString &script, const QString &name, const QJsonObject & args, int priority, int timeout = -1, const QString origin="System");
|
||||
|
||||
private:
|
||||
Hyperion * _hyperion;
|
||||
|
@ -133,7 +133,8 @@ public:
|
||||
/// register a input source to a priority channel
|
||||
/// @param name uniq name of input source
|
||||
/// @param priority priority channel
|
||||
void registerPriority(const std::string name, const int priority);
|
||||
/// @param origin External setter
|
||||
void registerPriority(const std::string name, const int priority, const QString origin="System");
|
||||
|
||||
/// unregister a input source to a priority channel
|
||||
/// @param name uniq name of input source
|
||||
@ -243,14 +244,14 @@ public slots:
|
||||
/// @param effectName Name of the effec to run
|
||||
/// @param priority The priority channel of the effect
|
||||
/// @param timeout The timeout of the effect (after the timout, the effect will be cleared)
|
||||
int setEffect(const QString & effectName, int priority, int timeout = -1);
|
||||
int setEffect(const QString & effectName, int priority, int timeout = -1, const QString origin="System");
|
||||
|
||||
/// Run the specified effect on the given priority channel and optionally specify a timeout
|
||||
/// @param effectName Name of the effec to run
|
||||
/// @param args arguments of the effect script
|
||||
/// @param priority The priority channel of the effect
|
||||
/// @param timeout The timeout of the effect (after the timout, the effect will be cleared)
|
||||
int setEffect(const QString & effectName, const QJsonObject & args, int priority, int timeout = -1, QString pythonScript = "");
|
||||
int setEffect(const QString & effectName, const QJsonObject & args, int priority, int timeout = -1, QString pythonScript = "", const QString origin="System");
|
||||
|
||||
/// sets the methode how image is maped to leds
|
||||
void setLedMappingType(int mappingType);
|
||||
|
@ -342,7 +342,7 @@ void EffectEngine::readEffects()
|
||||
}
|
||||
}
|
||||
|
||||
int EffectEngine::runEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript)
|
||||
int EffectEngine::runEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript, const QString origin)
|
||||
{
|
||||
Info( _log, "run effect %s on channel %d", effectName.toUtf8().constData(), priority);
|
||||
|
||||
@ -364,12 +364,12 @@ int EffectEngine::runEffect(const QString &effectName, const QJsonObject &args,
|
||||
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, origin);
|
||||
} else
|
||||
return runEffectScript(pythonScript, effectName, args, priority, timeout);
|
||||
return runEffectScript(pythonScript, effectName, args, priority, timeout, origin);
|
||||
}
|
||||
|
||||
int EffectEngine::runEffectScript(const QString &script, const QString &name, const QJsonObject &args, int priority, int timeout)
|
||||
int EffectEngine::runEffectScript(const QString &script, const QString &name, const QJsonObject &args, int priority, int timeout, const QString origin)
|
||||
{
|
||||
// clear current effect on the channel
|
||||
channelCleared(priority);
|
||||
@ -381,7 +381,7 @@ int EffectEngine::runEffectScript(const QString &script, const QString &name, co
|
||||
_activeEffects.push_back(effect);
|
||||
|
||||
// start the effect
|
||||
_hyperion->registerPriority(name.toStdString(), priority);
|
||||
_hyperion->registerPriority(name.toStdString(), priority, origin);
|
||||
effect->start();
|
||||
|
||||
return 0;
|
||||
|
@ -504,7 +504,7 @@ bool Hyperion::configWriteable()
|
||||
}
|
||||
|
||||
|
||||
void Hyperion::registerPriority(const std::string name, const int priority)
|
||||
void Hyperion::registerPriority(const std::string name, const int priority, const QString origin)
|
||||
{
|
||||
Info(_log, "Register new input source named '%s' for priority channel '%d'", name.c_str(), priority );
|
||||
|
||||
@ -514,7 +514,7 @@ void Hyperion::registerPriority(const std::string name, const int priority)
|
||||
"Input source '%s' uses same priority channel (%d) as '%s'.", name.c_str(), priority, entry.first.c_str());
|
||||
}
|
||||
|
||||
_priorityRegister.emplace(name,priority);
|
||||
_priorityRegister.emplace(name,priority,origin);
|
||||
}
|
||||
|
||||
void Hyperion::unRegisterPriority(const std::string name)
|
||||
@ -688,14 +688,14 @@ const std::list<EffectSchema> & Hyperion::getEffectSchemas()
|
||||
return _effectEngine->getEffectSchemas();
|
||||
}
|
||||
|
||||
int Hyperion::setEffect(const QString &effectName, int priority, int timeout)
|
||||
int Hyperion::setEffect(const QString &effectName, int priority, int timeout, const QString origin)
|
||||
{
|
||||
return _effectEngine->runEffect(effectName, priority, timeout);
|
||||
return _effectEngine->runEffect(effectName, priority, timeout, origin);
|
||||
}
|
||||
|
||||
int Hyperion::setEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript)
|
||||
int Hyperion::setEffect(const QString &effectName, const QJsonObject &args, int priority, int timeout, QString pythonScript, const QString origin)
|
||||
{
|
||||
return _effectEngine->runEffect(effectName, args, priority, timeout, pythonScript);
|
||||
return _effectEngine->runEffect(effectName, args, priority, timeout, pythonScript, origin);
|
||||
}
|
||||
|
||||
void Hyperion::setLedMappingType(int mappingType)
|
||||
|
@ -438,6 +438,7 @@ void JsonClientConnection::handleEffectCommand(const QJsonObject& message, const
|
||||
// extract parameters
|
||||
int priority = message["priority"].toInt();
|
||||
int duration = message["duration"].toInt(-1);
|
||||
QString origin = message["origin"].toString();
|
||||
QString pythonScript = message["pythonScript"].toString("");
|
||||
const QJsonObject & effect = message["effect"].toObject();
|
||||
const QString & effectName = effect["name"].toString();
|
||||
@ -445,11 +446,11 @@ void JsonClientConnection::handleEffectCommand(const QJsonObject& message, const
|
||||
// set output
|
||||
if (effect.contains("args"))
|
||||
{
|
||||
_hyperion->setEffect(effectName, effect["args"].toObject(), priority, duration, pythonScript);
|
||||
_hyperion->setEffect(effectName, effect["args"].toObject(), priority, duration, pythonScript, origin);
|
||||
}
|
||||
else
|
||||
{
|
||||
_hyperion->setEffect(effectName, priority, duration);
|
||||
_hyperion->setEffect(effectName, priority, duration, origin);
|
||||
}
|
||||
|
||||
// send reply
|
||||
|
@ -20,6 +20,10 @@
|
||||
"type": "integer",
|
||||
"required": false
|
||||
},
|
||||
"origin": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
"effect": {
|
||||
"type": "object",
|
||||
"required": true,
|
||||
|
Loading…
Reference in New Issue
Block a user