diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index c010e365..8a0beead 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -2282,7 +2282,7 @@ void WS2812FX::setSegment(uint8_t n, uint16_t i1, uint16_t i2, uint8_t grouping, } void WS2812FX::restartRuntime() { - for (segment &seg : _segments) seg.markForReset(); + for (segment &seg : _segments) {seg.markForReset(); seg.resetIfRequired();} } void WS2812FX::resetSegments(bool boundsOnly) { //WLEDMM add boundsonly diff --git a/wled00/button.cpp b/wled00/button.cpp index c1d03376..5b4176bb 100644 --- a/wled00/button.cpp +++ b/wled00/button.cpp @@ -189,6 +189,7 @@ void handleAnalog(uint8_t b) briLast = bri; bri = 0; } else { + if (bri == 0) strip.restartRuntime(); bri = aRead; } } else if (macroDoublePress[b] == 249) { diff --git a/wled00/json.cpp b/wled00/json.cpp index ac4d1ca5..7608503d 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -430,7 +430,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId) } } - int tr = -1; + long tr = -1; if (!presetId || currentPlaylist < 0) { //do not apply transition time from preset if playlist active, as it would override playlist transition times tr = root[F("transition")] | -1; if (tr >= 0) @@ -463,7 +463,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId) strip.setTransition(transitionDelayTemp); // required here for color transitions to have correct duration tr = root[F("tb")] | -1; - if (tr >= 0) strip.timebase = ((uint32_t)tr) - millis(); + if (tr >= 0) strip.timebase = ((unsigned long)tr) - millis(); JsonObject nl = root["nl"]; nightlightActive = nl["on"] | nightlightActive; diff --git a/wled00/led.cpp b/wled00/led.cpp index 74520147..6dac8d83 100644 --- a/wled00/led.cpp +++ b/wled00/led.cpp @@ -58,6 +58,7 @@ void toggleOnOff() if (bri == 0) { bri = briLast; + strip.restartRuntime(); } else { briLast = bri; diff --git a/wled00/wled.h b/wled00/wled.h index 095905fe..b58584c5 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2410200 +#define VERSION 2410270 // 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_