mirror of
https://github.com/wled/WLED.git
synced 2025-07-09 11:56:35 +00:00
Semi-working segment on/off transition
This commit is contained in:
parent
3577da05ac
commit
baf49b88f4
@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
### Builds after release 0.12.0
|
### Builds after release 0.12.0
|
||||||
|
|
||||||
|
#### Build 2109200
|
||||||
|
|
||||||
|
- Added segment names (PR #2184)
|
||||||
|
- Improved Police and other effects (PR #2184)
|
||||||
|
- Reverted PR #1902 (Live color correction - will be implemented as usermod) (PR #2175)
|
||||||
|
|
||||||
#### Build 2109100
|
#### Build 2109100
|
||||||
|
|
||||||
- Added an auto create segments per bus setting
|
- Added an auto create segments per bus setting
|
||||||
|
11
wled00/FX.h
11
wled00/FX.h
@ -274,8 +274,8 @@ class WS2812FX {
|
|||||||
}*/
|
}*/
|
||||||
void setOption(uint8_t n, bool val, uint8_t segn = 255)
|
void setOption(uint8_t n, bool val, uint8_t segn = 255)
|
||||||
{
|
{
|
||||||
//bool prevOn = false;
|
bool prevOn = false;
|
||||||
//if (n == SEG_OPTION_ON) prevOn = getOption(SEG_OPTION_ON);
|
if (n == SEG_OPTION_ON) prevOn = getOption(SEG_OPTION_ON);
|
||||||
if (val) {
|
if (val) {
|
||||||
options |= 0x01 << n;
|
options |= 0x01 << n;
|
||||||
} else
|
} else
|
||||||
@ -283,13 +283,13 @@ class WS2812FX {
|
|||||||
options &= ~(0x01 << n);
|
options &= ~(0x01 << n);
|
||||||
}
|
}
|
||||||
//transitions on segment on/off don't work correctly at this point
|
//transitions on segment on/off don't work correctly at this point
|
||||||
/*if (n == SEG_OPTION_ON && segn < MAX_NUM_SEGMENTS && getOption(SEG_OPTION_ON) != prevOn) {
|
if (n == SEG_OPTION_ON && segn < MAX_NUM_SEGMENTS && val != prevOn) {
|
||||||
if (getOption(SEG_OPTION_ON)) {
|
if (val) {
|
||||||
ColorTransition::startTransition(0, colors[0], instance->_transitionDur, segn, 0);
|
ColorTransition::startTransition(0, colors[0], instance->_transitionDur, segn, 0);
|
||||||
} else {
|
} else {
|
||||||
ColorTransition::startTransition(opacity, colors[0], instance->_transitionDur, segn, 0);
|
ColorTransition::startTransition(opacity, colors[0], instance->_transitionDur, segn, 0);
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
bool getOption(uint8_t n)
|
bool getOption(uint8_t n)
|
||||||
{
|
{
|
||||||
@ -473,6 +473,7 @@ class WS2812FX {
|
|||||||
uint8_t segn = segment & 0x3F;
|
uint8_t segn = segment & 0x3F;
|
||||||
if (segn >= MAX_NUM_SEGMENTS) return 0;
|
if (segn >= MAX_NUM_SEGMENTS) return 0;
|
||||||
uint8_t briNew = instance->_segments[segn].opacity;
|
uint8_t briNew = instance->_segments[segn].opacity;
|
||||||
|
if (!instance->_segments[segn].getOption(SEG_OPTION_ON)) briNew = 0; //NEW
|
||||||
uint32_t prog = progress() + 1;
|
uint32_t prog = progress() + 1;
|
||||||
return ((briNew * prog) + (briOld * (0x10000 - prog))) >> 16;
|
return ((briNew * prog) + (briOld * (0x10000 - prog))) >> 16;
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,9 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
seg.setOption(SEG_OPTION_ON, 1, id);
|
seg.setOption(SEG_OPTION_ON, 1, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
seg.setOption(SEG_OPTION_ON, elem["on"] | seg.getOption(SEG_OPTION_ON), id);
|
bool on = elem["on"] | seg.getOption(SEG_OPTION_ON);
|
||||||
|
if (elem["on"].is<const char*>() && elem["on"].as<const char*>()[0] == 't') on = !on;
|
||||||
|
seg.setOption(SEG_OPTION_ON, on, id);
|
||||||
|
|
||||||
JsonArray colarr = elem["col"];
|
JsonArray colarr = elem["col"];
|
||||||
if (!colarr.isNull())
|
if (!colarr.isNull())
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2109100
|
#define VERSION 2109200
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
x
Reference in New Issue
Block a user