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;

View File

@@ -8,7 +8,7 @@
*/
// version code in format yymmddb (b = daily build)
#define VERSION 2401030
#define VERSION 2401260
// 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_