adds ability to set static color on boot.

Former-commit-id: 41ca5ba73fde698d73380fac3dcee5e33b310d76
This commit is contained in:
redpanther 2016-01-31 22:38:30 +01:00
parent 8a906b9d01
commit 4decb05348
3 changed files with 26 additions and 4 deletions

View File

@ -364,7 +364,10 @@
/// The configuration of the effect engine, contains the following items: /// The configuration of the effect engine, contains the following items:
/// * paths : An array with absolute location(s) of directories with effects /// * paths : An array with absolute location(s) of directories with effects
/// * bootsequence : The effect selected as 'boot sequence' /// * bootsequence : The effect selected as 'boot sequence'
/// * effect : name of the effect you want to start. Set to empty if no effect wanted
/// * color : switch to static color after effect is done
/// * duration_ms : duration of boot effect in ms. 0 means effect stays forever /// * duration_ms : duration of boot effect in ms. 0 means effect stays forever
/// * priority : priority of boot effect and static color
"effects" : "effects" :
{ {
"paths" : "paths" :
@ -375,6 +378,7 @@
"bootsequence" : "bootsequence" :
{ {
"color" : [0,0,0],
"effect" : "Rainbow swirl fast", "effect" : "Rainbow swirl fast",
"duration_ms" : 3000, "duration_ms" : 3000,
"priority" : 0 "priority" : 0

View File

@ -359,7 +359,10 @@
/// The configuration of the effect engine, contains the following items: /// The configuration of the effect engine, contains the following items:
/// * paths : An array with absolute location(s) of directories with effects /// * paths : An array with absolute location(s) of directories with effects
/// * bootsequence : The effect selected as 'boot sequence' /// * bootsequence : The effect selected as 'boot sequence'
/// * effect : name of the effect you want to start. Set to empty if no effect wanted
/// * color : switch to static color after effect is done
/// * duration_ms : duration of boot effect in ms. 0 means effect stays forever /// * duration_ms : duration of boot effect in ms. 0 means effect stays forever
/// * priority : priority of boot effect and static color
"effects" : "effects" :
{ {
"paths" : "paths" :
@ -370,9 +373,10 @@
"bootsequence" : "bootsequence" :
{ {
"color" : [0,0,0],
"effect" : "Rainbow swirl fast", "effect" : "Rainbow swirl fast",
"duration_ms" : 3000, "duration_ms" : 3000,
"priority" : 0 "priority" : 900
}, },
/// The configuration for the frame-grabber, contains the following items: /// The configuration for the frame-grabber, contains the following items:

View File

@ -127,8 +127,22 @@ int main(int argc, char** argv)
const std::string effectName = effectConfig["effect"].asString(); const std::string effectName = effectConfig["effect"].asString();
const unsigned duration_ms = effectConfig["duration_ms"].asUInt(); const unsigned duration_ms = effectConfig["duration_ms"].asUInt();
const int priority = effectConfig["priority"].asUInt(); const int priority = effectConfig["priority"].asUInt();
const int bootcolor_priority = (priority > 990) ? priority+1 : 990;
hyperion.setColor(priority+1, ColorRgb::BLACK, duration_ms, false); if ( ! effectConfig["color"].isNull() && effectConfig["color"].isArray() && effectConfig["color"].size() == 3 )
{
ColorRgb boot_color = {
(uint8_t)effectConfig["color"][0].asUInt(),
(uint8_t)effectConfig["color"][1].asUInt(),
(uint8_t)effectConfig["color"][2].asUInt()
};
hyperion.setColor(bootcolor_priority, boot_color, 0, false);
}
else
{
hyperion.setColor(bootcolor_priority, ColorRgb::BLACK, duration_ms, false);
}
if (effectConfig.isMember("args")) if (effectConfig.isMember("args"))
{ {