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:
Frank
2024-11-07 16:43:20 +01:00
parent d1541b520f
commit 53ecf16ab1
3 changed files with 8 additions and 8 deletions

View File

@@ -277,16 +277,16 @@ void Segment::resetIfRequired() {
next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0;
reset = false; // setOption(SEG_OPTION_RESET, false);
startFrame(); // WLEDMM update cached propoerties
if (isActive()) fill(BLACK); // WLEDMM start clean
if (isActive() && !freeze) fill(BLACK); // WLEDMM start clean
DEBUG_PRINTLN("Segment reset");
} else if (needsBlank) {
startFrame(); // WLEDMM update cached propoerties
if (isActive()) {
if (isActive() && !freeze) {
fill(BLACK); // WLEDMM start clean
DEBUG_PRINTLN("Segment blanked");
needsBlank = false;
}
}
needsBlank = false;
}
void Segment::setUpLeds() {

View File

@@ -386,13 +386,13 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
if (seg.differs(prev) & 0x7F) {
stateChanged = true;
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
seg.markForBlank(); // WLEDMM
else if (prev.isActive() && !prev.freeze && !seg.freeze) prev.fill(BLACK); // WLEDMM fingers crossed
if (!seg.freeze) seg.markForBlank(); // WLEDMM
}
else if ((seg.grouping != prev.grouping) || (seg.spacing != prev.spacing) || (seg.transpose != prev.transpose)) {
// WLEDMM blank if grouping / spacing changed
seg.markForBlank();
if (prev.isActive()) prev.fill(BLACK); // WLEDMM fingers crossed
if (!seg.freeze) seg.markForBlank();
if (prev.isActive() && !prev.freeze) prev.fill(BLACK); // WLEDMM fingers crossed
}
if (iAmGroot) suspendStripService = false; // WLEDMM release lock

View File

@@ -8,7 +8,7 @@
*/
// 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.
#define _MoonModules_WLED_