@@ -2205,7 +2205,7 @@ void WS2812FX::makeAutoSegments(bool forceReset) {
|
|||||||
segStops[s] = segStarts[s] + b->getLength();
|
segStops[s] = segStarts[s] + b->getLength();
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
if (isMatrix && segStops[s] < Segment::maxWidth*Segment::maxHeight) continue; // ignore buses comprising matrix
|
if (isMatrix && segStops[s] <= Segment::maxWidth*Segment::maxHeight) continue; // ignore buses comprising matrix
|
||||||
if (isMatrix && segStarts[s] < Segment::maxWidth*Segment::maxHeight) segStarts[s] = Segment::maxWidth*Segment::maxHeight;
|
if (isMatrix && segStarts[s] < Segment::maxWidth*Segment::maxHeight) segStarts[s] = Segment::maxWidth*Segment::maxHeight;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2278,6 +2278,8 @@ void WS2812FX::fixInvalidSegments() {
|
|||||||
if (_segments[i].stop > _length) _segments[i].stop = _length;
|
if (_segments[i].stop > _length) _segments[i].stop = _length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if any segments were deleted free memory
|
||||||
|
purgeSegments();
|
||||||
// this is always called as the last step after finalizeInit(), update covered bus types
|
// this is always called as the last step after finalizeInit(), update covered bus types
|
||||||
for (segment &seg : _segments)
|
for (segment &seg : _segments)
|
||||||
seg.refreshLightCapabilities();
|
seg.refreshLightCapabilities();
|
||||||
|
|||||||
@@ -516,7 +516,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
|||||||
//bool didSet = false;
|
//bool didSet = false;
|
||||||
for (size_t s = 0; s < strip.getSegmentsNum(); s++) {
|
for (size_t s = 0; s < strip.getSegmentsNum(); s++) {
|
||||||
Segment &sg = strip.getSegment(s);
|
Segment &sg = strip.getSegment(s);
|
||||||
if (sg.isSelected()) {
|
if (sg.isActive() && sg.isSelected()) {
|
||||||
inDeepCall = true; // WLEDMM remember that we are going into recursion
|
inDeepCall = true; // WLEDMM remember that we are going into recursion
|
||||||
deserializeSegment(segVar, s, presetId);
|
deserializeSegment(segVar, s, presetId);
|
||||||
if (iAmGroot) inDeepCall = false; // WLEDMM toplevel -> reset recursion flag
|
if (iAmGroot) inDeepCall = false; // WLEDMM toplevel -> reset recursion flag
|
||||||
|
|||||||
Reference in New Issue
Block a user