From 97b3c3db7b26b766cf4860336c2b9384876627e0 Mon Sep 17 00:00:00 2001 From: Blaz Kristan Date: Tue, 23 Nov 2021 20:05:51 +0100 Subject: [PATCH] Incrementing & random effects, palettes via JSON. --- wled00/json.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/wled00/json.cpp b/wled00/json.cpp index 1a546c795..a30aa68b1 100644 --- a/wled00/json.cpp +++ b/wled00/json.cpp @@ -148,21 +148,21 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId) //temporary, strip object gets updated via colorUpdated() if (id == strip.getMainSegmentId()) { - byte effectPrev = effectCurrent; - effectCurrent = elem["fx"] | effectCurrent; - if (!presetId && effectCurrent != effectPrev) unloadPlaylist(); //stop playlist if active and FX changed manually + if (getVal(elem["fx"], &effectCurrent, 1, strip.getModeCount())) { //load effect ('r' random, '~' inc/dec, 1-255 exact value) + if (!presetId) unloadPlaylist(); //stop playlist if active and FX changed manually + } effectSpeed = elem[F("sx")] | effectSpeed; effectIntensity = elem[F("ix")] | effectIntensity; - effectPalette = elem["pal"] | effectPalette; + getVal(elem["pal"], &effectPalette, 1, strip.getPaletteCount()); } else { //permanent - byte fx = elem["fx"] | seg.mode; - if (fx != seg.mode && fx < strip.getModeCount()) { + byte fx = seg.mode; + if (getVal(elem["fx"], &fx, 1, strip.getModeCount())) { //load effect ('r' random, '~' inc/dec, 1-255 exact value) strip.setMode(id, fx); if (!presetId) unloadPlaylist(); //stop playlist if active and FX changed manually } seg.speed = elem[F("sx")] | seg.speed; seg.intensity = elem[F("ix")] | seg.intensity; - seg.palette = elem["pal"] | seg.palette; + getVal(elem["pal"], &seg.palette, 1, strip.getPaletteCount()); } JsonArray iarr = elem[F("i")]; //set individual LEDs