diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index d33843cb..b95f20c1 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -1394,6 +1394,9 @@ uint8_t Segment::differs(Segment& b) const { if (custom1 != b.custom1) d |= SEG_DIFFERS_FX; if (custom2 != b.custom2) d |= SEG_DIFFERS_FX; if (custom3 != b.custom3) d |= SEG_DIFFERS_FX; + if (check1 != b.check1) d |= SEG_DIFFERS_FX; + if (check2 != b.check2) d |= SEG_DIFFERS_FX; + if (check3 != b.check3) d |= SEG_DIFFERS_FX; if (startY != b.startY) d |= SEG_DIFFERS_BOUNDS; if (stopY != b.stopY) d |= SEG_DIFFERS_BOUNDS; diff --git a/wled00/playlist.cpp b/wled00/playlist.cpp index 463f2b15..b98f93c6 100644 --- a/wled00/playlist.cpp +++ b/wled00/playlist.cpp @@ -90,7 +90,8 @@ int16_t loadPlaylist(JsonObject playlistObj, byte presetId) { it++; } } - for (int i = it; i < playlistLen; i++) playlistEntries[i].dur = playlistEntries[it -1].dur; + if (it > 0) // should never happen but just in case + for (int i = it; i < playlistLen; i++) playlistEntries[i].dur = playlistEntries[it -1].dur; it = 0; JsonArray tr = playlistObj[F("transition")]; diff --git a/wled00/udp.cpp b/wled00/udp.cpp index f5d1e788..0d403aab 100644 --- a/wled00/udp.cpp +++ b/wled00/udp.cpp @@ -499,8 +499,8 @@ void handleNotifications() selseg.custom2 = udpIn[30+ofs]; selseg.custom3 = udpIn[31+ofs] & 0x1F; selseg.check1 = (udpIn[31+ofs]>>5) & 0x1; - selseg.check1 = (udpIn[31+ofs]>>6) & 0x1; - selseg.check1 = (udpIn[31+ofs]>>7) & 0x1; + selseg.check2 = (udpIn[31+ofs]>>6) & 0x1; + selseg.check3 = (udpIn[31+ofs]>>7) & 0x1; } startY = (udpIn[32+ofs] << 8 | udpIn[33+ofs]); stopY = (udpIn[34+ofs] << 8 | udpIn[35+ofs]); diff --git a/wled00/util.cpp b/wled00/util.cpp index a10b87c5..23e458e0 100644 --- a/wled00/util.cpp +++ b/wled00/util.cpp @@ -272,7 +272,7 @@ void releaseJSONBufferLock() // extracts effect mode (or palette) name from names serialized string -// caller must provide large enough buffer for name (including SR extensions)! +// caller must provide large enough buffer for name (including SR extensions)! maxLen is (buffersize - 1) uint8_t extractModeName(uint8_t mode, const char *src, char *dest, uint8_t maxLen) { if (src == JSON_mode_names || src == nullptr) { @@ -294,7 +294,7 @@ uint8_t extractModeName(uint8_t mode, const char *src, char *dest, uint8_t maxLe if (src == JSON_palette_names && mode > (GRADIENT_PALETTE_COUNT + 13)) { snprintf_P(dest, maxLen, PSTR("~ Custom %d ~"), 255-mode); - dest[maxLen-1] = '\0'; + dest[maxLen] = '\0'; return strlen(dest); } @@ -329,7 +329,7 @@ uint8_t extractModeName(uint8_t mode, const char *src, char *dest, uint8_t maxLe } -// extracts effect slider data (1st group after @) +// extracts effect slider data (1st group after @) -> maxLen is (buffersize - 1) uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxLen, uint8_t *var) { dest[0] = '\0'; // start by clearing buffer diff --git a/wled00/wled.h b/wled00/wled.h index b87368bc..22a26e92 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -7,7 +7,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2512171 +#define VERSION 2512291 // 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_