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
2a33717103
commit
adace4575c
@ -191,8 +191,10 @@ public slots:
|
|||||||
/// @param[in] priority The priority of the written colors
|
/// @param[in] priority The priority of the written colors
|
||||||
/// @param[in] ledColors The colors to write to the leds
|
/// @param[in] ledColors The colors to write to the leds
|
||||||
/// @param[in] timeout_ms The time the leds are set to the given colors [ms]
|
/// @param[in] timeout_ms The time the leds are set to the given colors [ms]
|
||||||
|
/// @param[in] component The current component
|
||||||
|
/// @param[in] origin Who set it
|
||||||
///
|
///
|
||||||
void setColors(int priority, const std::vector<ColorRgb> &ledColors, const int timeout_ms, bool clearEffects = true, hyperion::Components component=hyperion::COMP_INVALID);
|
void setColors(int priority, const std::vector<ColorRgb> &ledColors, const int timeout_ms, bool clearEffects = true, hyperion::Components component=hyperion::COMP_INVALID, const QString origin="System");
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Writes the given colors to all leds for the given time and priority
|
/// Writes the given colors to all leds for the given time and priority
|
||||||
|
@ -33,7 +33,10 @@ public:
|
|||||||
int64_t timeoutTime_ms;
|
int64_t timeoutTime_ms;
|
||||||
/// The colors for each led of the channel
|
/// The colors for each led of the channel
|
||||||
std::vector<ColorRgb> ledColors;
|
std::vector<ColorRgb> ledColors;
|
||||||
|
/// The component
|
||||||
hyperion::Components componentId;
|
hyperion::Components componentId;
|
||||||
|
/// Who set it
|
||||||
|
QString origin;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The lowest possible priority, which is used when no priority channels are active
|
/// The lowest possible priority, which is used when no priority channels are active
|
||||||
@ -90,8 +93,10 @@ public:
|
|||||||
/// @param[in] priority The priority of the channel
|
/// @param[in] priority The priority of the channel
|
||||||
/// @param[in] ledColors The led colors of the priority channel
|
/// @param[in] ledColors The led colors of the priority channel
|
||||||
/// @param[in] timeoutTime_ms The absolute timeout time of the channel
|
/// @param[in] timeoutTime_ms The absolute timeout time of the channel
|
||||||
|
/// @param[in] component The component of the channel
|
||||||
|
/// @param[in] origin Who set the channel
|
||||||
///
|
///
|
||||||
void setInput(const int priority, const std::vector<ColorRgb>& ledColors, const int64_t timeoutTime_ms=-1, hyperion::Components component=hyperion::COMP_INVALID);
|
void setInput(const int priority, const std::vector<ColorRgb>& ledColors, const int64_t timeoutTime_ms=-1, hyperion::Components component=hyperion::COMP_INVALID, const QString origin="System");
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Clears the specified priority channel
|
/// Clears the specified priority channel
|
||||||
|
@ -571,7 +571,7 @@ void Hyperion::setColor(int priority, const ColorRgb &color, const int timeout_m
|
|||||||
setColors(priority, ledColors, timeout_ms, clearEffects, hyperion::COMP_COLOR);
|
setColors(priority, ledColors, timeout_ms, clearEffects, hyperion::COMP_COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hyperion::setColors(int priority, const std::vector<ColorRgb>& ledColors, const int timeout_ms, bool clearEffects, hyperion::Components component)
|
void Hyperion::setColors(int priority, const std::vector<ColorRgb>& ledColors, const int timeout_ms, bool clearEffects, hyperion::Components component, const QString origin)
|
||||||
{
|
{
|
||||||
// clear effects if this call does not come from an effect
|
// clear effects if this call does not come from an effect
|
||||||
if (clearEffects)
|
if (clearEffects)
|
||||||
@ -582,11 +582,11 @@ void Hyperion::setColors(int priority, const std::vector<ColorRgb>& ledColors, c
|
|||||||
if (timeout_ms > 0)
|
if (timeout_ms > 0)
|
||||||
{
|
{
|
||||||
const uint64_t timeoutTime = QDateTime::currentMSecsSinceEpoch() + timeout_ms;
|
const uint64_t timeoutTime = QDateTime::currentMSecsSinceEpoch() + timeout_ms;
|
||||||
_muxer.setInput(priority, ledColors, timeoutTime, component);
|
_muxer.setInput(priority, ledColors, timeoutTime, component, origin);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_muxer.setInput(priority, ledColors, -1, component);
|
_muxer.setInput(priority, ledColors, -1, component, origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! _sourceAutoSelectEnabled || priority == _muxer.getCurrentPriority())
|
if (! _sourceAutoSelectEnabled || priority == _muxer.getCurrentPriority())
|
||||||
|
@ -48,13 +48,14 @@ const PriorityMuxer::InputInfo& PriorityMuxer::getInputInfo(const int priority)
|
|||||||
return elemIt.value();
|
return elemIt.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PriorityMuxer::setInput(const int priority, const std::vector<ColorRgb>& ledColors, const int64_t timeoutTime_ms, hyperion::Components component)
|
void PriorityMuxer::setInput(const int priority, const std::vector<ColorRgb>& ledColors, const int64_t timeoutTime_ms, hyperion::Components component, const QString origin)
|
||||||
{
|
{
|
||||||
InputInfo& input = _activeInputs[priority];
|
InputInfo& input = _activeInputs[priority];
|
||||||
input.priority = priority;
|
input.priority = priority;
|
||||||
input.timeoutTime_ms = timeoutTime_ms;
|
input.timeoutTime_ms = timeoutTime_ms;
|
||||||
input.ledColors = ledColors;
|
input.ledColors = ledColors;
|
||||||
input.componentId = component;
|
input.componentId = component;
|
||||||
|
input.origin = origin;
|
||||||
_currentPriority = std::min(_currentPriority, priority);
|
_currentPriority = std::min(_currentPriority, priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,6 +365,7 @@ void JsonClientConnection::handleColorCommand(const QJsonObject& message, const
|
|||||||
// extract parameters
|
// extract parameters
|
||||||
int priority = message["priority"].toInt();
|
int priority = message["priority"].toInt();
|
||||||
int duration = message["duration"].toInt(-1);
|
int duration = message["duration"].toInt(-1);
|
||||||
|
QString origin = message["origin"].toString();
|
||||||
|
|
||||||
std::vector<ColorRgb> colorData(_hyperion->getLedCount());
|
std::vector<ColorRgb> colorData(_hyperion->getLedCount());
|
||||||
const QJsonArray & jsonColor = message["color"].toArray();
|
const QJsonArray & jsonColor = message["color"].toArray();
|
||||||
@ -391,7 +392,7 @@ void JsonClientConnection::handleColorCommand(const QJsonObject& message, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set output
|
// set output
|
||||||
_hyperion->setColors(priority, colorData, duration, true, hyperion::COMP_COLOR);
|
_hyperion->setColors(priority, colorData, duration, true, hyperion::COMP_COLOR, origin);
|
||||||
|
|
||||||
// send reply
|
// send reply
|
||||||
sendSuccessReply(command, tan);
|
sendSuccessReply(command, tan);
|
||||||
@ -598,6 +599,7 @@ void JsonClientConnection::handleServerInfoCommand(const QJsonObject&, const QSt
|
|||||||
|
|
||||||
item["owner"] = QString(hyperion::componentToIdString(priorityInfo.componentId));
|
item["owner"] = QString(hyperion::componentToIdString(priorityInfo.componentId));
|
||||||
item["componentId"] = priorityInfo.componentId;
|
item["componentId"] = priorityInfo.componentId;
|
||||||
|
item["origin"] = priorityInfo.origin;
|
||||||
item["component"] = QString(hyperion::componentToString(priorityInfo.componentId));
|
item["component"] = QString(hyperion::componentToString(priorityInfo.componentId));
|
||||||
item["active"] = true;
|
item["active"] = true;
|
||||||
item["visible"] = (priority == currentPriority);
|
item["visible"] = (priority == currentPriority);
|
||||||
|
@ -20,6 +20,10 @@
|
|||||||
"type": "integer",
|
"type": "integer",
|
||||||
"required": false
|
"required": false
|
||||||
},
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "string",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
"color": {
|
"color": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"required": true,
|
"required": true,
|
||||||
|
Loading…
Reference in New Issue
Block a user