Skip to content

Commit e31aad0

Browse files
committed
Fix palette bounds
- use constants
1 parent 8594061 commit e31aad0

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

wled00/FX_fcn.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,12 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
237237
break;}
238238
default: //progmem palettes
239239
if (pal > 255 - customPalettes.size()) {
240-
targetPalette = customPalettes[255-pal]; // we checked bounds above
241-
} else if (pal < DYNAMIC_PALETTE_COUNT+FASTLED_PALETTE_COUNT+1) { // palette 6 - 12, fastled palettes
242-
targetPalette = *fastledPalettes[pal-DYNAMIC_PALETTE_COUNT-1];
240+
targetPalette = customPalettes[255 - pal]; // we checked bounds above
241+
} else if (pal < DYNAMIC_PALETTE_COUNT + FASTLED_PALETTE_COUNT) { // palette 6 - 12, fastled palettes
242+
targetPalette = *fastledPalettes[pal - DYNAMIC_PALETTE_COUNT];
243243
} else {
244244
byte tcp[72];
245-
memcpy_P(tcp, (byte*)pgm_read_dword(&(gGradientPalettes[pal-(DYNAMIC_PALETTE_COUNT+FASTLED_PALETTE_COUNT)-1])), 72);
245+
memcpy_P(tcp, (byte*)pgm_read_dword(&(gGradientPalettes[pal - (DYNAMIC_PALETTE_COUNT + FASTLED_PALETTE_COUNT)])), 72);
246246
targetPalette.loadDynamicGradientPalette(tcp);
247247
}
248248
break;

wled00/const.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
* Readability defines and their associated numerical values + compile-time constants
66
*/
77

8-
constexpr size_t FASTLED_PALETTE_COUNT = 7; // = sizeof(fastledPalettes) / sizeof(fastledPalettes[0]);
9-
constexpr size_t GRADIENT_PALETTE_COUNT = 59; // = sizeof(gGradientPalettes) / sizeof(gGradientPalettes[0]);
10-
constexpr size_t DYNAMIC_PALETTE_COUNT = 6; // 0-5 are dynamic palettes (0=default,1=random,2=primary,3=primary+secondary,4=primary+secondary+tertiary,5=primary+secondary(+tertiary if not black)
8+
constexpr size_t FASTLED_PALETTE_COUNT = 7; // 6-12 = sizeof(fastledPalettes) / sizeof(fastledPalettes[0]);
9+
constexpr size_t GRADIENT_PALETTE_COUNT = 59; // 13-72 = sizeof(gGradientPalettes) / sizeof(gGradientPalettes[0]);
10+
constexpr size_t DYNAMIC_PALETTE_COUNT = 6; // 0-5 dynamic palettes (0=default(virtual),1=random,2=primary,3=primary+secondary,4=primary+secondary+tertiary,5=primary+secondary(+tertiary if not black)
1111
constexpr size_t FIXED_PALETTE_COUNT = DYNAMIC_PALETTE_COUNT + FASTLED_PALETTE_COUNT + GRADIENT_PALETTE_COUNT; // total number of fixed palettes
1212
#ifndef WLED_MAX_CUSTOM_PALETTES
1313
#define WLED_MAX_CUSTOM_PALETTES (255-FIXED_PALETTE_COUNT) // number of custom palettes

wled00/json.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -950,9 +950,9 @@ void serializePalettes(JsonObject root, int page)
950950
#endif
951951

952952
int customPalettesCount = customPalettes.size();
953-
int palettesCount = getPaletteCount() - customPalettesCount;
953+
int palettesCount = FIXED_PALETTE_COUNT;
954954

955-
int maxPage = (palettesCount + customPalettesCount -1) / itemPerPage;
955+
int maxPage = (palettesCount + customPalettesCount) / itemPerPage;
956956
if (page > maxPage) page = maxPage;
957957

958958
int start = itemPerPage * page;
@@ -992,12 +992,12 @@ void serializePalettes(JsonObject root, int page)
992992
curPalette.add("c1");
993993
break;
994994
default:
995-
if (i >= palettesCount)
995+
if (i >= palettesCount) // custom palettes
996996
setPaletteColors(curPalette, customPalettes[i - palettesCount]);
997-
else if (i < 13) // palette 6 - 12, fastled palettes
998-
setPaletteColors(curPalette, *fastledPalettes[i-6]);
997+
else if (i < DYNAMIC_PALETTE_COUNT + FASTLED_PALETTE_COUNT) // palette 6 - 12, fastled palettes
998+
setPaletteColors(curPalette, *fastledPalettes[i - DYNAMIC_PALETTE_COUNT]);
999999
else {
1000-
memcpy_P(tcp, (byte*)pgm_read_dword(&(gGradientPalettes[i - 13])), 72);
1000+
memcpy_P(tcp, (byte*)pgm_read_dword(&(gGradientPalettes[i - (DYNAMIC_PALETTE_COUNT + FASTLED_PALETTE_COUNT)])), 72);
10011001
setPaletteColors(curPalette, tcp);
10021002
}
10031003
break;

0 commit comments

Comments
 (0)