Merge branch 'mdev' of https://github.com/MoonModules/WLED into mdev
This commit is contained in:
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wled",
|
"name": "wled",
|
||||||
"version": "0.14.0.2.0_MM",
|
"version": "0.14.0.2.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wled",
|
"name": "wled",
|
||||||
"version": "0.14.0.2.0_MM",
|
"version": "0.14.0.2.1",
|
||||||
"description": "Tools for WLED project",
|
"description": "Tools for WLED project",
|
||||||
"main": "tools/cdata.js",
|
"main": "tools/cdata.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def bin_rename_copy(source, target, env):
|
|||||||
if release_name:
|
if release_name:
|
||||||
_create_dirs(["release"])
|
_create_dirs(["release"])
|
||||||
version = _get_cpp_define_value(env, "WLED_VERSION")
|
version = _get_cpp_define_value(env, "WLED_VERSION")
|
||||||
release_file = "{}release{}WLED_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, version, release_name)
|
release_file = "{}release{}WLEDMM_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, version, release_name) #WLEDMM: add MM postfix to WLED
|
||||||
shutil.copy(str(target[0]), release_file)
|
shutil.copy(str(target[0]), release_file)
|
||||||
|
|
||||||
# check if new target files exist and remove if necessary
|
# check if new target files exist and remove if necessary
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${env.lib_deps}
|
${env.lib_deps}
|
||||||
; https://github.com/lorol/LITTLEFS.git
|
; https://github.com/lorol/LITTLEFS.git
|
||||||
; WLEDSR specific: use patched version of lorol LittleFS
|
; WLEDMM specific: use patched version of lorol LittleFS
|
||||||
https://github.com/softhack007/LITTLEFS-threadsafe.git#master
|
https://github.com/softhack007/LITTLEFS-threadsafe.git#master
|
||||||
makuna/NeoPixelBus @ 2.6.9
|
makuna/NeoPixelBus @ 2.6.9
|
||||||
https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
|
https://github.com/pbolduc/AsyncTCP.git @ 1.2.0
|
||||||
@@ -551,7 +551,7 @@ build_flags_min =
|
|||||||
-D WLED_USE_MY_CONFIG
|
-D WLED_USE_MY_CONFIG
|
||||||
-D USERMOD_AUDIOREACTIVE
|
-D USERMOD_AUDIOREACTIVE
|
||||||
-D UM_AUDIOREACTIVE_USE_NEW_FFT ; use latest (upstream) FFTLib, instead of older library midified by blazoncek. Slightly faster, more accurate, needs 2KB RAM extra
|
-D UM_AUDIOREACTIVE_USE_NEW_FFT ; use latest (upstream) FFTLib, instead of older library midified by blazoncek. Slightly faster, more accurate, needs 2KB RAM extra
|
||||||
-D USERMOD_CUSTOMEFFECTS ; WLEDSR usermod
|
-D USERMOD_CUSTOMEFFECTS ; WLEDMM usermod
|
||||||
; -D WLED_DEBUG ; lots of generic debug messages
|
; -D WLED_DEBUG ; lots of generic debug messages
|
||||||
; -D SR_DEBUG ; some extra debug messages from audioreactive
|
; -D SR_DEBUG ; some extra debug messages from audioreactive
|
||||||
|
|
||||||
@@ -568,9 +568,9 @@ build_flags_max =
|
|||||||
-D USERMOD_FOUR_LINE_DISPLAY
|
-D USERMOD_FOUR_LINE_DISPLAY
|
||||||
-D USERMOD_ROTARY_ENCODER_UI
|
-D USERMOD_ROTARY_ENCODER_UI
|
||||||
-D USERMOD_AUTO_SAVE
|
-D USERMOD_AUTO_SAVE
|
||||||
-D USERMOD_WEATHER ; WLEDSR usermod
|
-D USERMOD_WEATHER ; WLEDMM usermod
|
||||||
-D USERMOD_MPU6050_IMU ; gyro/accelero for USERMOD_GAMES (ONLY WORKS IF USERMOD_FOUR_LINE_DISPLAY NOT INCLUDED - I2C SHARING BUG)
|
-D USERMOD_MPU6050_IMU ; gyro/accelero for USERMOD_GAMES (ONLY WORKS IF USERMOD_FOUR_LINE_DISPLAY NOT INCLUDED - I2C SHARING BUG)
|
||||||
-D USERMOD_GAMES ; WLEDSR usermod
|
-D USERMOD_GAMES ; WLEDMM usermod
|
||||||
|
|
||||||
lib_deps_max =
|
lib_deps_max =
|
||||||
OneWire@~2.3.5 ; used for USERMOD_FOUR_LINE_DISPLAY and USERMOD_DALLASTEMPERATURE
|
OneWire@~2.3.5 ; used for USERMOD_FOUR_LINE_DISPLAY and USERMOD_DALLASTEMPERATURE
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
isHW = (ioPin[0]==i2c_scl && ioPin[1]==i2c_sda);
|
isHW = (ioPin[0]==i2c_scl && ioPin[1]==i2c_sda);
|
||||||
//isHW = true;
|
//isHW = true;
|
||||||
if (isHW) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins
|
if (isHW) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins
|
||||||
if (ioPin[0] < 0 || ioPin[1] < 0) { type=NONE; return; } //WLEDSR bugfix - ensure that "final" GPIO are valid
|
if (ioPin[0] < 0 || ioPin[1] < 0) { type=NONE; return; } //WLEDMM bugfix - ensure that "final" GPIO are valid
|
||||||
PinManagerPinType pins[2] = { { ioPin[0], true }, { ioPin[1], true } };
|
PinManagerPinType pins[2] = { { ioPin[0], true }, { ioPin[1], true } };
|
||||||
if (!pinManager.allocateMultiplePins(pins, 2, po)) { type=NONE; return; }
|
if (!pinManager.allocateMultiplePins(pins, 2, po)) { type=NONE; return; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ class FourLineDisplayUsermod : public Usermod {
|
|||||||
// isHW = true;
|
// isHW = true;
|
||||||
if (isHW) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins
|
if (isHW) po = PinOwner::HW_I2C; // allow multiple allocations of HW I2C bus pins
|
||||||
PinManagerPinType pins[2] = { {ioPin[0], true }, { ioPin[1], true } };
|
PinManagerPinType pins[2] = { {ioPin[0], true }, { ioPin[1], true } };
|
||||||
if (ioPin[0] < 0 || ioPin[1] < 0) { type=NONE; return; } //WLEDSR bugfix - ensure that "final" GPIO are valid
|
if (ioPin[0] < 0 || ioPin[1] < 0) { type=NONE; return; } //WLEDMM bugfix - ensure that "final" GPIO are valid
|
||||||
if (!pinManager.allocateMultiplePins(pins, 2, po)) { type=NONE; return; }
|
if (!pinManager.allocateMultiplePins(pins, 2, po)) { type=NONE; return; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ static const char _data_FX_MODE_IMUTest[] PROGMEM = "🎮 IMUTest@;;;2d";
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//WLEDSR 3D to 2D mapping
|
//WLEDMM 3D to 2D mapping
|
||||||
struct Voxel {
|
struct Voxel {
|
||||||
float x;
|
float x;
|
||||||
float y;
|
float y;
|
||||||
|
|||||||
@@ -1083,7 +1083,7 @@ uint16_t mode_running_random(void) {
|
|||||||
|
|
||||||
uint8_t z = it % zoneSize;
|
uint8_t z = it % zoneSize;
|
||||||
bool nzone = (!z && it != SEGENV.aux1);
|
bool nzone = (!z && it != SEGENV.aux1);
|
||||||
for (int i=SEGLEN-1; i >= 0; i--) { // WLEDSR bugfix
|
for (int i=SEGLEN-1; i >= 0; i--) { // WLEDMM bugfix
|
||||||
if (nzone || z >= zoneSize) {
|
if (nzone || z >= zoneSize) {
|
||||||
uint8_t lastrand = PRNG16 >> 8;
|
uint8_t lastrand = PRNG16 >> 8;
|
||||||
int16_t diff = 0;
|
int16_t diff = 0;
|
||||||
@@ -1724,7 +1724,7 @@ uint16_t mode_random_chase(void)
|
|||||||
uint32_t color = SEGENV.step;
|
uint32_t color = SEGENV.step;
|
||||||
random16_set_seed(SEGENV.aux0);
|
random16_set_seed(SEGENV.aux0);
|
||||||
|
|
||||||
for (int i = SEGLEN -1; i >= 0; i--) { // WLEDSR bugfix
|
for (int i = SEGLEN -1; i >= 0; i--) { // WLEDMM bugfix
|
||||||
uint8_t r = random8(6) != 0 ? (color >> 16 & 0xFF) : random8();
|
uint8_t r = random8(6) != 0 ? (color >> 16 & 0xFF) : random8();
|
||||||
uint8_t g = random8(6) != 0 ? (color >> 8 & 0xFF) : random8();
|
uint8_t g = random8(6) != 0 ? (color >> 8 & 0xFF) : random8();
|
||||||
uint8_t b = random8(6) != 0 ? (color & 0xFF) : random8();
|
uint8_t b = random8(6) != 0 ? (color & 0xFF) : random8();
|
||||||
@@ -5347,7 +5347,7 @@ static const char _data_FX_MODE_2DPOLARLIGHTS[] PROGMEM = "Polar Lights@Speed,Sc
|
|||||||
uint16_t mode_2DPulser(void) { // By: ldirko https://editor.soulmatelights.com/gallery/878-pulse-test , modifed by: Andrew Tuline
|
uint16_t mode_2DPulser(void) { // By: ldirko https://editor.soulmatelights.com/gallery/878-pulse-test , modifed by: Andrew Tuline
|
||||||
if (!strip.isMatrix) return mode_static(); // not a 2D set-up
|
if (!strip.isMatrix) return mode_static(); // not a 2D set-up
|
||||||
|
|
||||||
const uint16_t cols = SEGMENT.virtualWidth(); // WLEDSR bugfix
|
const uint16_t cols = SEGMENT.virtualWidth(); // WLEDMM bugfix
|
||||||
const uint16_t rows = SEGMENT.virtualHeight();
|
const uint16_t rows = SEGMENT.virtualHeight();
|
||||||
|
|
||||||
if (SEGENV.call == 0) {
|
if (SEGENV.call == 0) {
|
||||||
@@ -5358,7 +5358,7 @@ uint16_t mode_2DPulser(void) { // By: ldirko https://edi
|
|||||||
SEGMENT.fadeToBlackBy(8 - (SEGMENT.intensity>>5));
|
SEGMENT.fadeToBlackBy(8 - (SEGMENT.intensity>>5));
|
||||||
|
|
||||||
uint32_t a = strip.now / (18 - SEGMENT.speed / 16);
|
uint32_t a = strip.now / (18 - SEGMENT.speed / 16);
|
||||||
uint16_t x = (a / 14) % cols; // WLEDSR bugfix
|
uint16_t x = (a / 14) % cols; // WLEDMM bugfix
|
||||||
uint16_t y = map((sin8(a * 5) + sin8(a * 4) + sin8(a * 2)), 0, 765, rows-1, 0);
|
uint16_t y = map((sin8(a * 5) + sin8(a * 4) + sin8(a * 2)), 0, 765, rows-1, 0);
|
||||||
SEGMENT.setPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, map(y, 0, rows-1, 0, 255), 255, LINEARBLEND));
|
SEGMENT.setPixelColorXY(x, y, ColorFromPalette(SEGPALETTE, map(y, 0, rows-1, 0, 255), 255, LINEARBLEND));
|
||||||
|
|
||||||
|
|||||||
16
wled00/FX.h
16
wled00/FX.h
@@ -317,7 +317,7 @@
|
|||||||
#define FX_MODE_WAVESINS 184
|
#define FX_MODE_WAVESINS 184
|
||||||
#define FX_MODE_ROCKTAVES 185
|
#define FX_MODE_ROCKTAVES 185
|
||||||
#define FX_MODE_2DAKEMI 186
|
#define FX_MODE_2DAKEMI 186
|
||||||
#define FX_MODE_CUSTOMEFFECT 187 //WLEDSR Custom Effects
|
#define FX_MODE_CUSTOMEFFECT 187 //WLEDMM Custom Effects
|
||||||
|
|
||||||
#define MODE_COUNT 188
|
#define MODE_COUNT 188
|
||||||
|
|
||||||
@@ -326,9 +326,9 @@ typedef enum mapping1D2D {
|
|||||||
M12_pBar = 1,
|
M12_pBar = 1,
|
||||||
M12_pArc = 2,
|
M12_pArc = 2,
|
||||||
M12_pCorner = 3,
|
M12_pCorner = 3,
|
||||||
M12_jMap = 4, //WLEDSR jMap
|
M12_jMap = 4, //WLEDMM jMap
|
||||||
M12_sCircle = 5, //WLEDSR jMap
|
M12_sCircle = 5, //WLEDMM jMap
|
||||||
M12_sBlock = 6 //WLEDSR jMap
|
M12_sBlock = 6 //WLEDMM jMap
|
||||||
} mapping1D2D_t;
|
} mapping1D2D_t;
|
||||||
|
|
||||||
// segment, 72 bytes
|
// segment, 72 bytes
|
||||||
@@ -382,7 +382,7 @@ typedef struct Segment {
|
|||||||
byte* data;
|
byte* data;
|
||||||
CRGB* leds;
|
CRGB* leds;
|
||||||
static CRGB *_globalLeds;
|
static CRGB *_globalLeds;
|
||||||
void *jMap; //WLEDSR jMap
|
void *jMap; //WLEDMM jMap
|
||||||
|
|
||||||
private:
|
private:
|
||||||
union {
|
union {
|
||||||
@@ -473,7 +473,7 @@ typedef struct Segment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Segment(uint16_t sStartX, uint16_t sStopX, uint16_t sStartY, uint16_t sStopY) : Segment(sStartX, sStopX) {
|
Segment(uint16_t sStartX, uint16_t sStopX, uint16_t sStartY, uint16_t sStopY) : Segment(sStartX, sStopX) {
|
||||||
Serial.println("Segment"); //WLEDSR jMap
|
Serial.println("Segment"); //WLEDMM jMap
|
||||||
startY = sStartY;
|
startY = sStartY;
|
||||||
stopY = sStopY;
|
stopY = sStopY;
|
||||||
}
|
}
|
||||||
@@ -576,8 +576,8 @@ typedef struct Segment {
|
|||||||
uint16_t virtualWidth(void) const;
|
uint16_t virtualWidth(void) const;
|
||||||
uint16_t virtualHeight(void) const;
|
uint16_t virtualHeight(void) const;
|
||||||
uint16_t nrOfVStrips(void) const;
|
uint16_t nrOfVStrips(void) const;
|
||||||
void createjMap(); //WLEDSR jMap
|
void createjMap(); //WLEDMM jMap
|
||||||
void deletejMap(); //WLEDSR jMap
|
void deletejMap(); //WLEDMM jMap
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
uint16_t XY(uint16_t x, uint16_t y); // support function to get relative index within segment (for leds[])
|
uint16_t XY(uint16_t x, uint16_t y); // support function to get relative index within segment (for leds[])
|
||||||
void setPixelColorXY(int x, int y, uint32_t c); // set relative pixel within segment with color
|
void setPixelColorXY(int x, int y, uint32_t c); // set relative pixel within segment with color
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ void WS2812FX::setUpMatrix() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// absolute matrix version of setPixelColor()
|
// absolute matrix version of setPixelColor()
|
||||||
void IRAM_ATTR_YN WS2812FX::setPixelColorXY(int x, int y, uint32_t col) //WLEDSR: IRAM_ATTR conditionaly
|
void IRAM_ATTR_YN WS2812FX::setPixelColorXY(int x, int y, uint32_t col) //WLEDMM: IRAM_ATTR conditionaly
|
||||||
{
|
{
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
if (!isMatrix) return; // not a matrix set-up
|
if (!isMatrix) return; // not a matrix set-up
|
||||||
@@ -141,13 +141,13 @@ uint32_t WS2812FX::getPixelColorXY(uint16_t x, uint16_t y) {
|
|||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
|
|
||||||
// XY(x,y) - gets pixel index within current segment (often used to reference leds[] array element)
|
// XY(x,y) - gets pixel index within current segment (often used to reference leds[] array element)
|
||||||
uint16_t IRAM_ATTR_YN Segment::XY(uint16_t x, uint16_t y) { //WLEDSR: IRAM_ATTR conditionaly
|
uint16_t IRAM_ATTR_YN Segment::XY(uint16_t x, uint16_t y) { //WLEDMM: IRAM_ATTR conditionaly
|
||||||
uint16_t width = virtualWidth(); // segment width in logical pixels
|
uint16_t width = virtualWidth(); // segment width in logical pixels
|
||||||
uint16_t height = virtualHeight(); // segment height in logical pixels
|
uint16_t height = virtualHeight(); // segment height in logical pixels
|
||||||
return (x%width) + (y%height) * width;
|
return (x%width) + (y%height) * width;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRAM_ATTR_YN Segment::setPixelColorXY(int x, int y, uint32_t col) //WLEDSR: IRAM_ATTR conditionaly
|
void IRAM_ATTR_YN Segment::setPixelColorXY(int x, int y, uint32_t col) //WLEDMM: IRAM_ATTR conditionaly
|
||||||
{
|
{
|
||||||
if (!strip.isMatrix) return; // not a matrix set-up
|
if (!strip.isMatrix) return; // not a matrix set-up
|
||||||
if (x >= virtualWidth() || y >= virtualHeight() || x<0 || y<0) return; // if pixel would fall out of virtual segment just exit
|
if (x >= virtualWidth() || y >= virtualHeight() || x<0 || y<0) return; // if pixel would fall out of virtual segment just exit
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ Segment::Segment(const Segment &orig) {
|
|||||||
if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); }
|
if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); }
|
||||||
if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); }
|
if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); }
|
||||||
if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); }
|
if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); }
|
||||||
jMap = nullptr; //WLEDSR jMap
|
jMap = nullptr; //WLEDMM jMap
|
||||||
}
|
}
|
||||||
|
|
||||||
// move constructor
|
// move constructor
|
||||||
@@ -101,7 +101,7 @@ Segment::Segment(Segment &&orig) noexcept {
|
|||||||
orig._dataLen = 0;
|
orig._dataLen = 0;
|
||||||
orig._t = nullptr;
|
orig._t = nullptr;
|
||||||
orig.leds = nullptr;
|
orig.leds = nullptr;
|
||||||
orig.jMap = nullptr; //WLEDSR jMap
|
orig.jMap = nullptr; //WLEDMM jMap
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy assignment
|
// copy assignment
|
||||||
@@ -126,7 +126,7 @@ Segment& Segment::operator= (const Segment &orig) {
|
|||||||
if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); }
|
if (orig.data) { if (allocateData(orig._dataLen)) memcpy(data, orig.data, orig._dataLen); }
|
||||||
if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); }
|
if (orig._t) { _t = new Transition(orig._t->_dur, orig._t->_briT, orig._t->_cctT, orig._t->_colorT); }
|
||||||
if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); }
|
if (orig.leds && !Segment::_globalLeds) { leds = (CRGB*)malloc(sizeof(CRGB)*length()); if (leds) memcpy(leds, orig.leds, sizeof(CRGB)*length()); }
|
||||||
jMap = nullptr; //WLEDSR jMap
|
jMap = nullptr; //WLEDMM jMap
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ Segment& Segment::operator= (Segment &&orig) noexcept {
|
|||||||
orig._dataLen = 0;
|
orig._dataLen = 0;
|
||||||
orig._t = nullptr;
|
orig._t = nullptr;
|
||||||
orig.leds = nullptr;
|
orig.leds = nullptr;
|
||||||
orig.jMap = nullptr; //WLEDSR jMap
|
orig.jMap = nullptr; //WLEDMM jMap
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
@@ -465,10 +465,10 @@ uint16_t Segment::nrOfVStrips() const {
|
|||||||
case M12_pBar:
|
case M12_pBar:
|
||||||
vLen = virtualWidth();
|
vLen = virtualWidth();
|
||||||
break;
|
break;
|
||||||
case M12_sCircle: //WLEDSR
|
case M12_sCircle: //WLEDMM
|
||||||
vLen = (virtualWidth() + virtualHeight()) / 6; // take third of the average width
|
vLen = (virtualWidth() + virtualHeight()) / 6; // take third of the average width
|
||||||
break;
|
break;
|
||||||
case M12_sBlock: //WLEDSR
|
case M12_sBlock: //WLEDMM
|
||||||
vLen = (virtualWidth() + virtualHeight()) / 8; // take half of the average width
|
vLen = (virtualWidth() + virtualHeight()) / 8; // take half of the average width
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -477,7 +477,7 @@ uint16_t Segment::nrOfVStrips() const {
|
|||||||
return vLen;
|
return vLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
//WLEDSR jMap
|
//WLEDMM jMap
|
||||||
struct XandY {
|
struct XandY {
|
||||||
uint8_t x;
|
uint8_t x;
|
||||||
uint8_t y;
|
uint8_t y;
|
||||||
@@ -609,7 +609,7 @@ class JMapC {
|
|||||||
} //updatejMapDoc
|
} //updatejMapDoc
|
||||||
}; //class JMapC
|
}; //class JMapC
|
||||||
|
|
||||||
//WLEDSR jMap
|
//WLEDMM jMap
|
||||||
void Segment::createjMap() {
|
void Segment::createjMap() {
|
||||||
if (!jMap) {
|
if (!jMap) {
|
||||||
Serial.println("createjMap");
|
Serial.println("createjMap");
|
||||||
@@ -617,7 +617,7 @@ void Segment::createjMap() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//WLEDSR jMap
|
//WLEDMM jMap
|
||||||
void Segment::deletejMap() {
|
void Segment::deletejMap() {
|
||||||
//Should be called from ~Segment but causes crash (and ~Segment is called quite often...)
|
//Should be called from ~Segment but causes crash (and ~Segment is called quite often...)
|
||||||
if (jMap) {
|
if (jMap) {
|
||||||
@@ -641,15 +641,15 @@ uint16_t Segment::virtualLength() const {
|
|||||||
case M12_pArc:
|
case M12_pArc:
|
||||||
vLen = max(vW,vH); // get the longest dimension
|
vLen = max(vW,vH); // get the longest dimension
|
||||||
break;
|
break;
|
||||||
case M12_jMap: //WLEDSR jMap
|
case M12_jMap: //WLEDMM jMap
|
||||||
if (jMap)
|
if (jMap)
|
||||||
vLen = ((JMapC *)jMap)->length();
|
vLen = ((JMapC *)jMap)->length();
|
||||||
break;
|
break;
|
||||||
case M12_sCircle: //WLEDSR
|
case M12_sCircle: //WLEDMM
|
||||||
vLen = max(vW,vH); // get the longest dimension
|
vLen = max(vW,vH); // get the longest dimension
|
||||||
// vLen = (virtualWidth() + virtualHeight()) * 3;
|
// vLen = (virtualWidth() + virtualHeight()) * 3;
|
||||||
break;
|
break;
|
||||||
case M12_sBlock: //WLEDSR
|
case M12_sBlock: //WLEDMM
|
||||||
if (nrOfVStrips()>1)
|
if (nrOfVStrips()>1)
|
||||||
vLen = max(vW,vH) * 4;//0.5; // get the longest dimension
|
vLen = max(vW,vH) * 4;//0.5; // get the longest dimension
|
||||||
else
|
else
|
||||||
@@ -665,7 +665,7 @@ uint16_t Segment::virtualLength() const {
|
|||||||
return vLength;
|
return vLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
//WLEDSR used for M12_sBlock
|
//WLEDMM used for M12_sBlock
|
||||||
void xyFromBlock(uint16_t &x,uint16_t &y, uint16_t i, uint16_t vW, uint16_t vH, uint16_t vStrip) {
|
void xyFromBlock(uint16_t &x,uint16_t &y, uint16_t i, uint16_t vW, uint16_t vH, uint16_t vStrip) {
|
||||||
float i2;
|
float i2;
|
||||||
if (i<=SEGLEN*0.25) { //top, left to right
|
if (i<=SEGLEN*0.25) { //top, left to right
|
||||||
@@ -691,7 +691,7 @@ void xyFromBlock(uint16_t &x,uint16_t &y, uint16_t i, uint16_t vW, uint16_t vH,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRAM_ATTR_YN Segment::setPixelColor(int i, uint32_t col) //WLEDSR: IRAM_ATTR conditionaly
|
void IRAM_ATTR_YN Segment::setPixelColor(int i, uint32_t col) //WLEDMM: IRAM_ATTR conditionaly
|
||||||
{
|
{
|
||||||
int vStrip = i>>16; // hack to allow running on virtual strips (2D segment columns/rows)
|
int vStrip = i>>16; // hack to allow running on virtual strips (2D segment columns/rows)
|
||||||
i &= 0xFFFF;
|
i &= 0xFFFF;
|
||||||
@@ -723,11 +723,11 @@ void IRAM_ATTR_YN Segment::setPixelColor(int i, uint32_t col) //WLEDSR: IRAM_ATT
|
|||||||
for (int x = 0; x <= i; x++) setPixelColorXY(x, i, col);
|
for (int x = 0; x <= i; x++) setPixelColorXY(x, i, col);
|
||||||
for (int y = 0; y < i; y++) setPixelColorXY(i, y, col);
|
for (int y = 0; y < i; y++) setPixelColorXY(i, y, col);
|
||||||
break;
|
break;
|
||||||
case M12_jMap: //WLEDSR jMap
|
case M12_jMap: //WLEDMM jMap
|
||||||
if (jMap)
|
if (jMap)
|
||||||
((JMapC *)jMap)->setPixelColor(i, col);
|
((JMapC *)jMap)->setPixelColor(i, col);
|
||||||
break;
|
break;
|
||||||
case M12_sCircle: //WLEDSR
|
case M12_sCircle: //WLEDMM
|
||||||
if (vStrip > 0)
|
if (vStrip > 0)
|
||||||
{
|
{
|
||||||
int x = roundf(sin_t(360*i/SEGLEN*DEG_TO_RAD) * vW * (vStrip+1)/nrOfVStrips());
|
int x = roundf(sin_t(360*i/SEGLEN*DEG_TO_RAD) * vW * (vStrip+1)/nrOfVStrips());
|
||||||
@@ -737,7 +737,7 @@ void IRAM_ATTR_YN Segment::setPixelColor(int i, uint32_t col) //WLEDSR: IRAM_ATT
|
|||||||
else // pArc -> circle
|
else // pArc -> circle
|
||||||
drawArc(vW/2, vH/2, i/2, col);
|
drawArc(vW/2, vH/2, i/2, col);
|
||||||
break;
|
break;
|
||||||
case M12_sBlock: //WLEDSR
|
case M12_sBlock: //WLEDMM
|
||||||
if (vStrip > 0)
|
if (vStrip > 0)
|
||||||
{
|
{
|
||||||
//vStrip+1 is distance from centre, i is how much of the square is filled
|
//vStrip+1 is distance from centre, i is how much of the square is filled
|
||||||
@@ -862,11 +862,11 @@ uint32_t Segment::getPixelColor(int i)
|
|||||||
// use longest dimension
|
// use longest dimension
|
||||||
return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i);
|
return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i);
|
||||||
break;
|
break;
|
||||||
case M12_jMap: //WLEDSR jMap
|
case M12_jMap: //WLEDMM jMap
|
||||||
if (jMap)
|
if (jMap)
|
||||||
return ((JMapC *)jMap)->getPixelColor(i);
|
return ((JMapC *)jMap)->getPixelColor(i);
|
||||||
break;
|
break;
|
||||||
case M12_sCircle: //WLEDSR
|
case M12_sCircle: //WLEDMM
|
||||||
if (vStrip > 0)
|
if (vStrip > 0)
|
||||||
{
|
{
|
||||||
int x = roundf(sin_t(360*i/SEGLEN*DEG_TO_RAD) * vW * (vStrip+1)/nrOfVStrips());
|
int x = roundf(sin_t(360*i/SEGLEN*DEG_TO_RAD) * vW * (vStrip+1)/nrOfVStrips());
|
||||||
@@ -876,7 +876,7 @@ uint32_t Segment::getPixelColor(int i)
|
|||||||
else
|
else
|
||||||
return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i);
|
return vW>vH ? getPixelColorXY(i, 0) : getPixelColorXY(0, i);
|
||||||
break;
|
break;
|
||||||
case M12_sBlock: //WLEDSR
|
case M12_sBlock: //WLEDMM
|
||||||
if (vStrip > 0)
|
if (vStrip > 0)
|
||||||
{
|
{
|
||||||
uint16_t x=0,y=0;
|
uint16_t x=0,y=0;
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
#define USERMOD_ID_ANALOG_CLOCK 33 //Usermod "Analog_Clock.h"
|
#define USERMOD_ID_ANALOG_CLOCK 33 //Usermod "Analog_Clock.h"
|
||||||
#define USERMOD_ID_PING_PONG_CLOCK 34 //Usermod "usermod_v2_ping_pong_clock.h"
|
#define USERMOD_ID_PING_PONG_CLOCK 34 //Usermod "usermod_v2_ping_pong_clock.h"
|
||||||
#define USERMOD_ID_ADS1115 35 //Usermod "usermod_ads1115.h"
|
#define USERMOD_ID_ADS1115 35 //Usermod "usermod_ads1115.h"
|
||||||
//WLEDSR
|
//WLEDMM
|
||||||
#define USERMOD_ID_CUSTOMEFFECTS 36 //Usermod "usermod_v2_customeffects.h"
|
#define USERMOD_ID_CUSTOMEFFECTS 36 //Usermod "usermod_v2_customeffects.h"
|
||||||
#define USERMOD_ID_WEATHER 37 //Usermod "usermod_v2_weather.h"
|
#define USERMOD_ID_WEATHER 37 //Usermod "usermod_v2_weather.h"
|
||||||
#define USERMOD_ID_GAMES 38 //Usermod "usermod_v2_games.h"
|
#define USERMOD_ID_GAMES 38 //Usermod "usermod_v2_games.h"
|
||||||
@@ -431,7 +431,7 @@
|
|||||||
#define HW_PIN_CSSPI SS
|
#define HW_PIN_CSSPI SS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// WLEDSR: IRAM_ATTR for 8266 causes error: section `.text1' will not fit in region `iram1_0_seg'
|
// WLEDMM: IRAM_ATTR for 8266 causes error: section `.text1' will not fit in region `iram1_0_seg'
|
||||||
// error only in MM, not in upstream... tbd: find out why
|
// error only in MM, not in upstream... tbd: find out why
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
#define IRAM_ATTR_YN IRAM_ATTR
|
#define IRAM_ATTR_YN IRAM_ATTR
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
setTimeout(()=>{h.appendChild(l)},100);
|
setTimeout(()=>{h.appendChild(l)},100);
|
||||||
</script>
|
</script>
|
||||||
<link rel="stylesheet" href="index.css">
|
<link rel="stylesheet" href="index.css">
|
||||||
<link rel="stylesheet" href="../../usermods/customeffects/customeffects.css"> <!--WLEDSR Custom Effects -->
|
<link rel="stylesheet" href="../../usermods/customeffects/customeffects.css"> <!--WLEDMM Custom Effects -->
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -366,7 +366,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- WLEDSR Custom Effects -->
|
<!-- WLEDMM Custom Effects -->
|
||||||
<div id="ceEditor" class="modal">
|
<div id="ceEditor" class="modal">
|
||||||
<div id="kceEditor">Loading...</div><br>
|
<div id="kceEditor">Loading...</div><br>
|
||||||
</div>
|
</div>
|
||||||
@@ -386,6 +386,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<i id="roverstar" class="icons huge" onclick="setLor(0)"></i><br>
|
<i id="roverstar" class="icons huge" onclick="setLor(0)"></i><br>
|
||||||
<script src="index.js"></script>
|
<script src="index.js"></script>
|
||||||
<script src="../../usermods/customeffects/customeffects.js"></script> <!--WLEDSR Custom Effects-->
|
<script src="../../usermods/customeffects/customeffects.js"></script> <!--WLEDMM Custom Effects-->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -642,7 +642,7 @@ function populateInfo(i)
|
|||||||
var cn="";
|
var cn="";
|
||||||
var heap = i.freeheap/1000;
|
var heap = i.freeheap/1000;
|
||||||
heap = heap.toFixed(1);
|
heap = heap.toFixed(1);
|
||||||
var theap = (i.totalheap>0)?i.totalheap/1000:-1; theap = theap.toFixed(1); //WLEDSR - total heap is not available on 8266
|
var theap = (i.totalheap>0)?i.totalheap/1000:-1; theap = theap.toFixed(1); //WLEDMM - total heap is not available on 8266
|
||||||
var pwr = i.leds.pwr;
|
var pwr = i.leds.pwr;
|
||||||
var pwru = "Not calculated";
|
var pwru = "Not calculated";
|
||||||
if (pwr > 1000) {pwr /= 1000; pwr = pwr.toFixed((pwr > 10) ? 0 : 1); pwru = pwr + " A";}
|
if (pwr > 1000) {pwr /= 1000; pwr = pwr.toFixed((pwr > 10) ? 0 : 1); pwru = pwr + " A";}
|
||||||
@@ -661,10 +661,10 @@ function populateInfo(i)
|
|||||||
if (i.ver.includes("-bl")) vcn = "Supāku";
|
if (i.ver.includes("-bl")) vcn = "Supāku";
|
||||||
if (i.cn) vcn = i.cn;
|
if (i.cn) vcn = i.cn;
|
||||||
|
|
||||||
//WLEDSR: add total heap and total PSRAM, and build number
|
//WLEDMM: add total heap and total PSRAM, and build number, add bin name
|
||||||
if (i.ver.includes(".14.1-")) vcn = "Sitting Ducks"; // easter egg
|
if (i.ver.includes(".14.1-")) vcn = "Sitting Ducks"; // easter egg
|
||||||
if ((i.ver.includes("14.0."))&&(i.ver.includes("_MM"))) vcn = "Lupo";
|
if ((i.ver.includes("14.0."))&&(i.ver.includes("_MM"))) vcn = "Lupo";
|
||||||
cn += `v${i.ver} <i>"${vcn}"</i><p><em>build ${i.vid}</em></p><table>
|
cn += `v${i.ver} <i>"${vcn}"</i><p>(WLEDMM_${i.ver}_${i.rel}.bin)</p><p><em>build ${i.vid}</em></p><table>
|
||||||
${urows}
|
${urows}
|
||||||
${urows===""?'':'<tr><td colspan=2><hr style="height:1px;border-width:0;color:gray;background-color:gray"></td></tr>'}
|
${urows===""?'':'<tr><td colspan=2><hr style="height:1px;border-width:0;color:gray;background-color:gray"></td></tr>'}
|
||||||
${inforow("Build",i.vid)}
|
${inforow("Build",i.vid)}
|
||||||
@@ -672,7 +672,7 @@ ${inforow("Signal strength",i.wifi.signal +"% ("+ i.wifi.rssi, " dBm)")}
|
|||||||
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
||||||
${inforow("Estimated current",pwru)}
|
${inforow("Estimated current",pwru)}
|
||||||
${inforow("Average FPS",i.leds.fps)}
|
${inforow("Average FPS",i.leds.fps)}
|
||||||
<!-- WLEDSR begin-->
|
<!-- WLEDMM begin-->
|
||||||
<tr><td colspan=2><hr style="height:1px;border-width:0;color:SeaGreen;background-color:SeaGreen"></td></tr>
|
<tr><td colspan=2><hr style="height:1px;border-width:0;color:SeaGreen;background-color:SeaGreen"></td></tr>
|
||||||
${inforow("MAC address",i.mac)}
|
${inforow("MAC address",i.mac)}
|
||||||
${inforow("Filesystem",i.fs.u + "/" + i.fs.t + " kB (" +Math.round(i.fs.u*100/i.fs.t) + "%)")}
|
${inforow("Filesystem",i.fs.u + "/" + i.fs.t + " kB (" +Math.round(i.fs.u*100/i.fs.t) + "%)")}
|
||||||
@@ -688,7 +688,7 @@ ${i.e32model?inforow(i.e32model,i.e32cores +" core(s)"," "+i.e32speed+" Mhz"):""
|
|||||||
${i.e32flash?inforow("Flash "+i.e32flash+" MB"+", mode "+i.e32flashmode+i.e32flashtext,i.e32flashspeed," Mhz"):""}
|
${i.e32flash?inforow("Flash "+i.e32flash+" MB"+", mode "+i.e32flashmode+i.e32flashtext,i.e32flashspeed," Mhz"):""}
|
||||||
${i.e32core0code?inforow("Core0 rst reason",i.e32core0code, " "+i.e32core0text):""}
|
${i.e32core0code?inforow("Core0 rst reason",i.e32core0code, " "+i.e32core0text):""}
|
||||||
${i.e32core1code?inforow("Core1 rst reason",i.e32core1code, " "+i.e32core1text):""}
|
${i.e32core1code?inforow("Core1 rst reason",i.e32core1code, " "+i.e32core1text):""}
|
||||||
<!-- WLEDSR end-->
|
<!-- WLEDMM end-->
|
||||||
</table>`;
|
</table>`;
|
||||||
gId('kv').innerHTML = cn;
|
gId('kv').innerHTML = cn;
|
||||||
// update all sliders in Info
|
// update all sliders in Info
|
||||||
@@ -732,7 +732,7 @@ function populateSegments(s)
|
|||||||
rvYck = `<label class="check revchkl">Reverse<input type="checkbox" id="seg${i}rY" onchange="setRevY(${i})" ${inst.rY?"checked":""}><span class="checkmark"></span></label>`;
|
rvYck = `<label class="check revchkl">Reverse<input type="checkbox" id="seg${i}rY" onchange="setRevY(${i})" ${inst.rY?"checked":""}><span class="checkmark"></span></label>`;
|
||||||
miYck = `<label class="check revchkl">Mirror<input type="checkbox" id="seg${i}mY" onchange="setMiY(${i})" ${inst.mY?"checked":""}><span class="checkmark"></span></label>`;
|
miYck = `<label class="check revchkl">Mirror<input type="checkbox" id="seg${i}mY" onchange="setMiY(${i})" ${inst.mY?"checked":""}><span class="checkmark"></span></label>`;
|
||||||
}
|
}
|
||||||
// WLEDSR: jMap
|
// WLEDMM: jMap
|
||||||
let map2D = `<div id="seg${i}map2D" data-map="map2D" class="lbl-s hide">Expand 1D FX<br>
|
let map2D = `<div id="seg${i}map2D" data-map="map2D" class="lbl-s hide">Expand 1D FX<br>
|
||||||
<div class="sel-p"><select class="sel-p" id="seg${i}mp12" onchange="setMp12(${i})">
|
<div class="sel-p"><select class="sel-p" id="seg${i}mp12" onchange="setMp12(${i})">
|
||||||
<option value="0" ${inst.mp12==0?' selected':''}>Pixels</option>
|
<option value="0" ${inst.mp12==0?' selected':''}>Pixels</option>
|
||||||
@@ -752,7 +752,7 @@ function populateSegments(s)
|
|||||||
<option value="3" ${inst.ssim==3?' selected':''}>U14_3</option>
|
<option value="3" ${inst.ssim==3?' selected':''}>U14_3</option>
|
||||||
</select></div>
|
</select></div>
|
||||||
</div>`;
|
</div>`;
|
||||||
//WLEDSR Custom Effects
|
//WLEDMM Custom Effects
|
||||||
let fxName = eJson.find((o)=>{return o.id==selectedFx}).name;
|
let fxName = eJson.find((o)=>{return o.id==selectedFx}).name;
|
||||||
let cusEff = `<button class="btn" onclick="toggleCEEditor('${inst.n?inst.n:"default"}', ${i})">Custom Effect Editor</button><br>`;
|
let cusEff = `<button class="btn" onclick="toggleCEEditor('${inst.n?inst.n:"default"}', ${i})">Custom Effect Editor</button><br>`;
|
||||||
cn += `<div class="seg lstI ${i==s.mainseg ? 'selected' : ''} ${exp ? "expanded":""}" id="seg${i}">
|
cn += `<div class="seg lstI ${i==s.mainseg ? 'selected' : ''} ${exp ? "expanded":""}" id="seg${i}">
|
||||||
@@ -854,7 +854,7 @@ function populateEffects()
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (let ef of effects) {
|
for (let ef of effects) {
|
||||||
// WLEDSR: add slider and color control to setFX (used by requestjson)
|
// WLEDMM: add slider and color control to setFX (used by requestjson)
|
||||||
let id = ef.id;
|
let id = ef.id;
|
||||||
let nm = ef.name+" ";
|
let nm = ef.name+" ";
|
||||||
let fd = "";
|
let fd = "";
|
||||||
@@ -1366,7 +1366,7 @@ function readState(s,command=false)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// WLEDSR: control HTML elements for Slider and Color Control
|
// WLEDMM: control HTML elements for Slider and Color Control
|
||||||
// Technical notes
|
// Technical notes
|
||||||
// ===============
|
// ===============
|
||||||
// If an effect name is followed by an @, slider and color control is effective.
|
// If an effect name is followed by an @, slider and color control is effective.
|
||||||
@@ -1623,7 +1623,7 @@ function toggleSync()
|
|||||||
|
|
||||||
function toggleLiveview()
|
function toggleLiveview()
|
||||||
{
|
{
|
||||||
//WLEDSR adding liveview2D support
|
//WLEDMM adding liveview2D support
|
||||||
if (isInfo && isM) toggleInfo();
|
if (isInfo && isM) toggleInfo();
|
||||||
if (isNodes && isM) toggleNodes();
|
if (isNodes && isM) toggleNodes();
|
||||||
isLv = !isLv;
|
isLv = !isLv;
|
||||||
|
|||||||
@@ -46,10 +46,10 @@
|
|||||||
if (leds[0] != 76 || leds[1] != 2 || !ctx) return; //'L', set in ws.cpp
|
if (leds[0] != 76 || leds[1] != 2 || !ctx) return; //'L', set in ws.cpp
|
||||||
let mW = leds[2]; // matrix width
|
let mW = leds[2]; // matrix width
|
||||||
let mH = leds[3]; // matrix height
|
let mH = leds[3]; // matrix height
|
||||||
let pPL = Math.min(c.width / mW, (c.height-10) / mH); // pixels per LED (width of circle) WLEDSR -10 for prompts
|
let pPL = Math.min(c.width / mW, (c.height-10) / mH); // pixels per LED (width of circle) WLEDMM -10 for prompts
|
||||||
let lOf = Math.floor((c.width - pPL*mW)/2); //left offeset (to center matrix)
|
let lOf = Math.floor((c.width - pPL*mW)/2); //left offeset (to center matrix)
|
||||||
var i = 6;
|
var i = 6;
|
||||||
ctx.clearRect(0, 0, c.width, c.height); //WLEDSR
|
ctx.clearRect(0, 0, c.width, c.height); //WLEDMM
|
||||||
for (y=0.5;y<mH;y++) for (x=0.5; x<mW; x++) {
|
for (y=0.5;y<mH;y++) for (x=0.5; x<mW; x++) {
|
||||||
ctx.fillStyle = `rgb(${leds[i]},${leds[i+1]},${leds[i+2]})`;
|
ctx.fillStyle = `rgb(${leds[i]},${leds[i+1]},${leds[i+2]})`;
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
ctx.fill();
|
ctx.fill();
|
||||||
i+=3;
|
i+=3;
|
||||||
}
|
}
|
||||||
//WLEDSR show preset and playlist id
|
//WLEDMM show preset and playlist id
|
||||||
ctx.fillStyle = `rgb(255,255,255)`;
|
ctx.fillStyle = `rgb(255,255,255)`;
|
||||||
if (leds[4] != 0) ctx.fillText("preset " + leds[4].toString(), lOf, mH*pPL+10);
|
if (leds[4] != 0) ctx.fillText("preset " + leds[4].toString(), lOf, mH*pPL+10);
|
||||||
if (leds[5] != 255) ctx.fillText("playlist " + leds[5].toString(), lOf + 70, mH*pPL+10);
|
if (leds[5] != 255) ctx.fillText("playlist " + leds[5].toString(), lOf + 70, mH*pPL+10);
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
localStorage.setItem('locIp', locip);
|
localStorage.setItem('locIp', locip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//WLEDSR: add ldS and move loadJS there (like in settings_um)
|
//WLEDMM: add ldS and move loadJS there (like in settings_um)
|
||||||
ldS();
|
ldS();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ldS();
|
ldS();
|
||||||
if (!numM) gId("um").innerHTML = ""; //WLEDSR: Do not display no usermods installed
|
if (!numM) gId("um").innerHTML = ""; //WLEDMM: Do not display no usermods installed
|
||||||
}
|
}
|
||||||
// https://stackoverflow.com/questions/3885817/how-do-i-check-that-a-number-is-float-or-integer
|
// https://stackoverflow.com/questions/3885817/how-do-i-check-that-a-number-is-float-or-integer
|
||||||
function isF(n) { return n === +n && n !== (n|0); }
|
function isF(n) { return n === +n && n !== (n|0); }
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
getPins(json);
|
getPins(json);
|
||||||
urows="";
|
urows="";
|
||||||
if (isO(umCfg)) {
|
if (isO(umCfg)) {
|
||||||
//WLEDSR: read url parameter. e.g. um=AudioReactive and if set only add the usermod with the same name
|
//WLEDMM: read url parameter. e.g. um=AudioReactive and if set only add the usermod with the same name
|
||||||
const queryString = window.location.search;
|
const queryString = window.location.search;
|
||||||
const urlParams = new URLSearchParams(queryString);
|
const urlParams = new URLSearchParams(queryString);
|
||||||
const userMod = urlParams.get('um')
|
const userMod = urlParams.get('um')
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
}
|
}
|
||||||
if (userMod != null && urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults.";
|
if (userMod != null && urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults.";
|
||||||
}
|
}
|
||||||
//WLEDSR: only show globalGPIOs if no usermod info is shown (url without um parameter)
|
//WLEDMM: only show globalGPIOs if no usermod info is shown (url without um parameter)
|
||||||
gId("globalGPIOs").style.display = urows===""?"block":"none";
|
gId("globalGPIOs").style.display = urows===""?"block":"none";
|
||||||
|
|
||||||
gId("um").innerHTML = urows;
|
gId("um").innerHTML = urows;
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
<span id="lssuc" style="color:green; display:none">✔ Configuration saved!</span>
|
<span id="lssuc" style="color:green; display:none">✔ Configuration saved!</span>
|
||||||
<span id="lserr" style="color:red; display:none">⚠ Could not load configuration.</span>
|
<span id="lserr" style="color:red; display:none">⚠ Could not load configuration.</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="globalGPIOs" style="display:none;"> <!--WLEDSR: show in ldS-->
|
<div id="globalGPIOs" style="display:none;"> <!--WLEDMM: show in ldS-->
|
||||||
<hr>
|
<hr>
|
||||||
<h2>Usermod Setup</h2>
|
<h2>Usermod Setup</h2>
|
||||||
Global I<sup>2</sup>C GPIOs (HW)<br>
|
Global I<sup>2</sup>C GPIOs (HW)<br>
|
||||||
|
|||||||
@@ -491,7 +491,7 @@ function populateInfo(i)
|
|||||||
var cn="";
|
var cn="";
|
||||||
var heap = i.freeheap/1000;
|
var heap = i.freeheap/1000;
|
||||||
heap = heap.toFixed(1);
|
heap = heap.toFixed(1);
|
||||||
var theap = (i.totalheap>0)?i.totalheap/1000:-1; theap = theap.toFixed(1); //WLEDSR - total heap is not available on 8266
|
var theap = (i.totalheap>0)?i.totalheap/1000:-1; theap = theap.toFixed(1); //WLEDMM - total heap is not available on 8266
|
||||||
var pwr = i.leds.pwr;
|
var pwr = i.leds.pwr;
|
||||||
var pwru = "Not calculated";
|
var pwru = "Not calculated";
|
||||||
if (pwr > 1000) {pwr /= 1000; pwr = pwr.toFixed((pwr > 10) ? 0 : 1); pwru = pwr + " A";}
|
if (pwr > 1000) {pwr /= 1000; pwr = pwr.toFixed((pwr > 10) ? 0 : 1); pwru = pwr + " A";}
|
||||||
@@ -510,7 +510,7 @@ function populateInfo(i)
|
|||||||
if (i.ver.includes("-bl")) vcn = "Supāku";
|
if (i.ver.includes("-bl")) vcn = "Supāku";
|
||||||
if (i.cn) vcn = i.cn;
|
if (i.cn) vcn = i.cn;
|
||||||
|
|
||||||
//WLEDSR: add total heap and total PSRAM, and build number
|
//WLEDMM: add total heap and total PSRAM, and build number
|
||||||
if (i.ver.includes("14.1-")) vcn = "Sitting Ducks"; // easter egg
|
if (i.ver.includes("14.1-")) vcn = "Sitting Ducks"; // easter egg
|
||||||
if (i.ver.includes("14.0-mdev")) vcn = "Lupo";
|
if (i.ver.includes("14.0-mdev")) vcn = "Lupo";
|
||||||
cn += `v${i.ver} <i>"${vcn}"</i><p><em>build ${i.vid}</em></p><table>
|
cn += `v${i.ver} <i>"${vcn}"</i><p><em>build ${i.vid}</em></p><table>
|
||||||
@@ -520,7 +520,7 @@ ${inforow("Signal strength",i.wifi.signal +"% ("+ i.wifi.rssi, " dBm)")}
|
|||||||
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
${inforow("Uptime",getRuntimeStr(i.uptime))}
|
||||||
${inforow("Estimated current",pwru)}
|
${inforow("Estimated current",pwru)}
|
||||||
${inforow("Average FPS",i.leds.fps)}
|
${inforow("Average FPS",i.leds.fps)}
|
||||||
<!-- WLEDSR begin-->
|
<!-- WLEDMM begin-->
|
||||||
<tr><td colspan=2><hr style="height:1px;border-width:0;color:SeaGreen;background-color:SeaGreen"></td></tr>
|
<tr><td colspan=2><hr style="height:1px;border-width:0;color:SeaGreen;background-color:SeaGreen"></td></tr>
|
||||||
${inforow("MAC address",i.mac)}
|
${inforow("MAC address",i.mac)}
|
||||||
${inforow("Filesystem",i.fs.u + "/" + i.fs.t + " kB (" +Math.round(i.fs.u*100/i.fs.t) + "%)")}
|
${inforow("Filesystem",i.fs.u + "/" + i.fs.t + " kB (" +Math.round(i.fs.u*100/i.fs.t) + "%)")}
|
||||||
@@ -531,7 +531,7 @@ ${i.tpram?inforow("Total PSRAM",(i.tpram/1024).toFixed(1)," kB"):""}
|
|||||||
${i.psusedram?((i.tpram-i.psusedram)>16383?inforow("Max Used PSRAM",((i.tpram-i.psusedram)/1024).toFixed(1)," kB"):inforow("Max Used PSRAM",(i.tpram-i.psusedram)," B")):""}
|
${i.psusedram?((i.tpram-i.psusedram)>16383?inforow("Max Used PSRAM",((i.tpram-i.psusedram)/1024).toFixed(1)," kB"):inforow("Max Used PSRAM",(i.tpram-i.psusedram)," B")):""}
|
||||||
${i.e32model?inforow(i.e32model,i.e32cores +" core(s)"," "+i.e32speed+" Mhz"):""}
|
${i.e32model?inforow(i.e32model,i.e32cores +" core(s)"," "+i.e32speed+" Mhz"):""}
|
||||||
${i.e32flash?inforow("Flash "+i.e32flash+" MB"+", mode "+i.e32flashmode+i.e32flashtext,i.e32flashspeed," Mhz"):""}
|
${i.e32flash?inforow("Flash "+i.e32flash+" MB"+", mode "+i.e32flashmode+i.e32flashtext,i.e32flashspeed," Mhz"):""}
|
||||||
<!-- WLEDSR end-->
|
<!-- WLEDMM end-->
|
||||||
</table>`;
|
</table>`;
|
||||||
gId('kv').innerHTML = cn;
|
gId('kv').innerHTML = cn;
|
||||||
}
|
}
|
||||||
@@ -654,7 +654,7 @@ function populateEffects()
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (let i = 0; i < effects.length; i++) {
|
for (let i = 0; i < effects.length; i++) {
|
||||||
// WLEDSR: add slider and color control to setEffect (used by requestjson)
|
// WLEDMM: add slider and color control to setEffect (used by requestjson)
|
||||||
if (effects[i].name.indexOf("RSVD") < 0) {
|
if (effects[i].name.indexOf("RSVD") < 0) {
|
||||||
var posAt = effects[i].name.indexOf("@");
|
var posAt = effects[i].name.indexOf("@");
|
||||||
var extra = '';
|
var extra = '';
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<body onload="GetV()">
|
<body onload="GetV()">
|
||||||
<h2>MoonMod WLED Software Update</h2>
|
<h2>MoonMod WLED Software Update</h2>
|
||||||
<form method='POST' action='/update' id='uf' enctype='multipart/form-data' onsubmit="U()">
|
<form method='POST' action='/update' id='uf' enctype='multipart/form-data' onsubmit="U()">
|
||||||
Installed bin: <span class="sip">##VERSION##</span><br> <!--WLEDSR: show bin name-->
|
Installed bin: <span class="sip">##VERSION##</span><br> <!--WLEDMM: show bin name-->
|
||||||
Download the latest binary: <a href="https://github.com/MoonModules/WLED/releases" target="_blank">
|
Download the latest binary: <a href="https://github.com/MoonModules/WLED/releases" target="_blank">
|
||||||
<img src="https://img.shields.io/github/release/MoonModules/WLED.svg?style=flat-square"></a><br>
|
<img src="https://img.shields.io/github/release/MoonModules/WLED.svg?style=flat-square"></a><br>
|
||||||
<input type='file' name='update' required><br> <!--should have accept='.bin', but it prevents file upload from android app-->
|
<input type='file' name='update' required><br> <!--should have accept='.bin', but it prevents file upload from android app-->
|
||||||
|
|||||||
1576
wled00/html_other.h
1576
wled00/html_other.h
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
|||||||
// Autogenerated from wled00/data/style.css, do not edit!!
|
// Autogenerated from wled00/data/style.css, do not edit!!
|
||||||
const uint16_t PAGE_settingsCss_length = 824;
|
const uint16_t PAGE_settingsCss_length = 824;
|
||||||
const uint8_t PAGE_settingsCss[] PROGMEM = {
|
const uint8_t PAGE_settingsCss[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x55, 0x5d, 0x8b, 0x9c, 0x30,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x55, 0x5d, 0x8b, 0x9c, 0x30,
|
||||||
0x14, 0xfd, 0x2b, 0x96, 0x61, 0x61, 0x0b, 0xa3, 0xa8, 0xa3, 0xb3, 0xd3, 0x48, 0xa1, 0xf4, 0xbd,
|
0x14, 0xfd, 0x2b, 0x96, 0x61, 0x61, 0x0b, 0xa3, 0xa8, 0xa3, 0xb3, 0xd3, 0x48, 0xa1, 0xf4, 0xbd,
|
||||||
0x6f, 0xa5, 0x14, 0xca, 0x3e, 0x44, 0x73, 0x1d, 0xc3, 0xe4, 0x43, 0x92, 0xd8, 0x75, 0x2a, 0xfe,
|
0x6f, 0xa5, 0x14, 0xca, 0x3e, 0x44, 0x73, 0x1d, 0xc3, 0xe4, 0x43, 0x92, 0xd8, 0x75, 0x2a, 0xfe,
|
||||||
0xf7, 0x26, 0x7e, 0xac, 0xce, 0xac, 0x6c, 0x5f, 0xca, 0xe0, 0xa0, 0xde, 0x98, 0x7b, 0xee, 0xb9,
|
0xf7, 0x26, 0x7e, 0xac, 0xce, 0xac, 0x6c, 0x5f, 0xca, 0xe0, 0xa0, 0xde, 0x98, 0x7b, 0xee, 0xb9,
|
||||||
@@ -66,7 +66,7 @@ const uint8_t PAGE_settingsCss[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings.htm, do not edit!!
|
// Autogenerated from wled00/data/settings.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_length = 1231;
|
const uint16_t PAGE_settings_length = 1231;
|
||||||
const uint8_t PAGE_settings[] PROGMEM = {
|
const uint8_t PAGE_settings[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x56, 0xef, 0x6f, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x56, 0xef, 0x6f, 0xdb, 0x36,
|
||||||
0x10, 0xfd, 0xee, 0xbf, 0x82, 0x61, 0xb7, 0x44, 0x42, 0x65, 0xd9, 0x49, 0x87, 0x61, 0x93, 0x2d,
|
0x10, 0xfd, 0xee, 0xbf, 0x82, 0x61, 0xb7, 0x44, 0x42, 0x65, 0xd9, 0x49, 0x87, 0x61, 0x93, 0x2d,
|
||||||
0x17, 0x6d, 0x92, 0xae, 0x19, 0x12, 0x24, 0x40, 0x92, 0x76, 0xc3, 0x36, 0xa0, 0xb4, 0x78, 0xb2,
|
0x17, 0x6d, 0x92, 0xae, 0x19, 0x12, 0x24, 0x40, 0x92, 0x76, 0xc3, 0x36, 0xa0, 0xb4, 0x78, 0xb2,
|
||||||
0xd9, 0x48, 0xa4, 0x40, 0x9e, 0x9c, 0x78, 0xae, 0xff, 0xf7, 0x1d, 0x69, 0x27, 0x71, 0xda, 0xa0,
|
0xd9, 0x48, 0xa4, 0x40, 0x9e, 0x9c, 0x78, 0xae, 0xff, 0xf7, 0x1d, 0x69, 0x27, 0x71, 0xda, 0xa0,
|
||||||
@@ -149,7 +149,7 @@ const uint8_t PAGE_settings[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_wifi_length = 1563;
|
const uint16_t PAGE_settings_wifi_length = 1563;
|
||||||
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xb5, 0x57, 0xe1, 0x6e, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x57, 0xe1, 0x6e, 0xdb, 0x36,
|
||||||
0x10, 0xfe, 0xef, 0xa7, 0x60, 0x38, 0xa0, 0xb0, 0x50, 0x59, 0x8e, 0xed, 0xa5, 0x2b, 0x52, 0xc9,
|
0x10, 0xfe, 0xef, 0xa7, 0x60, 0x38, 0xa0, 0xb0, 0x50, 0x59, 0x8e, 0xed, 0xa5, 0x2b, 0x52, 0xc9,
|
||||||
0x5d, 0x62, 0xbb, 0x4d, 0xb6, 0x34, 0xf5, 0xa0, 0xa0, 0xc1, 0x80, 0x01, 0x05, 0x2d, 0x9d, 0x6d,
|
0x5d, 0x62, 0xbb, 0x4d, 0xb6, 0x34, 0xf5, 0xa0, 0xa0, 0xc1, 0x80, 0x01, 0x05, 0x2d, 0x9d, 0x6d,
|
||||||
0x2e, 0x14, 0xa9, 0x89, 0x94, 0x9d, 0x20, 0xcd, 0xbb, 0xef, 0x48, 0xc9, 0x8e, 0x9d, 0xc4, 0x6d,
|
0x2e, 0x14, 0xa9, 0x89, 0x94, 0x9d, 0x20, 0xcd, 0xbb, 0xef, 0x48, 0xc9, 0x8e, 0x9d, 0xc4, 0x6d,
|
||||||
@@ -253,7 +253,7 @@ const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_leds.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_leds_length = 7492;
|
const uint16_t PAGE_settings_leds_length = 7492;
|
||||||
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
const uint8_t PAGE_settings_leds[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xdd, 0x3c, 0xdb, 0x76, 0xe3, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xdd, 0x3c, 0xdb, 0x76, 0xe3, 0x36,
|
||||||
0x92, 0xef, 0xfa, 0x0a, 0x18, 0x49, 0x1c, 0x72, 0x44, 0x4b, 0xa4, 0x2e, 0x8e, 0x5b, 0x12, 0xe5,
|
0x92, 0xef, 0xfa, 0x0a, 0x18, 0x49, 0x1c, 0x72, 0x44, 0x4b, 0xa4, 0x2e, 0x8e, 0x5b, 0x12, 0xe5,
|
||||||
0xb5, 0xdc, 0x97, 0x78, 0xc6, 0x8e, 0x7d, 0x2c, 0x27, 0x3d, 0x73, 0x3a, 0x7d, 0xba, 0x29, 0x12,
|
0xb5, 0xdc, 0x97, 0x78, 0xc6, 0x8e, 0x7d, 0x2c, 0x27, 0x3d, 0x73, 0x3a, 0x7d, 0xba, 0x29, 0x12,
|
||||||
0x92, 0xd8, 0xa6, 0x48, 0x85, 0xa4, 0x6c, 0x6b, 0x6d, 0xef, 0x37, 0xed, 0x37, 0xec, 0x97, 0x6d,
|
0x92, 0xd8, 0xa6, 0x48, 0x85, 0xa4, 0x6c, 0x6b, 0x6d, 0xef, 0x37, 0xed, 0x37, 0xec, 0x97, 0x6d,
|
||||||
@@ -728,7 +728,7 @@ const uint8_t PAGE_settings_leds[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_dmx.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_dmx_length = 1612;
|
const uint16_t PAGE_settings_dmx_length = 1612;
|
||||||
const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x95, 0x57, 0xdb, 0x72, 0xdb, 0x36,
|
||||||
0x10, 0x7d, 0xd7, 0x57, 0x20, 0x78, 0x88, 0xc9, 0x31, 0x43, 0x4a, 0x4e, 0x95, 0x36, 0x32, 0x49,
|
0x10, 0x7d, 0xd7, 0x57, 0x20, 0x78, 0x88, 0xc9, 0x31, 0x43, 0x4a, 0x4e, 0x95, 0x36, 0x32, 0x49,
|
||||||
0x37, 0x56, 0x5c, 0xdb, 0x1d, 0xdb, 0xf5, 0x44, 0x49, 0xd3, 0x4e, 0xd3, 0xe9, 0x40, 0xe4, 0x4a,
|
0x37, 0x56, 0x5c, 0xdb, 0x1d, 0xdb, 0xf5, 0x44, 0x49, 0xd3, 0x4e, 0xd3, 0xe9, 0x40, 0xe4, 0x4a,
|
||||||
0x44, 0x4c, 0x02, 0x2c, 0x00, 0x4a, 0x76, 0x2e, 0xff, 0xde, 0x05, 0x48, 0x5d, 0xec, 0xd8, 0x69,
|
0x44, 0x4c, 0x02, 0x2c, 0x00, 0x4a, 0x76, 0x2e, 0xff, 0xde, 0x05, 0x48, 0x5d, 0xec, 0xd8, 0x69,
|
||||||
@@ -835,7 +835,7 @@ const uint8_t PAGE_settings_dmx[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_ui.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_ui.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_ui_length = 3090;
|
const uint16_t PAGE_settings_ui_length = 3090;
|
||||||
const uint8_t PAGE_settings_ui[] PROGMEM = {
|
const uint8_t PAGE_settings_ui[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x59, 0x6b, 0x73, 0xda, 0x48,
|
||||||
0x16, 0xfd, 0xce, 0xaf, 0xe8, 0x74, 0x52, 0x1e, 0x54, 0x56, 0x04, 0x4e, 0x66, 0x6b, 0x13, 0x40,
|
0x16, 0xfd, 0xce, 0xaf, 0xe8, 0x74, 0x52, 0x1e, 0x54, 0x56, 0x04, 0x4e, 0x66, 0x6b, 0x13, 0x40,
|
||||||
0x78, 0x63, 0xc7, 0x93, 0x78, 0xca, 0xd9, 0x64, 0x83, 0xbd, 0x99, 0xad, 0xac, 0xcb, 0x23, 0xa4,
|
0x78, 0x63, 0xc7, 0x93, 0x78, 0xca, 0xd9, 0x64, 0x83, 0xbd, 0x99, 0xad, 0xac, 0xcb, 0x23, 0xa4,
|
||||||
0x06, 0x3a, 0x16, 0x92, 0x46, 0xdd, 0x32, 0x66, 0x09, 0xff, 0x7d, 0xcf, 0xed, 0x96, 0x40, 0x60,
|
0x06, 0x3a, 0x16, 0x92, 0x46, 0xdd, 0x32, 0x66, 0x09, 0xff, 0x7d, 0xcf, 0xed, 0x96, 0x40, 0x60,
|
||||||
@@ -1035,7 +1035,7 @@ const uint8_t PAGE_settings_ui[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_sync_length = 3449;
|
const uint16_t PAGE_settings_sync_length = 3449;
|
||||||
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x5a, 0x59, 0x73, 0xdb, 0x38,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x5a, 0x59, 0x73, 0xdb, 0x38,
|
||||||
0x12, 0x7e, 0xe7, 0xaf, 0x40, 0xb8, 0x55, 0xb3, 0xd2, 0x58, 0xd6, 0x65, 0xcb, 0x71, 0x64, 0x91,
|
0x12, 0x7e, 0xe7, 0xaf, 0x40, 0xb8, 0x55, 0xb3, 0xd2, 0x58, 0xd6, 0x65, 0xcb, 0x71, 0x64, 0x91,
|
||||||
0x59, 0xc9, 0x72, 0x6c, 0xed, 0xf8, 0x50, 0x24, 0x7b, 0x26, 0x53, 0xb5, 0x55, 0x53, 0x10, 0x09,
|
0x59, 0xc9, 0x72, 0x6c, 0xed, 0xf8, 0x50, 0x24, 0x7b, 0x26, 0x53, 0xb5, 0x55, 0x53, 0x10, 0x09,
|
||||||
0x49, 0xb0, 0x49, 0x82, 0x43, 0x82, 0x3e, 0x2a, 0x93, 0xff, 0xbe, 0xdd, 0xe0, 0x21, 0x91, 0x3a,
|
0x49, 0xb0, 0x49, 0x82, 0x43, 0x82, 0x3e, 0x2a, 0x93, 0xff, 0xbe, 0xdd, 0xe0, 0x21, 0x91, 0x3a,
|
||||||
@@ -1257,7 +1257,7 @@ const uint8_t PAGE_settings_sync[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_time.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_time.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_time_length = 3313;
|
const uint16_t PAGE_settings_time_length = 3313;
|
||||||
const uint8_t PAGE_settings_time[] PROGMEM = {
|
const uint8_t PAGE_settings_time[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x1a, 0x6b, 0x57, 0xdb, 0x38,
|
||||||
0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x98, 0x78, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0xdd, 0x10,
|
0xf6, 0x7b, 0x7e, 0x85, 0x50, 0x7b, 0x98, 0x78, 0x70, 0x9e, 0x90, 0x16, 0x92, 0xd8, 0xdd, 0x10,
|
||||||
0xd2, 0x42, 0x4b, 0x02, 0x67, 0x92, 0x0e, 0xbb, 0xd3, 0xf6, 0x4c, 0x15, 0x5b, 0x49, 0x0c, 0x8e,
|
0xd2, 0x42, 0x4b, 0x02, 0x67, 0x92, 0x0e, 0xbb, 0xd3, 0xf6, 0x4c, 0x15, 0x5b, 0x49, 0x0c, 0x8e,
|
||||||
0xe4, 0xb5, 0x65, 0x02, 0x4b, 0xf9, 0xef, 0x7b, 0x25, 0x39, 0xce, 0xd3, 0xd0, 0x76, 0x66, 0x3f,
|
0xe4, 0xb5, 0x65, 0x02, 0x4b, 0xf9, 0xef, 0x7b, 0x25, 0x39, 0xce, 0xd3, 0xd0, 0x76, 0x66, 0x3f,
|
||||||
@@ -1469,166 +1469,166 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_sec_length = 2409;
|
const uint16_t PAGE_settings_sec_length = 2406;
|
||||||
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xa5, 0x58, 0x6d, 0x73, 0xd3, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x73, 0xdb, 0xb8,
|
||||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x19, 0xaa, 0x58, 0xeb, 0x50, 0x24, 0x27, 0x70, 0x5b, 0x40, 0x22,
|
0x11, 0xfe, 0xae, 0x5f, 0x01, 0x23, 0x33, 0x39, 0xb1, 0xa1, 0x49, 0xd9, 0x49, 0x6f, 0xf2, 0x62,
|
||||||
0x73, 0x09, 0x09, 0x4b, 0xae, 0x12, 0x92, 0x8a, 0xcd, 0x72, 0x57, 0x1c, 0x45, 0x8d, 0xa5, 0xb1,
|
0x2a, 0xb5, 0x63, 0xe7, 0xe2, 0x8e, 0x1d, 0x7b, 0x22, 0xf9, 0xd2, 0x4e, 0x9a, 0xc9, 0x40, 0x24,
|
||||||
0x35, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x31, 0x3e, 0x76, 0xff, 0xfb, 0x3d, 0x3d, 0x92, 0x6c, 0x27,
|
0x24, 0x22, 0xa2, 0x08, 0x1e, 0x00, 0x5a, 0x51, 0x73, 0xf7, 0xdf, 0xfb, 0x2c, 0x48, 0x4a, 0xb2,
|
||||||
0x04, 0x28, 0xea, 0x3e, 0x24, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xdc,
|
0x63, 0x27, 0x93, 0xe9, 0x07, 0x5b, 0x22, 0x08, 0xec, 0xcb, 0xb3, 0xbb, 0xcf, 0x2e, 0x74, 0xb0,
|
||||||
0x39, 0xb9, 0x7c, 0x39, 0xfe, 0xf7, 0xd5, 0x29, 0xcb, 0xdd, 0xa2, 0x18, 0x1e, 0xd2, 0x7f, 0x56,
|
0x73, 0x7c, 0xf1, 0x6a, 0xfc, 0xef, 0xcb, 0x13, 0x96, 0xbb, 0x45, 0x31, 0x3c, 0xa0, 0xff, 0xac,
|
||||||
0x88, 0x72, 0x96, 0x70, 0x59, 0x72, 0x3c, 0x4b, 0x91, 0x0d, 0x0f, 0x17, 0xd2, 0x09, 0x56, 0x8a,
|
0x10, 0xe5, 0x2c, 0xe1, 0xb2, 0xe4, 0x78, 0x96, 0x22, 0x1b, 0x1e, 0x2c, 0xa4, 0x13, 0xac, 0x14,
|
||||||
0x85, 0x4c, 0xf8, 0x8d, 0x92, 0xcb, 0x4a, 0x1b, 0xc7, 0x59, 0xaa, 0x4b, 0x27, 0x4b, 0x97, 0xf0,
|
0x0b, 0x99, 0xf0, 0x6b, 0x25, 0x97, 0x95, 0x36, 0x8e, 0xb3, 0x54, 0x97, 0x4e, 0x96, 0x2e, 0xe1,
|
||||||
0xa5, 0xca, 0x5c, 0x9e, 0xfc, 0x7d, 0x30, 0xe0, 0xc3, 0x5e, 0xb3, 0xb5, 0x77, 0xe7, 0x5d, 0x26,
|
0x4b, 0x95, 0xb9, 0x3c, 0xf9, 0xfb, 0x60, 0xc0, 0x87, 0xbd, 0x66, 0x6b, 0xef, 0xd6, 0xbb, 0x4c,
|
||||||
0x6f, 0x54, 0x2a, 0x77, 0xfd, 0x43, 0xa8, 0x4a, 0xe5, 0x94, 0x28, 0x76, 0x6d, 0x2a, 0x0a, 0x99,
|
0x5e, 0xab, 0x54, 0xee, 0xfa, 0x87, 0x50, 0x95, 0xca, 0x29, 0x51, 0xec, 0xda, 0x54, 0x14, 0x32,
|
||||||
0xec, 0x85, 0x0b, 0xf1, 0x59, 0x2d, 0xea, 0xc5, 0xfa, 0xb9, 0xb6, 0xd2, 0xf8, 0x07, 0x31, 0xc1,
|
0xd9, 0x0b, 0x17, 0xe2, 0x8b, 0x5a, 0xd4, 0x8b, 0xf5, 0x73, 0x6d, 0xa5, 0xf1, 0x0f, 0x62, 0x82,
|
||||||
0x73, 0xa9, 0x39, 0xeb, 0xdd, 0x51, 0xdd, 0x1a, 0x94, 0xe6, 0xc2, 0x58, 0x09, 0x25, 0xb5, 0x9b,
|
0xe7, 0x52, 0x73, 0xd6, 0xbb, 0xa5, 0xba, 0x35, 0x28, 0xcd, 0x85, 0xb1, 0x12, 0x4a, 0x6a, 0x37,
|
||||||
0xee, 0x3e, 0xc5, 0xaa, 0x53, 0xae, 0x90, 0xc3, 0x0b, 0x65, 0x53, 0x36, 0x92, 0xce, 0xa9, 0x72,
|
0xdd, 0x7d, 0x8a, 0x55, 0xa7, 0x5c, 0x21, 0x87, 0xe7, 0xca, 0xa6, 0x6c, 0x24, 0x9d, 0x53, 0xe5,
|
||||||
0x66, 0x0f, 0xe3, 0x66, 0xf1, 0xd0, 0xa6, 0x46, 0x55, 0x6e, 0xd8, 0xbb, 0x11, 0x86, 0x15, 0x3a,
|
0xcc, 0x1e, 0xc4, 0xcd, 0xe2, 0x81, 0x4d, 0x8d, 0xaa, 0xdc, 0xb0, 0x77, 0x2d, 0x0c, 0x2b, 0x74,
|
||||||
0x55, 0x55, 0xe8, 0xd4, 0x42, 0xea, 0xda, 0x85, 0x59, 0x92, 0xe9, 0xb4, 0x5e, 0xc0, 0xdc, 0x10,
|
0xaa, 0xaa, 0xd0, 0xa9, 0x85, 0xd4, 0xb5, 0x0b, 0xb3, 0x24, 0xd3, 0x69, 0xbd, 0x80, 0xb9, 0x21,
|
||||||
0x2f, 0x92, 0x9d, 0xbd, 0x83, 0x69, 0x5d, 0xa6, 0x4e, 0xe9, 0x92, 0xbd, 0xee, 0x07, 0x5f, 0x96,
|
0x5e, 0x24, 0x3b, 0x7b, 0x2f, 0xa6, 0x75, 0x99, 0x3a, 0xa5, 0x4b, 0xf6, 0xa6, 0x1f, 0x7c, 0x5d,
|
||||||
0xaa, 0xcc, 0xf4, 0x32, 0xd2, 0x95, 0x2c, 0xfb, 0x3c, 0x77, 0xae, 0xb2, 0xcf, 0xe3, 0x78, 0x5e,
|
0xaa, 0x32, 0xd3, 0xcb, 0x48, 0x57, 0xb2, 0xec, 0xf3, 0xdc, 0xb9, 0xca, 0x3e, 0x8f, 0xe3, 0x79,
|
||||||
0xea, 0x68, 0x59, 0xc8, 0x2c, 0x9a, 0xc9, 0x78, 0x2a, 0x85, 0xab, 0x8d, 0xb4, 0xb1, 0x6d, 0x75,
|
0xa9, 0xa3, 0x65, 0x21, 0xb3, 0x68, 0x26, 0xe3, 0xa9, 0x14, 0xae, 0x36, 0xd2, 0xc6, 0xb6, 0xd5,
|
||||||
0xc6, 0x0f, 0xac, 0x4c, 0x6b, 0xa3, 0xdc, 0x6a, 0xb7, 0x5b, 0xe2, 0xc1, 0x5f, 0x6b, 0xa1, 0xc7,
|
0x19, 0x3f, 0xb0, 0x32, 0xad, 0x8d, 0x72, 0xab, 0xdd, 0x6e, 0x89, 0x07, 0x7f, 0xad, 0x85, 0x1e,
|
||||||
0x77, 0x85, 0xae, 0x0f, 0xf2, 0x90, 0x7f, 0xb4, 0xb2, 0x98, 0x6e, 0xef, 0x7e, 0xfb, 0xd5, 0xee,
|
0xdd, 0x16, 0xba, 0x3e, 0xc8, 0x43, 0xfe, 0xc9, 0xca, 0x62, 0xba, 0xbd, 0xfb, 0xea, 0x9b, 0xdd,
|
||||||
0xba, 0xca, 0x84, 0x93, 0xf7, 0xed, 0x9d, 0x9d, 0x65, 0x7d, 0x19, 0x7c, 0x31, 0x12, 0xf6, 0x94,
|
0x75, 0x95, 0x09, 0x27, 0xef, 0xda, 0x3b, 0x3b, 0xcd, 0xfa, 0x32, 0xf8, 0x6a, 0x24, 0xec, 0x29,
|
||||||
0x8c, 0x8c, 0x73, 0xa7, 0x85, 0x24, 0xcf, 0x8e, 0x57, 0xfe, 0xd5, 0x66, 0xab, 0xb2, 0x97, 0x93,
|
0x19, 0x19, 0xe7, 0x4e, 0x0a, 0x49, 0x9e, 0x1d, 0xad, 0xfc, 0xab, 0xcd, 0x56, 0x65, 0x2f, 0x26,
|
||||||
0x4f, 0x5b, 0x9b, 0xe5, 0xc3, 0x87, 0x5c, 0x4f, 0x3e, 0xc9, 0xd4, 0xf1, 0x24, 0x71, 0xab, 0x4a,
|
0x9f, 0xb7, 0x36, 0xcb, 0x87, 0x0f, 0xb9, 0x9e, 0x7c, 0x96, 0xa9, 0xe3, 0x49, 0xe2, 0x56, 0x95,
|
||||||
0xea, 0x29, 0xad, 0xed, 0x1c, 0x19, 0x23, 0x56, 0x91, 0xb2, 0xfe, 0xf3, 0x96, 0x84, 0x42, 0x8b,
|
0xd4, 0x53, 0x5a, 0xdb, 0x39, 0x34, 0x46, 0xac, 0x22, 0x65, 0xfd, 0xe7, 0x0d, 0x09, 0x85, 0x16,
|
||||||
0xec, 0x9f, 0xa3, 0xbe, 0x0c, 0x5d, 0xb2, 0x33, 0x08, 0xbe, 0x14, 0xd2, 0x31, 0x9d, 0x64, 0x51,
|
0xd9, 0x3f, 0x47, 0x7d, 0x19, 0xba, 0x64, 0x67, 0x10, 0x7c, 0x2d, 0xa4, 0x63, 0x3a, 0xc9, 0xa2,
|
||||||
0x6a, 0x00, 0x87, 0x6c, 0xd5, 0xf6, 0x79, 0x03, 0x3b, 0x0f, 0x0e, 0x74, 0x04, 0x2f, 0x8f, 0x9c,
|
0xd4, 0x00, 0x0e, 0xd9, 0xaa, 0xed, 0xf3, 0x06, 0x76, 0x1e, 0xbc, 0xd0, 0x11, 0xbc, 0x3c, 0x74,
|
||||||
0x33, 0x6a, 0x52, 0x3b, 0x89, 0x17, 0x26, 0xe5, 0xa1, 0x0c, 0xc2, 0xbb, 0xeb, 0xa4, 0x1b, 0xbe,
|
0xce, 0xa8, 0x49, 0xed, 0x24, 0x5e, 0x98, 0x94, 0x87, 0x32, 0x08, 0x6f, 0xaf, 0x93, 0x6e, 0xf8,
|
||||||
0x39, 0xf9, 0xd9, 0xc5, 0x9f, 0xc4, 0x8d, 0xe8, 0x04, 0x7c, 0xb5, 0x51, 0xd8, 0x55, 0x09, 0x11,
|
0xe6, 0xe4, 0x17, 0x17, 0x7f, 0x16, 0xd7, 0xa2, 0x13, 0xf0, 0xcd, 0x46, 0x61, 0x57, 0x25, 0x44,
|
||||||
0x2e, 0x08, 0xb3, 0x68, 0xa2, 0xb3, 0x55, 0x24, 0x2a, 0xe0, 0x93, 0xbd, 0xcc, 0x55, 0x91, 0xf5,
|
0xb8, 0x20, 0xcc, 0xa2, 0x89, 0xce, 0x56, 0x91, 0xa8, 0x80, 0x4f, 0xf6, 0x2a, 0x57, 0x45, 0xd6,
|
||||||
0x35, 0xed, 0x17, 0x59, 0x76, 0x7a, 0x03, 0x2b, 0xce, 0x95, 0x45, 0x32, 0x4a, 0xd3, 0xe7, 0x64,
|
0xd7, 0xb4, 0x5f, 0x64, 0xd9, 0xc9, 0x35, 0xac, 0x38, 0x53, 0x16, 0xc9, 0x28, 0x4d, 0x9f, 0x93,
|
||||||
0x33, 0x0f, 0xfb, 0x41, 0x32, 0xfc, 0xf2, 0x9b, 0x74, 0xbf, 0xf7, 0x83, 0x10, 0x32, 0x8f, 0xd3,
|
0xcd, 0x3c, 0xec, 0x07, 0xc9, 0xf0, 0xeb, 0x6f, 0xd2, 0xfd, 0xde, 0x0f, 0x42, 0xc8, 0x3c, 0x4a,
|
||||||
0xf9, 0x2b, 0x55, 0x48, 0xca, 0xb1, 0x3e, 0x21, 0xc8, 0x27, 0xe9, 0x3c, 0x9d, 0xce, 0x78, 0xf0,
|
0xe7, 0xaf, 0x55, 0x21, 0x29, 0xc7, 0xfa, 0x84, 0x20, 0x9f, 0xa4, 0xf3, 0x74, 0x3a, 0xe3, 0xc1,
|
||||||
0xcd, 0xb7, 0x15, 0xa2, 0x2d, 0x1d, 0x82, 0x1a, 0xfc, 0x75, 0xbf, 0x1e, 0x69, 0x8c, 0x36, 0x70,
|
0xbd, 0x6f, 0x2b, 0x44, 0x5b, 0x3a, 0x04, 0x35, 0xf8, 0xeb, 0x6e, 0x3d, 0xd2, 0x18, 0x6d, 0xe0,
|
||||||
0x0f, 0x7a, 0x50, 0x09, 0x56, 0x17, 0x32, 0x2a, 0xf4, 0xac, 0xcf, 0x4f, 0x69, 0x9d, 0xb5, 0xe0,
|
0x1e, 0xf4, 0xa0, 0x12, 0xac, 0x2e, 0x64, 0x54, 0xe8, 0x59, 0x9f, 0x9f, 0xd0, 0x3a, 0x6b, 0xc1,
|
||||||
0x21, 0xe2, 0x6c, 0x0a, 0xd1, 0x1e, 0x06, 0xa4, 0xbe, 0x01, 0x5c, 0xe7, 0xed, 0x3a, 0xd0, 0xc7,
|
0x43, 0xc4, 0xd9, 0x14, 0xa2, 0x3d, 0x0c, 0x48, 0x7d, 0x03, 0xb8, 0xce, 0xda, 0x75, 0xa0, 0x8f,
|
||||||
0xc1, 0xa9, 0x9a, 0xd5, 0x46, 0x78, 0xb4, 0x1b, 0x18, 0xd8, 0x54, 0x28, 0xca, 0xba, 0xff, 0x94,
|
0x83, 0x53, 0x35, 0xab, 0x8d, 0xf0, 0x68, 0x37, 0x30, 0xb0, 0xa9, 0x50, 0x94, 0x75, 0xff, 0x29,
|
||||||
0x67, 0x65, 0xaa, 0x17, 0x15, 0x40, 0x97, 0xac, 0x12, 0x33, 0xc9, 0x90, 0x12, 0x62, 0x07, 0xb9,
|
0x4f, 0xcb, 0x54, 0x2f, 0x2a, 0x80, 0x2e, 0x59, 0x25, 0x66, 0x92, 0x21, 0x25, 0xc4, 0x0e, 0x72,
|
||||||
0xb0, 0x15, 0x20, 0x9b, 0xeb, 0xe5, 0x58, 0x0b, 0xeb, 0x9a, 0x18, 0xed, 0x05, 0x5f, 0x28, 0xf7,
|
0x61, 0x2b, 0x40, 0x36, 0xd7, 0xcb, 0xb1, 0x16, 0xd6, 0x35, 0x31, 0xda, 0x0b, 0xbe, 0x52, 0xee,
|
||||||
0x75, 0xe2, 0xbd, 0x70, 0xf4, 0xc2, 0x87, 0x45, 0x95, 0x30, 0xf9, 0xf5, 0xf8, 0xe2, 0x3c, 0x91,
|
0xeb, 0xc4, 0x7b, 0xe1, 0xe8, 0x85, 0x0f, 0x8b, 0x2a, 0x61, 0xf2, 0x9b, 0xf1, 0xf9, 0x59, 0x22,
|
||||||
0xf0, 0x25, 0x2d, 0x84, 0xb5, 0xe4, 0x08, 0x79, 0xd5, 0x77, 0x2f, 0x5a, 0x57, 0x9e, 0x73, 0x92,
|
0xe1, 0x4b, 0x5a, 0x08, 0x6b, 0xc9, 0x11, 0xf2, 0xaa, 0xef, 0x5e, 0xb6, 0xae, 0x3c, 0xe7, 0x24,
|
||||||
0x86, 0x28, 0xa4, 0x85, 0x14, 0x66, 0xdc, 0x54, 0x4e, 0xbf, 0xad, 0x20, 0x1f, 0x1b, 0xb7, 0x82,
|
0x0d, 0x51, 0x48, 0x0b, 0x29, 0xcc, 0xb8, 0xa9, 0x9c, 0x7e, 0x5b, 0x41, 0x3e, 0x36, 0x6e, 0x05,
|
||||||
0x93, 0xa2, 0x54, 0x0b, 0x6f, 0x6f, 0xc2, 0x4b, 0x5d, 0xc2, 0xb3, 0x76, 0x47, 0x02, 0xb8, 0xba,
|
0x27, 0x45, 0xa9, 0x16, 0xde, 0xde, 0x84, 0x97, 0xba, 0x84, 0x67, 0xed, 0x8e, 0x04, 0x70, 0x75,
|
||||||
0x43, 0xfd, 0xce, 0x40, 0x24, 0xf6, 0xb6, 0x3e, 0x23, 0x17, 0xfa, 0x86, 0x12, 0xc3, 0x2b, 0x02,
|
0x87, 0xfa, 0x9d, 0x81, 0x48, 0xec, 0x6d, 0x7d, 0x46, 0x2e, 0xf4, 0x35, 0x25, 0x86, 0x57, 0x04,
|
||||||
0xb0, 0xfb, 0xcf, 0x06, 0x83, 0x2d, 0x77, 0xea, 0x8a, 0x40, 0xa3, 0x58, 0x90, 0x3f, 0x9d, 0x33,
|
0x60, 0xf7, 0x9f, 0x0d, 0x06, 0x5b, 0xee, 0xd4, 0x15, 0x81, 0x46, 0xb1, 0x20, 0x7f, 0x3a, 0x67,
|
||||||
0xa5, 0x5c, 0xb2, 0x7f, 0x5d, 0x9c, 0xbf, 0x46, 0x5d, 0x5e, 0xcb, 0x3f, 0x6a, 0x69, 0xdd, 0xc1,
|
0x4a, 0xb9, 0x64, 0xff, 0x3a, 0x3f, 0x7b, 0x83, 0xba, 0x7c, 0x27, 0xff, 0xa8, 0xa5, 0x75, 0x2f,
|
||||||
0x77, 0x02, 0xbf, 0xa5, 0x7a, 0x83, 0x8e, 0xcb, 0x95, 0x85, 0x76, 0x5b, 0x21, 0x52, 0x72, 0x8c,
|
0xbe, 0x13, 0xf8, 0x2d, 0xd5, 0x1b, 0x74, 0x5c, 0xae, 0x2c, 0xb4, 0xdb, 0x0a, 0x91, 0x92, 0x63,
|
||||||
0xbc, 0x0b, 0xfd, 0x8a, 0x75, 0x28, 0x6b, 0x3b, 0x4c, 0x9e, 0x90, 0x15, 0xc1, 0x77, 0xe3, 0xbc,
|
0xe4, 0x5d, 0xe8, 0x57, 0xac, 0x43, 0x59, 0xdb, 0x61, 0xf2, 0x84, 0xac, 0x08, 0xbe, 0x1b, 0xe7,
|
||||||
0x91, 0x2b, 0xb7, 0x05, 0x4b, 0x92, 0x91, 0xce, 0xc3, 0x9d, 0x4e, 0x40, 0x53, 0xc0, 0x57, 0x97,
|
0x8d, 0x5c, 0xb9, 0x2d, 0x58, 0x92, 0x8c, 0x74, 0x1e, 0xee, 0x74, 0x02, 0x9a, 0x02, 0xbe, 0xbc,
|
||||||
0xa3, 0x31, 0x32, 0x3c, 0x6e, 0x1c, 0x42, 0x0c, 0xc8, 0x93, 0xd2, 0x7b, 0xf2, 0x4a, 0x9b, 0xc5,
|
0x18, 0x8d, 0x91, 0xe1, 0x71, 0xe3, 0x10, 0x62, 0x40, 0x9e, 0x94, 0xde, 0x93, 0xd7, 0xda, 0x2c,
|
||||||
0x09, 0x22, 0x79, 0xd0, 0x56, 0x65, 0xd9, 0x26, 0x75, 0x9f, 0x53, 0x7c, 0x91, 0x28, 0x11, 0x25,
|
0x8e, 0x11, 0xc9, 0x17, 0x6d, 0x55, 0x96, 0x6d, 0x52, 0xf7, 0x39, 0xc5, 0x17, 0x89, 0x12, 0x51,
|
||||||
0x8c, 0x7d, 0x3f, 0xf8, 0x10, 0x36, 0xa8, 0xd3, 0xbb, 0x32, 0xc0, 0xfa, 0x8d, 0x28, 0x6a, 0x50,
|
0xc2, 0xd8, 0x0f, 0x83, 0x8f, 0x61, 0x83, 0x3a, 0xbd, 0x2b, 0x03, 0xac, 0x5f, 0x8b, 0xa2, 0x06,
|
||||||
0x24, 0x0f, 0x77, 0xf6, 0x36, 0x90, 0xa5, 0xb9, 0x4c, 0xe7, 0x6f, 0xea, 0xc5, 0xa6, 0xce, 0x77,
|
0x45, 0xf2, 0x70, 0x67, 0x6f, 0x03, 0x59, 0x9a, 0xcb, 0x74, 0xfe, 0xb6, 0x5e, 0x6c, 0xea, 0x7c,
|
||||||
0xfa, 0x3b, 0x92, 0x5c, 0x88, 0xe6, 0x72, 0x15, 0x21, 0x54, 0x69, 0xde, 0x8f, 0xdf, 0x0f, 0x76,
|
0xa7, 0xbf, 0x23, 0xc9, 0x85, 0x68, 0x2e, 0x57, 0x11, 0x42, 0x95, 0xe6, 0xfd, 0xf8, 0xc3, 0x60,
|
||||||
0x9f, 0x7d, 0x88, 0x03, 0x14, 0xfb, 0x7b, 0x7e, 0x0c, 0x7b, 0x6d, 0x25, 0x52, 0x2a, 0xc1, 0xb1,
|
0xf7, 0xd9, 0xc7, 0x38, 0x40, 0xb1, 0x7f, 0xe0, 0x47, 0xb0, 0xd7, 0x56, 0x22, 0xa5, 0x12, 0x1c,
|
||||||
0x98, 0xe0, 0xff, 0x29, 0x88, 0x1c, 0x2e, 0xf2, 0x51, 0xae, 0xa6, 0x0e, 0x9f, 0x2f, 0xc1, 0xec,
|
0x8b, 0x09, 0xfe, 0x9f, 0x80, 0xc8, 0xe1, 0x22, 0x1f, 0xe5, 0x6a, 0xea, 0xf0, 0xf9, 0x0a, 0xcc,
|
||||||
0x46, 0x17, 0xf8, 0x76, 0x54, 0xd0, 0xf3, 0x95, 0x00, 0x5f, 0xd3, 0xba, 0xa8, 0xec, 0xb9, 0x4e,
|
0x6e, 0x74, 0x81, 0x6f, 0x87, 0x05, 0x3d, 0x5f, 0x0a, 0xf0, 0x35, 0xad, 0x8b, 0xca, 0x9e, 0xe9,
|
||||||
0xe7, 0x74, 0x04, 0xe4, 0xed, 0x8b, 0x78, 0xd4, 0x4a, 0xba, 0x42, 0x86, 0xbe, 0xad, 0xda, 0x2f,
|
0x74, 0x4e, 0x47, 0x40, 0xde, 0xbe, 0x88, 0x47, 0xad, 0xa4, 0x4b, 0x64, 0xe8, 0x55, 0xd5, 0x7e,
|
||||||
0x27, 0x7a, 0x59, 0x7a, 0xb9, 0x08, 0x08, 0x7f, 0xad, 0x17, 0xb4, 0x01, 0xec, 0xa2, 0x97, 0xe7,
|
0x39, 0xd6, 0xcb, 0xd2, 0xcb, 0x45, 0x40, 0xf8, 0x1b, 0xbd, 0xa0, 0x0d, 0x60, 0x17, 0xbd, 0x3c,
|
||||||
0xd2, 0x2b, 0xf0, 0xdf, 0xfd, 0x6e, 0xff, 0xed, 0x5a, 0xcd, 0xf2, 0xf5, 0x72, 0x7b, 0xf6, 0x0c,
|
0x93, 0x5e, 0x81, 0xff, 0xee, 0x77, 0xfb, 0x6f, 0xef, 0xd4, 0x2c, 0x5f, 0x2f, 0xb7, 0x67, 0x4f,
|
||||||
0x81, 0x32, 0xb4, 0x78, 0x22, 0xa9, 0x02, 0xf8, 0x07, 0x24, 0x71, 0x5a, 0xd4, 0x99, 0xb4, 0xfd,
|
0x11, 0x28, 0x43, 0x8b, 0xc7, 0x92, 0x2a, 0x80, 0x7f, 0x44, 0x12, 0xa7, 0x45, 0x9d, 0x49, 0xdb,
|
||||||
0xb5, 0x77, 0x41, 0xf0, 0xe7, 0x9f, 0xed, 0x13, 0xca, 0x95, 0x3e, 0x4f, 0xe4, 0x54, 0xd4, 0x85,
|
0x5f, 0x7b, 0x17, 0x04, 0x7f, 0xfe, 0xd9, 0x3e, 0xa1, 0x5c, 0xe9, 0xf3, 0x58, 0x4e, 0x45, 0x5d,
|
||||||
0x43, 0xd1, 0xa3, 0x16, 0xb6, 0xca, 0xe4, 0x76, 0x8d, 0x03, 0x2a, 0x79, 0x87, 0x69, 0xc0, 0xbd,
|
0x38, 0x14, 0x3d, 0x6a, 0x61, 0xab, 0x4c, 0x6e, 0xd6, 0x38, 0xa0, 0x92, 0xb7, 0x98, 0x06, 0xdc,
|
||||||
0x65, 0x93, 0x40, 0x9c, 0x38, 0xff, 0x23, 0x7f, 0x24, 0x89, 0x5a, 0xef, 0xdb, 0x11, 0x3c, 0xea,
|
0x5b, 0x36, 0x09, 0xc4, 0x89, 0xf3, 0x3f, 0xf1, 0x47, 0x92, 0xa8, 0xf5, 0xae, 0x1d, 0xc1, 0xa3,
|
||||||
0xf3, 0x77, 0xe7, 0xa7, 0x27, 0x20, 0x51, 0x9b, 0xbd, 0xe0, 0xa8, 0x1b, 0xec, 0xb6, 0x59, 0xb0,
|
0x3e, 0x7f, 0x7f, 0x76, 0x72, 0x0c, 0x12, 0xb5, 0xd9, 0x4b, 0x8e, 0xba, 0xc1, 0x6e, 0x9b, 0x05,
|
||||||
0xa5, 0x6f, 0x84, 0xe4, 0xe3, 0x14, 0xc6, 0xe7, 0xd8, 0xd4, 0x32, 0x3b, 0xfa, 0x8e, 0x2f, 0x1b,
|
0x5b, 0xfa, 0x46, 0x48, 0x3e, 0x4e, 0x61, 0x7c, 0x8e, 0x4d, 0x2d, 0xb3, 0xa3, 0xef, 0xf8, 0xb2,
|
||||||
0x98, 0xaa, 0x9d, 0x4e, 0x75, 0xf1, 0xf0, 0x61, 0xdf, 0xf7, 0xa2, 0x41, 0xd8, 0xf7, 0xcd, 0x2a,
|
0x81, 0xa9, 0xda, 0xe9, 0x54, 0x17, 0x0f, 0x1f, 0xf6, 0x7d, 0x2f, 0x1a, 0x84, 0x7d, 0xdf, 0xac,
|
||||||
0xa1, 0x1d, 0xc5, 0xc8, 0x69, 0x03, 0x04, 0x49, 0xf9, 0x99, 0x93, 0x0b, 0x4a, 0xeb, 0xf4, 0xac,
|
0x12, 0xda, 0x51, 0x8c, 0x9c, 0x36, 0x40, 0x90, 0x94, 0x9f, 0x3a, 0xb9, 0xa0, 0xb4, 0x4e, 0x4f,
|
||||||
0xe2, 0xde, 0xd5, 0x66, 0x1b, 0xce, 0x2f, 0x2a, 0xf0, 0x08, 0xb9, 0xc3, 0x2e, 0x74, 0x26, 0x23,
|
0x2b, 0xee, 0x5d, 0x6d, 0xb6, 0xe1, 0xfc, 0xa2, 0x02, 0x8f, 0x90, 0x3b, 0xec, 0x5c, 0x67, 0x32,
|
||||||
0x76, 0x85, 0x8a, 0xb5, 0x92, 0x49, 0x8a, 0x23, 0x23, 0xdb, 0xd8, 0xd9, 0x15, 0x98, 0x22, 0xbc,
|
0x62, 0x97, 0xa8, 0x58, 0x2b, 0x99, 0xa4, 0x38, 0x32, 0xb2, 0x8d, 0x9d, 0x5e, 0x82, 0x29, 0xc2,
|
||||||
0x25, 0xd1, 0xde, 0x96, 0x18, 0x7a, 0x69, 0x41, 0x40, 0xbb, 0x3c, 0xcb, 0x93, 0xf8, 0x17, 0xbe,
|
0x1b, 0x12, 0xed, 0x4d, 0x89, 0xa1, 0x97, 0x16, 0x04, 0xb4, 0xcb, 0xb3, 0x3c, 0x89, 0x7f, 0xe9,
|
||||||
0xfb, 0xa1, 0xf9, 0xf1, 0x47, 0xfe, 0xf5, 0x73, 0x0e, 0x77, 0x37, 0xcd, 0x2b, 0xb6, 0xd1, 0x27,
|
0xbb, 0x1f, 0x9a, 0x1f, 0x7f, 0xe4, 0x5f, 0x3f, 0xe7, 0x70, 0x77, 0xd3, 0xbc, 0x62, 0x1b, 0x7d,
|
||||||
0xfb, 0xa2, 0x4a, 0x7e, 0xe5, 0x1e, 0xdf, 0xde, 0x61, 0xdc, 0xb6, 0xdc, 0x43, 0xcf, 0x0d, 0xc3,
|
0xb6, 0x2f, 0xab, 0xe4, 0x57, 0xee, 0xf1, 0xed, 0x1d, 0xc4, 0x6d, 0xcb, 0x3d, 0xf0, 0xdc, 0x30,
|
||||||
0x7f, 0xa8, 0x05, 0x35, 0x6f, 0x56, 0x9b, 0x02, 0x45, 0xee, 0xe9, 0x22, 0xb5, 0xe0, 0xd0, 0x03,
|
0xfc, 0x87, 0x5a, 0x50, 0xf3, 0x66, 0xb5, 0x29, 0x50, 0xe4, 0x9e, 0x2e, 0x52, 0x0b, 0x0e, 0x7d,
|
||||||
0x6c, 0xf4, 0x1b, 0x0e, 0xe3, 0x66, 0xd8, 0x20, 0x32, 0x07, 0x47, 0x92, 0xe6, 0x84, 0x03, 0x2d,
|
0x81, 0x8d, 0x7e, 0xc3, 0x41, 0xdc, 0x0c, 0x1b, 0x44, 0xe6, 0xe0, 0x48, 0xd2, 0x9c, 0x70, 0xa0,
|
||||||
0x34, 0xf6, 0x29, 0xea, 0xa2, 0xc7, 0x14, 0x9e, 0xe9, 0xdb, 0x47, 0xcb, 0xdb, 0x61, 0x64, 0x34,
|
0x85, 0xc6, 0x3e, 0x45, 0x5d, 0xf4, 0x98, 0xc2, 0x33, 0x7d, 0xfb, 0x64, 0x79, 0x3b, 0x8c, 0x8c,
|
||||||
0xe5, 0x0c, 0xa3, 0x40, 0xae, 0xf1, 0xa6, 0xd2, 0x96, 0x26, 0x83, 0x4c, 0xdd, 0x30, 0x4f, 0x2a,
|
0xa6, 0x9c, 0x61, 0x14, 0xc8, 0x35, 0xde, 0x54, 0xda, 0xd2, 0x64, 0x90, 0xa9, 0x6b, 0xe6, 0x49,
|
||||||
0x09, 0x38, 0x0e, 0x70, 0x2c, 0x6f, 0xaf, 0xe5, 0xb2, 0xa8, 0x8e, 0x69, 0x4e, 0x41, 0xe0, 0x1c,
|
0x25, 0x01, 0xc7, 0x01, 0x8e, 0xe5, 0xcd, 0xb5, 0x5c, 0x16, 0xd5, 0x11, 0xcd, 0x29, 0x08, 0x9c,
|
||||||
0xa2, 0x41, 0xed, 0x26, 0xe1, 0xcd, 0x03, 0x87, 0xd6, 0xb4, 0x50, 0xe9, 0x3c, 0xe1, 0xaf, 0x49,
|
0x43, 0x34, 0xa8, 0xdd, 0x24, 0xbc, 0x79, 0xe0, 0xd0, 0x9a, 0x16, 0x2a, 0x9d, 0x27, 0xfc, 0x0d,
|
||||||
0xed, 0x8b, 0xc3, 0xb8, 0x79, 0x01, 0xd3, 0x20, 0x62, 0x78, 0xff, 0x99, 0xde, 0xfa, 0xd0, 0x31,
|
0xa9, 0x7d, 0x79, 0x10, 0x37, 0x2f, 0x60, 0x1a, 0x44, 0x0c, 0xef, 0x3e, 0xd3, 0x5b, 0x1f, 0x3a,
|
||||||
0x1d, 0xa2, 0x0a, 0xda, 0x9c, 0xbb, 0x75, 0xc2, 0xd6, 0x93, 0x85, 0x82, 0x8d, 0x23, 0x71, 0x23,
|
0xa2, 0x43, 0x54, 0x41, 0x9b, 0x73, 0x37, 0x4e, 0xd8, 0x7a, 0xb2, 0x50, 0xb0, 0x71, 0x24, 0xae,
|
||||||
0x37, 0x5b, 0x72, 0xd3, 0x89, 0xcf, 0xf7, 0x87, 0xbd, 0x51, 0x3b, 0x39, 0xb0, 0x87, 0xec, 0xad,
|
0xe5, 0x66, 0x4b, 0x6e, 0x3a, 0xf1, 0xf9, 0xfe, 0xb0, 0x37, 0x6a, 0x27, 0x07, 0xf6, 0x90, 0x5d,
|
||||||
0xef, 0xf3, 0x94, 0x9f, 0x75, 0x05, 0x6c, 0xf6, 0x87, 0xdd, 0x4c, 0xc3, 0xae, 0xce, 0xde, 0x3c,
|
0xf9, 0x3e, 0x4f, 0xf9, 0x59, 0x57, 0xc0, 0x66, 0x7f, 0xd8, 0xcd, 0x34, 0xec, 0xf2, 0xf4, 0xed,
|
||||||
0x67, 0x87, 0xaa, 0xac, 0x6a, 0xd7, 0x8a, 0xae, 0xe0, 0xdc, 0x52, 0x9b, 0x8c, 0x7b, 0x90, 0xf0,
|
0x73, 0x76, 0xa0, 0xca, 0xaa, 0x76, 0xad, 0xe8, 0x0a, 0xce, 0x2d, 0xb5, 0xc9, 0xb8, 0x07, 0x09,
|
||||||
0x7e, 0x3d, 0x34, 0xf9, 0xef, 0x56, 0xfd, 0x17, 0x5f, 0x9f, 0x00, 0x2c, 0xf1, 0x19, 0x79, 0x3e,
|
0xef, 0xd7, 0x43, 0x93, 0xff, 0x6e, 0xd5, 0x7f, 0xf1, 0xf5, 0x09, 0xc0, 0x12, 0x5f, 0x90, 0xe7,
|
||||||
0xc3, 0x48, 0xe6, 0x9f, 0x54, 0xb9, 0xf5, 0xa4, 0x4b, 0x94, 0x0d, 0x65, 0x72, 0xc2, 0xd7, 0xc4,
|
0x33, 0x8c, 0x64, 0xfe, 0x49, 0x95, 0x5b, 0x4f, 0xba, 0x44, 0xd9, 0x50, 0x26, 0x27, 0x7c, 0x4d,
|
||||||
0x41, 0x4c, 0x18, 0x40, 0x56, 0x25, 0x1c, 0xd2, 0x07, 0x6f, 0x3c, 0x59, 0xfc, 0x0d, 0x6a, 0x48,
|
0x1c, 0xc4, 0x84, 0x01, 0x64, 0x55, 0xc2, 0x21, 0x7d, 0xf0, 0xc6, 0x93, 0xc5, 0xdf, 0xa0, 0x86,
|
||||||
0xf9, 0x02, 0x09, 0x06, 0xa6, 0xc7, 0xec, 0x64, 0x54, 0xca, 0x99, 0x9f, 0xb4, 0xa0, 0x71, 0x3b,
|
0x94, 0x2f, 0x90, 0x60, 0x60, 0x7a, 0xcc, 0x4e, 0x46, 0xa5, 0x9c, 0xf9, 0x49, 0x0b, 0x1a, 0xb7,
|
||||||
0xe1, 0x04, 0x7b, 0xc2, 0x32, 0x35, 0x53, 0x8e, 0x61, 0xdb, 0x04, 0x4c, 0x02, 0x4c, 0x0c, 0xe0,
|
0x13, 0x4e, 0xb0, 0x27, 0x2c, 0x53, 0x33, 0xe5, 0x18, 0xb6, 0x4d, 0xc0, 0x24, 0xc0, 0xc4, 0x00,
|
||||||
0xa7, 0x90, 0xf8, 0xb0, 0x43, 0x99, 0x2e, 0xb4, 0x79, 0xfe, 0x60, 0x2a, 0x68, 0x7e, 0x7c, 0xf8,
|
0x7e, 0x0a, 0x89, 0x0f, 0x3b, 0x94, 0xe9, 0x42, 0x9b, 0xe7, 0x0f, 0xa6, 0x82, 0xe6, 0xc7, 0x87,
|
||||||
0xe0, 0xd9, 0xd3, 0xa7, 0x4f, 0x0f, 0xd8, 0xdb, 0x52, 0x96, 0xa9, 0x59, 0x55, 0x4e, 0x66, 0xcc,
|
0x0f, 0x9e, 0x3d, 0x7d, 0xfa, 0xf4, 0x05, 0xbb, 0x2a, 0x65, 0x99, 0x9a, 0x55, 0xe5, 0x64, 0xc6,
|
||||||
0x19, 0x51, 0xda, 0x85, 0xb2, 0x96, 0x2a, 0x84, 0x1d, 0xa3, 0xe3, 0x19, 0xd4, 0x7a, 0xe9, 0xd8,
|
0x9c, 0x11, 0xa5, 0x5d, 0x28, 0x6b, 0xa9, 0x42, 0xd8, 0x11, 0x3a, 0x9e, 0x41, 0xad, 0x97, 0x8e,
|
||||||
0x32, 0x97, 0x54, 0xbf, 0x05, 0xa6, 0x16, 0x6a, 0x9a, 0x70, 0x35, 0x64, 0x99, 0x66, 0x6f, 0x2e,
|
0x2d, 0x73, 0x49, 0xf5, 0x5b, 0x60, 0x6a, 0xa1, 0xa6, 0x09, 0x57, 0x43, 0x96, 0x69, 0xf6, 0xf6,
|
||||||
0xc7, 0x0c, 0xa4, 0xc4, 0x56, 0xba, 0x36, 0x6c, 0x22, 0xca, 0x39, 0x5e, 0xd2, 0x0b, 0x6d, 0x42,
|
0x62, 0xcc, 0x40, 0x4a, 0x6c, 0xa5, 0x6b, 0xc3, 0x26, 0xa2, 0x9c, 0xe3, 0x25, 0xbd, 0xd0, 0x26,
|
||||||
0x36, 0x3a, 0xbb, 0x08, 0x99, 0x74, 0x69, 0xc4, 0x2a, 0x55, 0xee, 0xf4, 0xba, 0xc0, 0x1a, 0xff,
|
0x64, 0xa3, 0xd3, 0xf3, 0x90, 0x49, 0x97, 0x46, 0xac, 0x52, 0xe5, 0x4e, 0xaf, 0x0b, 0xac, 0xf1,
|
||||||
0x47, 0xfc, 0xc5, 0x96, 0xca, 0x40, 0xa2, 0xb5, 0xac, 0x7f, 0x39, 0x3e, 0x0a, 0x98, 0xd5, 0x53,
|
0x7f, 0xc4, 0x5f, 0x6c, 0xa9, 0x0c, 0x24, 0x5a, 0xcb, 0xfa, 0x17, 0xe3, 0xc3, 0x80, 0x59, 0x3d,
|
||||||
0xb7, 0x14, 0x46, 0xb2, 0x66, 0xec, 0xba, 0x83, 0xbb, 0x07, 0x6a, 0xa2, 0x3f, 0xaf, 0xe1, 0x7e,
|
0x75, 0x4b, 0x61, 0x24, 0x6b, 0xc6, 0xae, 0x5b, 0xb8, 0x7b, 0xa0, 0x26, 0xfa, 0xcb, 0x1a, 0xee,
|
||||||
0x73, 0xd9, 0x78, 0x78, 0x85, 0x80, 0x54, 0xb9, 0x01, 0x10, 0xdf, 0x8c, 0x54, 0x73, 0xe0, 0xf2,
|
0xb7, 0x17, 0x8d, 0x87, 0x97, 0x08, 0x48, 0x95, 0x1b, 0x00, 0x71, 0x6f, 0xa4, 0x9a, 0x03, 0x17,
|
||||||
0xea, 0x56, 0x54, 0x1e, 0xef, 0xb7, 0x08, 0x8d, 0x35, 0x10, 0xa4, 0x09, 0x98, 0xc1, 0x8c, 0x90,
|
0x97, 0x37, 0xa2, 0xf2, 0x78, 0xbf, 0x45, 0x68, 0xac, 0x81, 0x20, 0x4d, 0xc0, 0x0c, 0x66, 0x84,
|
||||||
0x21, 0xef, 0x59, 0x37, 0x55, 0x32, 0x8c, 0x58, 0x16, 0xcd, 0x8a, 0x1c, 0x64, 0xa5, 0x24, 0x84,
|
0x0c, 0x79, 0xcf, 0xba, 0xa9, 0x92, 0x61, 0xc4, 0xb2, 0x68, 0x56, 0xe4, 0x20, 0x2b, 0x25, 0x21,
|
||||||
0x34, 0x13, 0x85, 0xd5, 0x2d, 0xe6, 0x2e, 0x97, 0x98, 0x1e, 0x8c, 0x01, 0x2c, 0xac, 0x53, 0x07,
|
0xa4, 0x99, 0x28, 0xac, 0x6e, 0x31, 0x77, 0xb9, 0xc4, 0xf4, 0x60, 0x0c, 0x60, 0x61, 0x9d, 0x3a,
|
||||||
0x57, 0x21, 0x75, 0x9c, 0xcb, 0xf5, 0x0a, 0xcd, 0x07, 0x75, 0x91, 0xb1, 0x89, 0xa4, 0x41, 0xba,
|
0xb8, 0x0a, 0xa9, 0xe3, 0x5c, 0xae, 0x57, 0x68, 0x3e, 0xa8, 0x8b, 0x8c, 0x4d, 0x24, 0x0d, 0xd2,
|
||||||
0x9c, 0x41, 0x8c, 0xc7, 0x13, 0xea, 0x30, 0x1d, 0xb6, 0xca, 0xb3, 0xa8, 0xc1, 0x66, 0xd8, 0x3b,
|
0xe5, 0x0c, 0x62, 0x3c, 0x9e, 0x50, 0x87, 0xe9, 0xb0, 0x55, 0x9e, 0x45, 0x0d, 0x36, 0xc3, 0xde,
|
||||||
0x51, 0xb6, 0xb3, 0xa6, 0xd9, 0x57, 0x6a, 0x87, 0x2c, 0x20, 0xa0, 0x43, 0xa6, 0xa1, 0xd2, 0x2c,
|
0xb1, 0xb2, 0x9d, 0x35, 0xcd, 0xbe, 0x52, 0x3b, 0x64, 0x01, 0x01, 0x1d, 0x32, 0x0d, 0x95, 0x66,
|
||||||
0x15, 0x30, 0x17, 0x25, 0x43, 0xaa, 0xa0, 0x06, 0x60, 0x47, 0x8a, 0x07, 0x23, 0xa7, 0x28, 0xbc,
|
0xa9, 0x80, 0xb9, 0x28, 0x19, 0x52, 0x05, 0x35, 0x00, 0x3b, 0x52, 0x3c, 0x18, 0x39, 0x45, 0xe1,
|
||||||
0x9c, 0x35, 0x37, 0x80, 0x35, 0x9a, 0x84, 0xfc, 0xa4, 0xc1, 0x5d, 0x6d, 0xf2, 0x9a, 0x2a, 0x05,
|
0xe5, 0xac, 0xb9, 0x01, 0xac, 0xd1, 0x24, 0xe4, 0x27, 0x0d, 0xee, 0x6a, 0x93, 0xd7, 0x54, 0x29,
|
||||||
0x09, 0xd7, 0x4c, 0x34, 0x84, 0x39, 0x58, 0x60, 0xd5, 0x58, 0xe7, 0x75, 0xab, 0xa9, 0x57, 0x5f,
|
0x48, 0xb8, 0x66, 0xa2, 0x21, 0xcc, 0xc1, 0x02, 0xab, 0xc6, 0x3a, 0xaf, 0x5b, 0x4d, 0xbd, 0xfa,
|
||||||
0x50, 0x98, 0xb0, 0x2d, 0x6b, 0x4c, 0xca, 0x76, 0x0e, 0x63, 0x35, 0xf4, 0xfe, 0x9d, 0xc8, 0x72,
|
0x82, 0xc2, 0x84, 0x6d, 0x59, 0x63, 0x52, 0xb6, 0x73, 0x10, 0xab, 0xa1, 0xf7, 0xef, 0x58, 0x96,
|
||||||
0xc5, 0x44, 0x9a, 0x52, 0xf8, 0x80, 0xc9, 0x3b, 0xf5, 0x4a, 0xb1, 0x8e, 0x9f, 0xe8, 0x34, 0x9d,
|
0x2b, 0x26, 0xd2, 0x94, 0xc2, 0x07, 0x4c, 0xde, 0xab, 0xd7, 0x8a, 0x75, 0xfc, 0x44, 0xa7, 0xe9,
|
||||||
0x94, 0xd9, 0x37, 0x63, 0xd8, 0x46, 0xe4, 0x1d, 0x6f, 0xa4, 0xd1, 0xdf, 0x2b, 0x91, 0x82, 0x22,
|
0xa4, 0xcc, 0xee, 0x8d, 0x61, 0x1b, 0x91, 0xf7, 0xbc, 0x91, 0x46, 0x7f, 0xaf, 0x45, 0x0a, 0x8a,
|
||||||
0x09, 0x72, 0xc8, 0xf9, 0xc1, 0xc1, 0xeb, 0x51, 0x1b, 0xbb, 0xa3, 0xa2, 0xd8, 0xa8, 0x15, 0x65,
|
0x24, 0xc8, 0x21, 0xe7, 0x07, 0x07, 0xdf, 0x8d, 0xda, 0xd8, 0x1d, 0x16, 0xc5, 0x46, 0xad, 0x28,
|
||||||
0xc6, 0xda, 0x81, 0x11, 0xb9, 0x85, 0x37, 0x00, 0x5c, 0x52, 0x62, 0x74, 0xd8, 0x9a, 0xe1, 0xff,
|
0x33, 0xd6, 0x0e, 0x8c, 0xc8, 0x2d, 0xbc, 0x01, 0xe0, 0x92, 0x12, 0xa3, 0xc3, 0xd6, 0x0c, 0xff,
|
||||||
0x51, 0x0d, 0x47, 0x5b, 0x78, 0x7b, 0xf8, 0x80, 0x31, 0x8c, 0x41, 0x5a, 0x38, 0x04, 0x79, 0xee,
|
0x8f, 0x6a, 0x38, 0xdc, 0xc2, 0xdb, 0xc3, 0x07, 0x8c, 0x61, 0x0c, 0xd2, 0xc2, 0x21, 0xc8, 0x73,
|
||||||
0x63, 0xa0, 0x28, 0x2b, 0x52, 0x49, 0xe3, 0x23, 0xd8, 0xb3, 0x19, 0x15, 0xbb, 0xcc, 0x27, 0xf6,
|
0x1f, 0x03, 0x45, 0x59, 0x91, 0x4a, 0x1a, 0x1f, 0xc1, 0x9e, 0xcd, 0xa8, 0xd8, 0x65, 0x3e, 0xb1,
|
||||||
0xc9, 0x1f, 0x0f, 0x47, 0x5d, 0x96, 0x37, 0xa4, 0x03, 0xba, 0x79, 0x3c, 0xfc, 0x01, 0x45, 0xbe,
|
0x4f, 0xfe, 0x78, 0x38, 0xea, 0xb2, 0xbc, 0x21, 0x1d, 0xd0, 0xcd, 0xe3, 0xe1, 0x0f, 0x28, 0xf2,
|
||||||
0x25, 0xb6, 0xeb, 0x5d, 0x88, 0xb2, 0x16, 0x85, 0x0f, 0x4b, 0x77, 0x74, 0xcd, 0x7d, 0x66, 0x78,
|
0x8a, 0xd8, 0xae, 0x77, 0x2e, 0xca, 0x5a, 0x14, 0x3e, 0x2c, 0xdd, 0xd1, 0x35, 0xf7, 0x99, 0xe1,
|
||||||
0xda, 0x64, 0xf0, 0x91, 0xc9, 0x6a, 0x55, 0x6a, 0x6c, 0xfa, 0x51, 0xf9, 0x1c, 0x51, 0xf9, 0xb4,
|
0x49, 0x93, 0xc1, 0x87, 0x26, 0xab, 0x55, 0xa9, 0xb1, 0xe9, 0x47, 0xe5, 0x73, 0x48, 0xe5, 0xd3,
|
||||||
0x36, 0x11, 0x93, 0xd6, 0x15, 0x88, 0xf0, 0x1a, 0x53, 0x9d, 0x36, 0xad, 0x51, 0xa2, 0x63, 0xf2,
|
0xda, 0x44, 0x4c, 0x5a, 0x57, 0x20, 0xc2, 0x77, 0x98, 0xea, 0xb4, 0x69, 0x8d, 0x12, 0x1d, 0x93,
|
||||||
0x89, 0xc3, 0x18, 0x5d, 0xce, 0x1b, 0xc6, 0x6b, 0x47, 0x76, 0xd6, 0xcb, 0x91, 0x70, 0x09, 0x8f,
|
0x4f, 0x1c, 0xc6, 0xe8, 0x72, 0xde, 0x30, 0x5e, 0x3b, 0xb2, 0xb3, 0x5e, 0x8e, 0x84, 0x4b, 0x78,
|
||||||
0x5b, 0xc0, 0xd1, 0x91, 0xc8, 0xe6, 0xae, 0x3d, 0xa3, 0xfa, 0xda, 0xc9, 0xbd, 0x13, 0xde, 0x3e,
|
0xdc, 0x02, 0x8e, 0x8e, 0x44, 0x36, 0x77, 0xed, 0x19, 0xd5, 0xd7, 0x4e, 0xee, 0x9d, 0xf0, 0xf6,
|
||||||
0x1f, 0xc6, 0x62, 0x1d, 0x88, 0x61, 0xaf, 0xd5, 0xb7, 0x7e, 0xe9, 0xb3, 0x74, 0xcb, 0x6a, 0x3f,
|
0xf9, 0x20, 0x16, 0xeb, 0x40, 0x0c, 0x7b, 0xad, 0xbe, 0xf5, 0x4b, 0x9f, 0xa5, 0x5b, 0x56, 0xfb,
|
||||||
0xb4, 0xb7, 0x31, 0xf7, 0x73, 0x99, 0x4f, 0xb9, 0x0a, 0x17, 0xd1, 0x46, 0xdf, 0x90, 0x75, 0xd0,
|
0xa1, 0xbd, 0x8d, 0xb9, 0x9f, 0xcb, 0x7c, 0xca, 0x55, 0xb8, 0x88, 0x36, 0xfa, 0x86, 0xac, 0x83,
|
||||||
0xf5, 0xee, 0xc7, 0xee, 0x97, 0xad, 0x59, 0x36, 0x8b, 0x46, 0xd3, 0x88, 0xa4, 0x84, 0x77, 0xac,
|
0xae, 0x77, 0x37, 0x76, 0xbf, 0x6c, 0xcd, 0xb2, 0x59, 0x34, 0x9a, 0x46, 0x24, 0x25, 0xbc, 0x65,
|
||||||
0x0e, 0x7e, 0x19, 0xbe, 0xf5, 0xdb, 0xd6, 0x88, 0x36, 0x49, 0xb9, 0x61, 0xac, 0x6f, 0x42, 0xd1,
|
0x75, 0xf0, 0xcb, 0xf0, 0xca, 0x6f, 0x5b, 0x23, 0xda, 0x24, 0xe5, 0x86, 0xb1, 0xee, 0x85, 0xa2,
|
||||||
0x79, 0xc9, 0x5a, 0x34, 0x00, 0x4d, 0x8b, 0x44, 0x6f, 0x03, 0x05, 0xe1, 0xd5, 0xc1, 0x70, 0xeb,
|
0xf3, 0x92, 0xb5, 0x68, 0x00, 0x9a, 0x16, 0x89, 0xde, 0x06, 0x0a, 0xc2, 0xab, 0x83, 0xe1, 0xc6,
|
||||||
0xae, 0x71, 0x0b, 0x8c, 0x0e, 0x8b, 0xdb, 0x3b, 0x36, 0x88, 0xf4, 0xee, 0x87, 0x64, 0xff, 0xdb,
|
0x5d, 0xe3, 0x06, 0x18, 0x1d, 0x16, 0x37, 0x77, 0x6c, 0x10, 0xe9, 0xdd, 0x0d, 0xc9, 0xfe, 0xfd,
|
||||||
0x98, 0x7c, 0xa3, 0x7b, 0xde, 0x8b, 0xc9, 0x7e, 0xb8, 0x65, 0xfc, 0xd7, 0x80, 0x6c, 0xe1, 0x41,
|
0x98, 0xdc, 0xd3, 0x3d, 0xef, 0xc4, 0x64, 0x3f, 0xdc, 0x32, 0xfe, 0x5b, 0x40, 0xb6, 0xf0, 0xa0,
|
||||||
0x15, 0xd4, 0xfb, 0x5e, 0x09, 0x35, 0x8e, 0x50, 0x9b, 0x68, 0xd1, 0x89, 0x6f, 0x5f, 0xb0, 0x7c,
|
0x0a, 0xea, 0x7d, 0xaf, 0x84, 0x1a, 0x47, 0xa8, 0x4d, 0xb4, 0xe8, 0xc4, 0x37, 0x2f, 0x58, 0xbe,
|
||||||
0x69, 0x5e, 0xfe, 0x7e, 0x7a, 0xfd, 0xee, 0xfa, 0x6c, 0x7c, 0xda, 0xf4, 0x0e, 0xd0, 0xad, 0xa1,
|
0x34, 0x2f, 0x7e, 0x3f, 0x79, 0xf7, 0xfe, 0xdd, 0xe9, 0xf8, 0xa4, 0xe9, 0x1d, 0xa0, 0x5b, 0x43,
|
||||||
0x3e, 0x73, 0xef, 0x89, 0xc8, 0x87, 0xa3, 0x47, 0x17, 0xb1, 0x86, 0x6a, 0x6f, 0xcb, 0x5b, 0x08,
|
0x7d, 0xe6, 0xce, 0x13, 0x91, 0x0f, 0x47, 0x8f, 0x2e, 0x62, 0x0d, 0xd5, 0xde, 0x94, 0xb7, 0x10,
|
||||||
0x22, 0x8d, 0x3f, 0x6a, 0x74, 0x13, 0x34, 0xc1, 0xe9, 0x36, 0x8d, 0x30, 0x70, 0xb9, 0x91, 0xbb,
|
0x44, 0x1a, 0x7f, 0xd4, 0xe8, 0x26, 0x68, 0x82, 0xd3, 0x6d, 0x1a, 0x61, 0xe0, 0x72, 0x23, 0x77,
|
||||||
0x9e, 0x18, 0xdb, 0xcb, 0x9e, 0x57, 0x77, 0x3a, 0xba, 0x8a, 0xda, 0xba, 0x7c, 0x75, 0x0f, 0xdd,
|
0x3d, 0x31, 0xb6, 0x97, 0x3d, 0xaf, 0xee, 0x64, 0x74, 0x19, 0xb5, 0x75, 0xf9, 0xfa, 0x0e, 0xba,
|
||||||
0x87, 0x6b, 0xea, 0xb6, 0x9e, 0x1c, 0x89, 0x80, 0x27, 0x54, 0xf9, 0x19, 0x7a, 0x53, 0xd4, 0x55,
|
0x0f, 0xd7, 0xd4, 0x6d, 0x3d, 0x39, 0x12, 0x01, 0x4f, 0xa8, 0xf2, 0x33, 0xf4, 0xa6, 0xa8, 0xab,
|
||||||
0xcd, 0xd1, 0x04, 0x97, 0xac, 0xae, 0x54, 0xda, 0x72, 0xe8, 0x7e, 0xb5, 0x40, 0x1b, 0xce, 0xeb,
|
0x9a, 0xc3, 0x09, 0x2e, 0x59, 0x5d, 0xa9, 0xb4, 0xe5, 0xd0, 0xfd, 0x6a, 0x81, 0x36, 0x9c, 0xd7,
|
||||||
0x49, 0x84, 0x9b, 0x63, 0x7c, 0xa4, 0x4c, 0xaa, 0xb5, 0x9e, 0x2b, 0x19, 0xd3, 0x4c, 0x18, 0xa3,
|
0x93, 0x08, 0x37, 0xc7, 0xf8, 0x50, 0x99, 0x54, 0x6b, 0x3d, 0x57, 0x32, 0xa6, 0x99, 0x30, 0x46,
|
||||||
0x7b, 0x0b, 0x33, 0xa3, 0x1f, 0x53, 0x3e, 0x4e, 0x0a, 0xb4, 0x4c, 0x3e, 0xa4, 0x65, 0x4a, 0x85,
|
0xf7, 0x16, 0x66, 0x46, 0x3f, 0xa6, 0x7c, 0x9a, 0x14, 0x68, 0x99, 0x7c, 0x48, 0xcb, 0x94, 0x0a,
|
||||||
0x1e, 0xbb, 0x91, 0x86, 0xc8, 0x86, 0x0d, 0xa2, 0xbd, 0x27, 0xd1, 0x20, 0xda, 0x8f, 0x06, 0x1f,
|
0x3d, 0x76, 0x2d, 0x0d, 0x91, 0x0d, 0x1b, 0x44, 0x7b, 0x4f, 0xa2, 0x41, 0xb4, 0x1f, 0xed, 0xad,
|
||||||
0x2f, 0x2e, 0xd6, 0xdc, 0xf5, 0x33, 0x5a, 0x96, 0x6a, 0xae, 0x62, 0x7f, 0x83, 0xa0, 0xc1, 0x59,
|
0x89, 0xeb, 0x67, 0x54, 0x2c, 0xd5, 0x5c, 0xc5, 0xfe, 0xfa, 0x40, 0x53, 0xb3, 0x36, 0x76, 0x17,
|
||||||
0x1b, 0xbb, 0x0b, 0x76, 0xdc, 0x4d, 0x8d, 0xcc, 0x14, 0xa5, 0x6b, 0xef, 0xae, 0x0d, 0xdb, 0x5b,
|
0xd4, 0xb8, 0x9b, 0x1a, 0x99, 0x29, 0xca, 0xd5, 0xde, 0x6d, 0x03, 0xb6, 0xb7, 0xa2, 0x7d, 0x4b,
|
||||||
0xd1, 0xc1, 0x25, 0xdd, 0x85, 0xc0, 0x84, 0x4a, 0x36, 0xb4, 0x6a, 0x2b, 0x99, 0x2a, 0xb0, 0x8f,
|
0xba, 0x08, 0x81, 0x06, 0x95, 0x6c, 0x38, 0xd5, 0x56, 0x32, 0x55, 0xa0, 0x1e, 0x87, 0xf6, 0x30,
|
||||||
0x43, 0x87, 0x98, 0xaf, 0x8b, 0xb8, 0x77, 0xc4, 0xf2, 0x1a, 0x0d, 0xc4, 0xaf, 0xfa, 0x1e, 0x89,
|
0x5f, 0x57, 0x70, 0xef, 0x90, 0xe5, 0x35, 0xba, 0x87, 0x5f, 0xf5, 0x0d, 0x12, 0x7d, 0x00, 0xe3,
|
||||||
0x56, 0x80, 0x1b, 0x80, 0x59, 0xe1, 0x4a, 0x8a, 0xde, 0xa5, 0x19, 0x0d, 0x81, 0x40, 0x0d, 0x34,
|
0xbf, 0x59, 0xe1, 0x3e, 0x8a, 0xc6, 0xa5, 0x19, 0x4d, 0x80, 0x80, 0x0c, 0x1c, 0xd9, 0xfc, 0x54,
|
||||||
0xd9, 0xfc, 0x5a, 0xe1, 0xc7, 0xe2, 0x9d, 0xce, 0xa3, 0x5e, 0x3f, 0x0d, 0xd8, 0xfe, 0x60, 0xef,
|
0xe1, 0x67, 0xe2, 0x9d, 0xce, 0xa3, 0x5e, 0x3f, 0x0d, 0xd8, 0xfe, 0x60, 0xef, 0xd7, 0xdd, 0xfd,
|
||||||
0xd7, 0xdd, 0xfd, 0xc1, 0xfe, 0x3e, 0x7b, 0x99, 0x1b, 0xdc, 0xf7, 0x14, 0x78, 0x74, 0x94, 0xe6,
|
0xc1, 0xfe, 0x3e, 0x7b, 0x95, 0x1b, 0x5c, 0xf6, 0x14, 0x48, 0x74, 0x94, 0xe6, 0x4b, 0xba, 0x2a,
|
||||||
0x4b, 0xba, 0x2d, 0xb7, 0x6d, 0xeb, 0x1c, 0x0d, 0x0d, 0x17, 0x11, 0xa0, 0x0f, 0xa3, 0x9a, 0xae,
|
0xb7, 0x3d, 0xeb, 0x0c, 0xdd, 0x0c, 0xb7, 0x10, 0x40, 0x0f, 0xa3, 0x9a, 0x96, 0xfb, 0x53, 0x60,
|
||||||
0xfb, 0x53, 0x60, 0x4c, 0x0a, 0x3d, 0x89, 0x17, 0xb8, 0x28, 0x4a, 0x13, 0x9f, 0x9f, 0xbd, 0x3c,
|
0x4c, 0x0a, 0x3d, 0x89, 0x17, 0xb8, 0x25, 0x4a, 0x13, 0x9f, 0x9d, 0xbe, 0x3a, 0x79, 0x3b, 0x3a,
|
||||||
0x7d, 0x33, 0x3a, 0xfd, 0x3a, 0x0a, 0xbd, 0x8b, 0xb3, 0x31, 0x2b, 0x1a, 0x4d, 0xde, 0x41, 0xb4,
|
0xf9, 0x36, 0x04, 0xbd, 0xf3, 0xd3, 0x31, 0x2b, 0x1a, 0x4d, 0xde, 0x41, 0xf4, 0xb9, 0xce, 0xd0,
|
||||||
0xba, 0xce, 0xd0, 0x91, 0x34, 0xf0, 0x0a, 0x6e, 0x58, 0x8b, 0x86, 0x09, 0x6a, 0xc5, 0xcd, 0xad,
|
0x91, 0x34, 0xf0, 0x0a, 0x6e, 0x58, 0x8b, 0x6e, 0x09, 0x5e, 0xc5, 0xb5, 0xad, 0xec, 0x08, 0xc1,
|
||||||
0xec, 0x38, 0xc1, 0xaa, 0x8a, 0x53, 0xf5, 0xfa, 0x5b, 0x2d, 0xf3, 0x17, 0x55, 0x22, 0x7d, 0xda,
|
0xaa, 0x8a, 0x53, 0xe9, 0xfa, 0x2b, 0x2d, 0xf3, 0xb7, 0x54, 0x62, 0x7c, 0xda, 0xd2, 0xd0, 0x2b,
|
||||||
0xd2, 0x30, 0x2c, 0x55, 0x0c, 0xf1, 0x45, 0xf3, 0x4b, 0xc0, 0x77, 0x47, 0xdc, 0xaf, 0x27, 0xdc,
|
0x95, 0x0b, 0x91, 0x45, 0xf3, 0x33, 0xc0, 0x77, 0xe7, 0xdb, 0x6f, 0xc7, 0xdb, 0xde, 0x4f, 0xcd,
|
||||||
0xde, 0x4f, 0x8d, 0xb8, 0x31, 0xf5, 0x1d, 0x7c, 0xd0, 0x64, 0x4f, 0x63, 0x3e, 0xfd, 0xd2, 0xf8,
|
0xb7, 0x31, 0x35, 0x1d, 0x7c, 0xd0, 0x58, 0x4f, 0x33, 0x3e, 0xfd, 0xcc, 0xf8, 0x3f, 0x8a, 0x84,
|
||||||
0x3f, 0x10, 0x73, 0x7a, 0x48, 0x79, 0x14, 0x00, 0x00
|
0x1c, 0x46, 0x76, 0x14, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_um.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_um.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_um_length = 2721;
|
const uint16_t PAGE_settings_um_length = 2721;
|
||||||
const uint8_t PAGE_settings_um[] PROGMEM = {
|
const uint8_t PAGE_settings_um[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xcd, 0x59, 0x5b, 0x73, 0xdb, 0xb8,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x59, 0x5b, 0x73, 0xdb, 0xb8,
|
||||||
0x15, 0x7e, 0xd7, 0xaf, 0xa0, 0x11, 0x8f, 0x4d, 0x8e, 0x69, 0x4a, 0x4e, 0x76, 0x3b, 0x59, 0x49,
|
0x15, 0x7e, 0xd7, 0xaf, 0xa0, 0x11, 0x8f, 0x4d, 0x8e, 0x69, 0x4a, 0x4e, 0x76, 0x3b, 0x59, 0x49,
|
||||||
0x90, 0x9b, 0x38, 0xc9, 0x46, 0x8d, 0xb3, 0xf6, 0x54, 0x7b, 0x99, 0x8e, 0xeb, 0x89, 0x69, 0x11,
|
0x90, 0x9b, 0x38, 0xc9, 0x46, 0x8d, 0xb3, 0xf6, 0x54, 0x7b, 0x99, 0x8e, 0xeb, 0x89, 0x69, 0x11,
|
||||||
0x92, 0x10, 0x53, 0x00, 0x4b, 0x80, 0xbe, 0x54, 0xd6, 0x7f, 0xef, 0x77, 0x40, 0x52, 0xa2, 0x7c,
|
0x92, 0x10, 0x53, 0x00, 0x4b, 0x80, 0xbe, 0x54, 0xd6, 0x7f, 0xef, 0x77, 0x40, 0x52, 0xa2, 0x7c,
|
||||||
@@ -1805,7 +1805,7 @@ const uint8_t PAGE_settings_um[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_2D.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_2D.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_2D_length = 1754;
|
const uint16_t PAGE_settings_2D_length = 1754;
|
||||||
const uint8_t PAGE_settings_2D[] PROGMEM = {
|
const uint8_t PAGE_settings_2D[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x8d, 0x58, 0x6d, 0x73, 0xdb, 0x36,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x8d, 0x58, 0x6d, 0x73, 0xdb, 0x36,
|
||||||
0x12, 0xfe, 0xce, 0x5f, 0x01, 0x63, 0x3a, 0x2d, 0xd9, 0x50, 0x94, 0xe4, 0xde, 0x75, 0x3a, 0x16,
|
0x12, 0xfe, 0xce, 0x5f, 0x01, 0x63, 0x3a, 0x2d, 0xd9, 0x50, 0x94, 0xe4, 0xde, 0x75, 0x3a, 0x16,
|
||||||
0x49, 0x37, 0x6e, 0xdc, 0xda, 0x1d, 0x7b, 0xe2, 0x89, 0x72, 0xce, 0xdc, 0x5c, 0x3a, 0x29, 0x44,
|
0x49, 0x37, 0x6e, 0xdc, 0xda, 0x1d, 0x7b, 0xe2, 0x89, 0x72, 0xce, 0xdc, 0x5c, 0x3a, 0x29, 0x44,
|
||||||
0xae, 0x44, 0xc4, 0x24, 0xc0, 0x01, 0x20, 0xd9, 0xae, 0xe2, 0xff, 0x7e, 0x0b, 0x90, 0x12, 0x25,
|
0xae, 0x44, 0xc4, 0x24, 0xc0, 0x01, 0x20, 0xd9, 0xae, 0xe2, 0xff, 0x7e, 0x0b, 0x90, 0x12, 0x25,
|
||||||
@@ -1921,7 +1921,7 @@ const uint8_t PAGE_settings_2D[] PROGMEM = {
|
|||||||
// Autogenerated from wled00/data/settings_pin.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_pin.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_pin_length = 471;
|
const uint16_t PAGE_settings_pin_length = 471;
|
||||||
const uint8_t PAGE_settings_pin[] PROGMEM = {
|
const uint8_t PAGE_settings_pin[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x5d, 0x52, 0x4d, 0x6f, 0x13, 0x31,
|
||||||
0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0x6c, 0xa8, 0xa8, 0x04, 0xaa, 0xbd, 0x42,
|
0x10, 0xbd, 0xef, 0xaf, 0x30, 0x73, 0x69, 0x82, 0x92, 0x6c, 0xa8, 0xa8, 0x04, 0xaa, 0xbd, 0x42,
|
||||||
0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x52, 0x55, 0x55, 0xe5, 0xd8, 0xb3, 0x89, 0x55, 0x7f, 0x2c,
|
0x81, 0x1e, 0xb8, 0x94, 0x48, 0xe5, 0x52, 0x55, 0x55, 0xe5, 0xd8, 0xb3, 0x89, 0x55, 0x7f, 0x2c,
|
||||||
0xb6, 0x37, 0x21, 0x54, 0xfc, 0x77, 0xc6, 0xbb, 0xa1, 0xa0, 0x5c, 0xd6, 0x7e, 0x33, 0xe3, 0x37,
|
0xb6, 0x37, 0x21, 0x54, 0xfc, 0x77, 0xc6, 0xbb, 0xa1, 0xa0, 0x5c, 0xd6, 0x7e, 0x33, 0xe3, 0x37,
|
||||||
|
|||||||
2278
wled00/html_simple.h
2278
wled00/html_simple.h
File diff suppressed because it is too large
Load Diff
3964
wled00/html_ui.h
3964
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "palettes.h"
|
#include "palettes.h"
|
||||||
|
|
||||||
// begin WLEDSR
|
// begin WLEDMM
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
#include <Esp.h>
|
#include <Esp.h>
|
||||||
// get the right RTC.H for each MCU
|
// get the right RTC.H for each MCU
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
#include <Esp.h>
|
#include <Esp.h>
|
||||||
#include <user_interface.h>
|
#include <user_interface.h>
|
||||||
#endif
|
#endif
|
||||||
// end WLEDSR
|
// end WLEDMM
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JSON API (De)serialization
|
* JSON API (De)serialization
|
||||||
@@ -34,7 +34,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
byte id = elem["id"] | it;
|
byte id = elem["id"] | it;
|
||||||
if (id >= strip.getMaxSegments()) return;
|
if (id >= strip.getMaxSegments()) return;
|
||||||
|
|
||||||
//WLEDSR: add compatibility for SR presets
|
//WLEDMM: add compatibility for SR presets
|
||||||
#ifndef WLED_DISABLE_2D
|
#ifndef WLED_DISABLE_2D
|
||||||
// Serial.printf("before %d: %s %s %s %s\n", id, elem["start"].as<std::string>().c_str(), elem["stop"].as<std::string>().c_str(), elem["startY"].as<std::string>().c_str(), elem["stopY"].as<std::string>().c_str());
|
// Serial.printf("before %d: %s %s %s %s\n", id, elem["start"].as<std::string>().c_str(), elem["stop"].as<std::string>().c_str(), elem["startY"].as<std::string>().c_str(), elem["stopY"].as<std::string>().c_str());
|
||||||
if (strip.isMatrix && !elem["start"].isNull() && !elem["stop"].isNull() && elem["startY"].isNull() && elem["stopY"].isNull()) {
|
if (strip.isMatrix && !elem["start"].isNull() && !elem["stop"].isNull() && elem["startY"].isNull() && elem["stopY"].isNull()) {
|
||||||
@@ -123,7 +123,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
uint8_t soundSim = elem["ssim"] | seg.soundSim;
|
uint8_t soundSim = elem["ssim"] | seg.soundSim;
|
||||||
uint8_t map1D2D = elem["mp12"] | seg.map1D2D;
|
uint8_t map1D2D = elem["mp12"] | seg.map1D2D;
|
||||||
|
|
||||||
//WLEDSR jMap
|
//WLEDMM jMap
|
||||||
if (map1D2D == M12_jMap && !seg.jMap)
|
if (map1D2D == M12_jMap && !seg.jMap)
|
||||||
seg.createjMap();
|
seg.createjMap();
|
||||||
if (map1D2D != M12_jMap && seg.jMap)
|
if (map1D2D != M12_jMap && seg.jMap)
|
||||||
@@ -156,7 +156,7 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
if (elem["on"].is<const char*>() && elem["on"].as<const char*>()[0] == 't') on = !on;
|
if (elem["on"].is<const char*>() && elem["on"].as<const char*>()[0] == 't') on = !on;
|
||||||
seg.setOption(SEG_OPTION_ON, on); // use transition
|
seg.setOption(SEG_OPTION_ON, on); // use transition
|
||||||
|
|
||||||
//WLEDSR Custom Effects (but general usable)
|
//WLEDMM Custom Effects (but general usable)
|
||||||
bool reset = elem["reset"];
|
bool reset = elem["reset"];
|
||||||
if (reset)
|
if (reset)
|
||||||
seg.markForReset();
|
seg.markForReset();
|
||||||
@@ -593,7 +593,7 @@ void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// begin WLEDSR
|
// begin WLEDMM
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
static String resetCode2Info(int reason) {
|
static String resetCode2Info(int reason) {
|
||||||
switch(reason) {
|
switch(reason) {
|
||||||
@@ -649,11 +649,12 @@ static String resetCode2Info(int reason) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// end WLEDSR
|
// end WLEDMM
|
||||||
|
|
||||||
void serializeInfo(JsonObject root)
|
void serializeInfo(JsonObject root)
|
||||||
{
|
{
|
||||||
root[F("ver")] = versionString;
|
root[F("ver")] = versionString;
|
||||||
|
root[F("rel")] = releaseString; //WLEDMM to add bin name
|
||||||
root[F("vid")] = VERSION;
|
root[F("vid")] = VERSION;
|
||||||
//root[F("cn")] = WLED_CODENAME;
|
//root[F("cn")] = WLED_CODENAME;
|
||||||
|
|
||||||
@@ -769,11 +770,11 @@ void serializeInfo(JsonObject root)
|
|||||||
//root[F("maxalloc")] = ESP.getMaxAllocHeap();
|
//root[F("maxalloc")] = ESP.getMaxAllocHeap();
|
||||||
#ifdef WLED_DEBUG
|
#ifdef WLED_DEBUG
|
||||||
root[F("resetReason0")] = (int)rtc_get_reset_reason(0);
|
root[F("resetReason0")] = (int)rtc_get_reset_reason(0);
|
||||||
if(ESP.getChipCores() > 1) // WLEDSR
|
if(ESP.getChipCores() > 1) // WLEDMM
|
||||||
root[F("resetReason1")] = (int)rtc_get_reset_reason(1);
|
root[F("resetReason1")] = (int)rtc_get_reset_reason(1);
|
||||||
#endif
|
#endif
|
||||||
root[F("lwip")] = 0; //deprecated
|
root[F("lwip")] = 0; //deprecated
|
||||||
root[F("totalheap")] = ESP.getHeapSize(); //WLEDSR
|
root[F("totalheap")] = ESP.getHeapSize(); //WLEDMM
|
||||||
#else
|
#else
|
||||||
root[F("arch")] = "esp8266";
|
root[F("arch")] = "esp8266";
|
||||||
root[F("core")] = ESP.getCoreVersion();
|
root[F("core")] = ESP.getCoreVersion();
|
||||||
@@ -785,24 +786,24 @@ void serializeInfo(JsonObject root)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
root[F("freeheap")] = ESP.getFreeHeap();
|
root[F("freeheap")] = ESP.getFreeHeap();
|
||||||
//WLEDSR: conditional on esp32
|
//WLEDMM: conditional on esp32
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
root[F("minfreeheap")] = ESP.getMinFreeHeap();
|
root[F("minfreeheap")] = ESP.getMinFreeHeap();
|
||||||
#endif
|
#endif
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) && defined(BOARD_HAS_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) && defined(BOARD_HAS_PSRAM)
|
||||||
if (psramFound()) {
|
if (psramFound()) {
|
||||||
root[F("tpram")] = ESP.getPsramSize(); //WLEDSR
|
root[F("tpram")] = ESP.getPsramSize(); //WLEDMM
|
||||||
root[F("psram")] = ESP.getFreePsram();
|
root[F("psram")] = ESP.getFreePsram();
|
||||||
root[F("psusedram")] = ESP.getMinFreePsram();
|
root[F("psusedram")] = ESP.getMinFreePsram();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
// for testing
|
// for testing
|
||||||
// root[F("tpram")] = 4194304; //WLEDSR
|
// root[F("tpram")] = 4194304; //WLEDMM
|
||||||
// root[F("psram")] = 4193000;
|
// root[F("psram")] = 4193000;
|
||||||
// root[F("psusedram")] = 3083000;
|
// root[F("psusedram")] = 3083000;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// begin WLEDSR
|
// begin WLEDMM
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
root[F("e32core0code")] = (int)rtc_get_reset_reason(0);
|
root[F("e32core0code")] = (int)rtc_get_reset_reason(0);
|
||||||
root[F("e32core0text")] = resetCode2Info(rtc_get_reset_reason(0));
|
root[F("e32core0text")] = resetCode2Info(rtc_get_reset_reason(0));
|
||||||
@@ -831,7 +832,7 @@ void serializeInfo(JsonObject root)
|
|||||||
root[F("e32core0code")] = (int)ESP.getResetInfoPtr()->reason;
|
root[F("e32core0code")] = (int)ESP.getResetInfoPtr()->reason;
|
||||||
root[F("e32core0text")] = F("");
|
root[F("e32core0text")] = F("");
|
||||||
#endif
|
#endif
|
||||||
// end WLEDSR
|
// end WLEDMM
|
||||||
|
|
||||||
root[F("uptime")] = millis()/1000 + rolloverMillis*4294967;
|
root[F("uptime")] = millis()/1000 + rolloverMillis*4294967;
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ void handlePresets()
|
|||||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
// this does not make sense on single core
|
// this does not make sense on single core
|
||||||
core = xPortGetCoreID();
|
core = xPortGetCoreID();
|
||||||
// begin WLEDSR specific
|
// begin WLEDMM specific
|
||||||
// loopTask (arduino main loop) sometimes runs on core #1
|
// loopTask (arduino main loop) sometimes runs on core #1
|
||||||
if ((core == 1) && (strncmp(pcTaskGetTaskName(NULL), "loopTask", 8) == 0)) {
|
if ((core == 1) && (strncmp(pcTaskGetTaskName(NULL), "loopTask", 8) == 0)) {
|
||||||
DEBUG_PRINTF("[applyPreset] called from loopTask on core %d; forcing core = 0\n", (int)core);
|
DEBUG_PRINTF("[applyPreset] called from loopTask on core %d; forcing core = 0\n", (int)core);
|
||||||
@@ -138,7 +138,7 @@ void handlePresets()
|
|||||||
DEBUG_PRINTF("[applyPreset] called from async_tcp on core %d; forcing core = 1\n", (int)core);
|
DEBUG_PRINTF("[applyPreset] called from async_tcp on core %d; forcing core = 1\n", (int)core);
|
||||||
core = 1;
|
core = 1;
|
||||||
}
|
}
|
||||||
// end WLEDSR specific
|
// end WLEDMM specific
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
//only allow use of fileDoc from the core responsible for network requests (AKA HTTP JSON API)
|
//only allow use of fileDoc from the core responsible for network requests (AKA HTTP JSON API)
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
#include "../usermods/ADS1115_v2/usermod_ads1115.h"
|
#include "../usermods/ADS1115_v2/usermod_ads1115.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//WLEDSR Custom Effects
|
//WLEDMM Custom Effects
|
||||||
#ifdef USERMOD_CUSTOMEFFECTS
|
#ifdef USERMOD_CUSTOMEFFECTS
|
||||||
#include "../usermods/customeffects/usermod_v2_customeffects.h"
|
#include "../usermods/customeffects/usermod_v2_customeffects.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -324,7 +324,7 @@ void registerUsermods()
|
|||||||
usermods.add(new ADS1115Usermod());
|
usermods.add(new ADS1115Usermod());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//WLEDSR Custom Effects
|
//WLEDMM Custom Effects
|
||||||
#ifdef USERMOD_CUSTOMEFFECTS
|
#ifdef USERMOD_CUSTOMEFFECTS
|
||||||
usermods.add(new CustomEffectsUserMod());
|
usermods.add(new CustomEffectsUserMod());
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ using PSRAMDynamicJsonDocument = BasicJsonDocument<PSRAM_Allocator>;
|
|||||||
|
|
||||||
// Global Variable definitions
|
// Global Variable definitions
|
||||||
WLED_GLOBAL char versionString[] _INIT(TOSTRING(WLED_VERSION));
|
WLED_GLOBAL char versionString[] _INIT(TOSTRING(WLED_VERSION));
|
||||||
WLED_GLOBAL char releaseString[] _INIT(TOSTRING(WLED_RELEASE_NAME)); //WLEDSR: to show on update page
|
WLED_GLOBAL char releaseString[] _INIT(TOSTRING(WLED_RELEASE_NAME)); //WLEDMM: to show on update page
|
||||||
#define WLED_CODENAME "Hoshi"
|
#define WLED_CODENAME "Hoshi"
|
||||||
|
|
||||||
// AP and OTA default passwords (for maximum security change them!)
|
// AP and OTA default passwords (for maximum security change them!)
|
||||||
|
|||||||
@@ -45,18 +45,18 @@ void handleUpload(AsyncWebServerRequest *request, const String& filename, size_t
|
|||||||
request->_tempFile = WLED_FS.open(finalname, "w");
|
request->_tempFile = WLED_FS.open(finalname, "w");
|
||||||
DEBUG_PRINT(F("Uploading "));
|
DEBUG_PRINT(F("Uploading "));
|
||||||
DEBUG_PRINTLN(finalname);
|
DEBUG_PRINTLN(finalname);
|
||||||
if (finalname.equals("/presets.json")) presetsModifiedTime = toki.second(); // WLEDSR
|
if (finalname.equals("/presets.json")) presetsModifiedTime = toki.second(); // WLEDMM
|
||||||
}
|
}
|
||||||
if (len) {
|
if (len) {
|
||||||
request->_tempFile.write(data,len);
|
request->_tempFile.write(data,len);
|
||||||
}
|
}
|
||||||
if (final) {
|
if (final) {
|
||||||
request->_tempFile.close();
|
request->_tempFile.close();
|
||||||
if (filename.equalsIgnoreCase("/cfg.json") || filename.equalsIgnoreCase("cfg.json")) { // WLEDSR
|
if (filename.equalsIgnoreCase("/cfg.json") || filename.equalsIgnoreCase("cfg.json")) { // WLEDMM
|
||||||
request->send(200, "text/plain", F("Configuration restore successful.\nRebooting..."));
|
request->send(200, "text/plain", F("Configuration restore successful.\nRebooting..."));
|
||||||
doReboot = true;
|
doReboot = true;
|
||||||
} else {
|
} else {
|
||||||
if (filename.equals("/presets.json") || filename.equals("presets.json")) { // WLEDSR
|
if (filename.equals("/presets.json") || filename.equals("presets.json")) { // WLEDMM
|
||||||
request->send(200, "text/plain", F("Presets File Uploaded!"));
|
request->send(200, "text/plain", F("Presets File Uploaded!"));
|
||||||
} else
|
} else
|
||||||
request->send(200, "text/plain", F("File Uploaded!"));
|
request->send(200, "text/plain", F("File Uploaded!"));
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ bool sendLiveLedsWs(uint32_t wsClient)
|
|||||||
uint16_t used = strip.getLengthTotal();
|
uint16_t used = strip.getLengthTotal();
|
||||||
const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 1024 : 256;
|
const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 1024 : 256;
|
||||||
uint16_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS
|
uint16_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS
|
||||||
uint16_t pos = (strip.isMatrix ? 6 : 2); //WLEDSR 6 instead of 4
|
uint16_t pos = (strip.isMatrix ? 6 : 2); //WLEDMM 6 instead of 4
|
||||||
uint16_t bufSize = pos + (used/n)*3;
|
uint16_t bufSize = pos + (used/n)*3;
|
||||||
AsyncWebSocketMessageBuffer * wsBuf = ws.makeBuffer(bufSize);
|
AsyncWebSocketMessageBuffer * wsBuf = ws.makeBuffer(bufSize);
|
||||||
if (!wsBuf) return false; //out of memory
|
if (!wsBuf) return false; //out of memory
|
||||||
@@ -163,8 +163,8 @@ bool sendLiveLedsWs(uint32_t wsClient)
|
|||||||
buffer[1] = 2; //version
|
buffer[1] = 2; //version
|
||||||
buffer[2] = strip.matrixWidth;
|
buffer[2] = strip.matrixWidth;
|
||||||
buffer[3] = strip.matrixHeight;
|
buffer[3] = strip.matrixHeight;
|
||||||
buffer[4] = currentPreset; //WLEDSR
|
buffer[4] = currentPreset; //WLEDMM
|
||||||
buffer[5] = currentPlaylist; //WLEDSR
|
buffer[5] = currentPlaylist; //WLEDMM
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -719,8 +719,8 @@ void getSettingsJS(byte subPage, char* dest)
|
|||||||
|
|
||||||
if (subPage == 9) // update
|
if (subPage == 9) // update
|
||||||
{
|
{
|
||||||
//WLEDSR: show bin name
|
//WLEDMM: show bin name
|
||||||
sappends('m',SET_F("(\"sip\")[0]"),(char*)F("WLED_"));
|
sappends('m',SET_F("(\"sip\")[0]"),(char*)F("WLEDMM_"));
|
||||||
olen -= 2; //delete ";
|
olen -= 2; //delete ";
|
||||||
oappend(versionString);
|
oappend(versionString);
|
||||||
oappend(SET_F("_"));
|
oappend(SET_F("_"));
|
||||||
|
|||||||
Reference in New Issue
Block a user