bugfix: make freeze work again
the last commit had a side-effect that cause "freeze" to first blank the screen, then freeze.
This commit is contained in:
@@ -277,16 +277,16 @@ void Segment::resetIfRequired() {
|
|||||||
next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0;
|
next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0;
|
||||||
reset = false; // setOption(SEG_OPTION_RESET, false);
|
reset = false; // setOption(SEG_OPTION_RESET, false);
|
||||||
startFrame(); // WLEDMM update cached propoerties
|
startFrame(); // WLEDMM update cached propoerties
|
||||||
if (isActive()) fill(BLACK); // WLEDMM start clean
|
if (isActive() && !freeze) fill(BLACK); // WLEDMM start clean
|
||||||
DEBUG_PRINTLN("Segment reset");
|
DEBUG_PRINTLN("Segment reset");
|
||||||
} else if (needsBlank) {
|
} else if (needsBlank) {
|
||||||
startFrame(); // WLEDMM update cached propoerties
|
startFrame(); // WLEDMM update cached propoerties
|
||||||
if (isActive()) {
|
if (isActive() && !freeze) {
|
||||||
fill(BLACK); // WLEDMM start clean
|
fill(BLACK); // WLEDMM start clean
|
||||||
DEBUG_PRINTLN("Segment blanked");
|
DEBUG_PRINTLN("Segment blanked");
|
||||||
|
needsBlank = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
needsBlank = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Segment::setUpLeds() {
|
void Segment::setUpLeds() {
|
||||||
|
|||||||
@@ -386,13 +386,13 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
if (seg.differs(prev) & 0x7F) {
|
if (seg.differs(prev) & 0x7F) {
|
||||||
stateChanged = true;
|
stateChanged = true;
|
||||||
if ((seg.on == false) && (prev.on == true) && (prev.freeze == false)) prev.fill(BLACK); // WLEDMM: force BLACK if segment was turned off
|
if ((seg.on == false) && (prev.on == true) && (prev.freeze == false)) prev.fill(BLACK); // WLEDMM: force BLACK if segment was turned off
|
||||||
else if (prev.isActive()) prev.fill(BLACK); // WLEDMM fingers crossed
|
else if (prev.isActive() && !prev.freeze && !seg.freeze) prev.fill(BLACK); // WLEDMM fingers crossed
|
||||||
seg.markForBlank(); // WLEDMM
|
if (!seg.freeze) seg.markForBlank(); // WLEDMM
|
||||||
}
|
}
|
||||||
else if ((seg.grouping != prev.grouping) || (seg.spacing != prev.spacing) || (seg.transpose != prev.transpose)) {
|
else if ((seg.grouping != prev.grouping) || (seg.spacing != prev.spacing) || (seg.transpose != prev.transpose)) {
|
||||||
// WLEDMM blank if grouping / spacing changed
|
// WLEDMM blank if grouping / spacing changed
|
||||||
seg.markForBlank();
|
if (!seg.freeze) seg.markForBlank();
|
||||||
if (prev.isActive()) prev.fill(BLACK); // WLEDMM fingers crossed
|
if (prev.isActive() && !prev.freeze) prev.fill(BLACK); // WLEDMM fingers crossed
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iAmGroot) suspendStripService = false; // WLEDMM release lock
|
if (iAmGroot) suspendStripService = false; // WLEDMM release lock
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2411040
|
#define VERSION 2411070
|
||||||
|
|
||||||
// WLEDMM - you can check for this define in usermods, to only enabled WLEDMM specific code in the "right" fork. Its not defined in AC WLED.
|
// WLEDMM - you can check for this define in usermods, to only enabled WLEDMM specific code in the "right" fork. Its not defined in AC WLED.
|
||||||
#define _MoonModules_WLED_
|
#define _MoonModules_WLED_
|
||||||
|
|||||||
Reference in New Issue
Block a user