enumerateLedmaps and deserializeMap bugfix

Also xOffset and yOffset 8 instead of 16 bit
This commit is contained in:
Ewoud
2023-02-13 14:22:45 +01:00
parent 6c52a3d940
commit d215633578
2 changed files with 6 additions and 8 deletions

View File

@@ -842,8 +842,8 @@ class WS2812FX { // 96 bytes
} panelO; //WLEDMM panelOrientation
typedef struct panel_t {
uint16_t xOffset; // x offset relative to the top left of matrix in LEDs
uint16_t yOffset; // y offset relative to the top left of matrix in LEDs
uint8_t xOffset; // x offset relative to the top left of matrix in LEDs. WLEDMM 8 bits/256 is enough
uint8_t yOffset; // y offset relative to the top left of matrix in LEDs. WLEDMM 8 bits/256 is enough
uint8_t width; // width of the panel
uint8_t height; // height of the panel
union {

View File

@@ -1298,12 +1298,12 @@ void WS2812FX::enumerateLedmaps() {
bool isFile = WLED_FS.exists(fileName);
if (isFile) ledMaps |= 1 << i;
}
//WLEDMM add segment names to be used as ledmap names
uint8_t segment_index = 0;
for (segment &seg : _segments) {
if (strcmp(seg.name, "") != 0) {
if (seg.name != nullptr && strcmp(seg.name, "") != 0) {
char fileName[32];
sprintf_P(fileName, PSTR("/lm%s.json"), seg.name);
Serial.printf("Filename %s\n", fileName);
bool isFile = WLED_FS.exists(fileName);
if (isFile) ledMaps |= 1 << (10+segment_index);
}
@@ -1945,14 +1945,12 @@ void WS2812FX::deserializeMap(uint8_t n) {
if (n) sprintf(fileName +7, "%d", n);
strcat(fileName, ".json");
isFile = WLED_FS.exists(fileName);
} else {
Serial.printf("deserializeMap Filename search %d\n", n);
} else { //WLEDM add segment name as ledmap.name
uint8_t segment_index = 0;
for (segment &seg : _segments) {
if (n == 10 + segment_index && !isFile) {
if (n == 10 + segment_index && !isFile && seg.name != nullptr) {
sprintf_P(fileName, PSTR("/lm%s.json"), seg.name);
isFile = WLED_FS.exists(fileName);
Serial.printf("deserializeMap Filename %s %d\n", fileName, isFile);
}
if (isFile) break;
segment_index++;