diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index 4ac4912d5..83512be8f 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -1366,11 +1366,17 @@ void WS2812FX::setTransitionMode(bool t) void WS2812FX::load_gradient_palette(uint8_t index) { + // NOTE: due to constant execution (in every effect update) of this code + // if loading from FS is requested it will produce excessive flickering + // loading of palette into RAM from FS should be optimised in such case + // (it is mandatory to load palettes in each service() as each segment can + // have its own palette) + byte tcp[72]; //support gradient palettes with up to 18 entries - if (index>127) { + if (index>114) { char fileName[32]; strcpy_P(fileName, PSTR("/palette")); - if (index>128) sprintf(fileName +7, "%d", index-127); + sprintf(fileName +8, "%d", index-115); // palette ID == 128 strcat(fileName, ".json"); if (WLED_FS.exists(fileName)) { @@ -1392,7 +1398,6 @@ void WS2812FX::load_gradient_palette(uint8_t index) targetPalette.loadDynamicGradientPalette(tcp); } } - releaseJSONBufferLock(); } } else { byte i = constrain(index, 0, GRADIENT_PALETTE_COUNT -1); diff --git a/wled00/data/index.css b/wled00/data/index.css index 776d866a9..756904852 100644 --- a/wled00/data/index.css +++ b/wled00/data/index.css @@ -393,9 +393,9 @@ button { border-radius: 26px; height: 26px; margin: 0 auto; /* 8px if you want space */ - padding: 8px; + padding: 8px 2px; position: relative; - width: 260px; + /*width: 260px;*/ /*transition: opacity 1s;*/ /*opacity: 1;*/ } @@ -1204,7 +1204,7 @@ TD .checkmark, TD .radiomark { .filter .fchkl { display: inline-block; - min-width: 1em; + min-width: 0.7em; padding: 4px 4px 4px 32px; text-align: left; line-height: 24px; diff --git a/wled00/data/index.htm b/wled00/data/index.htm index d5791cb0b..df35012d2 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -222,6 +222,10 @@ +