make "segment off" work (MM specific) - fixes #90

fix for #90

In principle its dangerous to write pixels from the webserver callback, but in this case we should be save -  `suspendStripService=true` ensures that strip.service() is not active in the main loopTask.
This commit is contained in:
Frank
2024-01-26 17:21:31 +01:00
parent 302f18fbfe
commit 27e0bff4ee
2 changed files with 5 additions and 2 deletions

View File

@@ -369,7 +369,10 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
strip.trigger(); // force segment update
}
// send UDP/WS if segment options changed (except selection; will also deselect current preset)
if (seg.differs(prev) & 0x7F) stateChanged = true;
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
}
if (iAmGroot) suspendStripService = false; // WLEDMM release lock
return true;