Too long metadata string bugfix.
This commit is contained in:
parent
4911a74cac
commit
7e28718681
@ -974,9 +974,10 @@ void serializeNodes(JsonObject root)
|
|||||||
// deserializes mode data string into JsonArray
|
// deserializes mode data string into JsonArray
|
||||||
void serializeModeData(JsonArray fxdata)
|
void serializeModeData(JsonArray fxdata)
|
||||||
{
|
{
|
||||||
char lineBuffer[128];
|
char lineBuffer[256];
|
||||||
for (size_t i = 0; i < strip.getModeCount(); i++) {
|
for (size_t i = 0; i < strip.getModeCount(); i++) {
|
||||||
strncpy_P(lineBuffer, strip.getModeData(i), 127);
|
strncpy_P(lineBuffer, strip.getModeData(i), 255);
|
||||||
|
lineBuffer[255] = '\0'; // terminate string
|
||||||
if (lineBuffer[0] != 0) {
|
if (lineBuffer[0] != 0) {
|
||||||
char* dataPtr = strchr(lineBuffer,'@');
|
char* dataPtr = strchr(lineBuffer,'@');
|
||||||
if (dataPtr) fxdata.add(dataPtr+1);
|
if (dataPtr) fxdata.add(dataPtr+1);
|
||||||
@ -987,10 +988,12 @@ void serializeModeData(JsonArray fxdata)
|
|||||||
|
|
||||||
// deserializes mode names string into JsonArray
|
// deserializes mode names string into JsonArray
|
||||||
// also removes effect data extensions (@...) from deserialised names
|
// also removes effect data extensions (@...) from deserialised names
|
||||||
void serializeModeNames(JsonArray arr) {
|
void serializeModeNames(JsonArray arr)
|
||||||
char lineBuffer[128];
|
{
|
||||||
|
char lineBuffer[256];
|
||||||
for (size_t i = 0; i < strip.getModeCount(); i++) {
|
for (size_t i = 0; i < strip.getModeCount(); i++) {
|
||||||
strncpy_P(lineBuffer, strip.getModeData(i), 127);
|
strncpy_P(lineBuffer, strip.getModeData(i), 255);
|
||||||
|
lineBuffer[255] = '\0'; // terminate string
|
||||||
if (lineBuffer[0] != 0) {
|
if (lineBuffer[0] != 0) {
|
||||||
char* dataPtr = strchr(lineBuffer,'@');
|
char* dataPtr = strchr(lineBuffer,'@');
|
||||||
if (dataPtr) *dataPtr = 0; // terminate mode data after name
|
if (dataPtr) *dataPtr = 0; // terminate mode data after name
|
||||||
|
@ -233,7 +233,8 @@ uint8_t extractModeName(uint8_t mode, const char *src, char *dest, uint8_t maxLe
|
|||||||
if (mode < strip.getModeCount()) {
|
if (mode < strip.getModeCount()) {
|
||||||
char lineBuffer[256];
|
char lineBuffer[256];
|
||||||
//strcpy_P(lineBuffer, (const char*)pgm_read_dword(&(WS2812FX::_modeData[mode])));
|
//strcpy_P(lineBuffer, (const char*)pgm_read_dword(&(WS2812FX::_modeData[mode])));
|
||||||
strcpy_P(lineBuffer, strip.getModeData(mode));
|
strncpy_P(lineBuffer, strip.getModeData(mode), 255);
|
||||||
|
lineBuffer[255] = '\0'; // terminate string
|
||||||
size_t len = strlen(lineBuffer);
|
size_t len = strlen(lineBuffer);
|
||||||
size_t j = 0;
|
size_t j = 0;
|
||||||
for (; j < maxLen && j < len; j++) {
|
for (; j < maxLen && j < len; j++) {
|
||||||
@ -355,9 +356,9 @@ uint8_t extractModeSlider(uint8_t mode, uint8_t slider, char *dest, uint8_t maxL
|
|||||||
int16_t extractModeDefaults(uint8_t mode, const char *segVar)
|
int16_t extractModeDefaults(uint8_t mode, const char *segVar)
|
||||||
{
|
{
|
||||||
if (mode < strip.getModeCount()) {
|
if (mode < strip.getModeCount()) {
|
||||||
char lineBuffer[128] = "";
|
char lineBuffer[256];
|
||||||
strncpy_P(lineBuffer, strip.getModeData(mode), 127);
|
strncpy_P(lineBuffer, strip.getModeData(mode), 255);
|
||||||
lineBuffer[127] = '\0'; // terminate string
|
lineBuffer[255] = '\0'; // terminate string
|
||||||
if (lineBuffer[0] != 0) {
|
if (lineBuffer[0] != 0) {
|
||||||
char* startPtr = strrchr(lineBuffer, ';'); // last ";" in FX data
|
char* startPtr = strrchr(lineBuffer, ';'); // last ";" in FX data
|
||||||
if (!startPtr) return -1;
|
if (!startPtr) return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user