Skip to content

Commit

Permalink
Replace sappend and sappends
Browse files Browse the repository at this point in the history
Use named functions to describe what's being printed.
  • Loading branch information
willmmiles committed Sep 10, 2024
1 parent 97f197f commit bc11398
Show file tree
Hide file tree
Showing 3 changed files with 241 additions and 253 deletions.
7 changes: 5 additions & 2 deletions wled00/fcn_declare.h
Original file line number Diff line number Diff line change
Expand Up @@ -362,8 +362,11 @@ void parseNumber(const char* str, byte* val, byte minv=0, byte maxv=255);
bool getVal(JsonVariant elem, byte* val, byte minv=0, byte maxv=255);
bool getBoolVal(JsonVariant elem, bool dflt);
bool updateVal(const char* req, const char* key, byte* val, byte minv=0, byte maxv=255);
void sappend(Print& dest, char stype, const char* key, int val);
void sappends(Print& dest, char stype, const char* key, char* val);
size_t printSetCheckbox(Print& dest, const char* key, int val);
size_t printSetValue(Print& dest, const char* key, int val);
size_t printSetValue(Print& dest, const char* key, const char* val);
size_t printSetIndex(Print& dest, const char* key, int index);
size_t printSetMessage(Print& dest, const char* key, const char* val);
void prepareHostname(char* hostname);
bool isAsterisksOnly(const char* str, byte maxLen);
bool requestJSONBufferLock(uint8_t module=255);
Expand Down
49 changes: 17 additions & 32 deletions wled00/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,45 +87,30 @@ bool updateVal(const char* req, const char* key, byte* val, byte minv, byte maxv
return true;
}

static size_t printSetInt(Print& dest, const char* key, const char* selector, int value) {
return dest.printf_P(PSTR("d.Sf.%s.%s=%d;"), key, selector, value);
}

//append a numeric setting to string buffer
void sappend(Print& dest, char stype, const char* key, int val)
{
const __FlashStringHelper* type_str;
switch(stype)
{
case 'c': //checkbox
type_str = F(".checked=");
break;
case 'v': //numeric
type_str = F(".value=");
break;
case 'i': //selectedIndex
type_str = F(".selectedIndex=");
break;
default:
return; //???
}

dest.printf_P(PSTR("d.Sf.%s%s%d;"), key, type_str, val);
size_t printSetCheckbox(Print& dest, const char* key, int val) {
return printSetInt(dest, key, PSTR("checked"), val);
}
size_t printSetValue(Print& dest, const char* key, int val) {
return printSetInt(dest, key, PSTR("value"), val);
}
size_t printSetIndex(Print& dest, const char* key, int index) {
return printSetInt(dest, key, PSTR("selectedIndex"), index);
}

size_t printSetValue(Print& dest, const char* key, const char* val) {
return dest.printf_P(PSTR("d.Sf.%s.value=\"%s\";"),key,val);
}

//append a string setting to buffer
void sappends(Print& dest, char stype, const char* key, char* val)
{
switch(stype)
{
case 's': {//string (we can interpret val as char*)
dest.printf_P(PSTR("d.Sf.%s.value=\"%s\";"),key,val);
break;}
case 'm': //message
dest.printf_P(PSTR("d.getElementsByClassName%s.innerHTML=\"%s\";"), key, val);
break;
}
size_t printSetMessage(Print& dest, const char* key, const char* val) {
return dest.printf_P(PSTR("d.getElementsByClassName%s.innerHTML=\"%s\";"), key, val);
}



void prepareHostname(char* hostname)
{
sprintf_P(hostname, PSTR("wled-%*s"), 6, escapedMac.c_str() + 6);
Expand Down
Loading

0 comments on commit bc11398

Please sign in to comment.