Merge remote-tracking branch 'origin/ac_main' into mdev
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
## WLED changelog
|
||||
|
||||
### WLED release 0.14.0-b1
|
||||
|
||||
#### Build 2212222
|
||||
|
||||
- Version bump to v0.14.0-b1 "Hoshi"
|
||||
- Full changelog TBD
|
||||
|
||||
### WLED release 0.13.3
|
||||
|
||||
- Version bump to v0.13.3 "Toki"
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.12",
|
||||
"version": "0.14.0.13",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wled",
|
||||
"version": "0.14.0.12",
|
||||
"version": "0.14.0.13",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"clean-css": "^4.2.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.12",
|
||||
"version": "0.14.0.13",
|
||||
"description": "Tools for WLED project",
|
||||
"main": "tools/cdata.js",
|
||||
"directories": {
|
||||
|
||||
@@ -238,6 +238,7 @@ build_flags = -g
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
#use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x
|
||||
-D LOROL_LITTLEFS
|
||||
; -DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when builing with arduino-esp32 >=2.0.3
|
||||
|
||||
default_partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
|
||||
@@ -276,7 +277,9 @@ build_flags = -g
|
||||
-DCONFIG_IDF_TARGET_ESP32S2
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-DCO
|
||||
-DARDUINO_USB_MODE=0 ;; WLEDMM - mandatory for ESP32-S2 when builing with arduino-esp32 >=2.0.3
|
||||
-DARDUINO_USB_MODE=0 ;; this flag is mandatory for ESP32-S2 !
|
||||
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
|
||||
;; ARDUINO_USB_CDC_ON_BOOT, ARDUINO_USB_MSC_ON_BOOT, ARDUINO_USB_DFU_ON_BOOT
|
||||
|
||||
lib_deps =
|
||||
${env.lib_deps}
|
||||
@@ -290,7 +293,9 @@ build_flags = -g
|
||||
-DCONFIG_IDF_TARGET_ESP32C3
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-DCO
|
||||
-DARDUINO_USB_MODE=1 ;; WLEDMM - mandatory for ESP32-C3 when builing with arduino-esp32 >=2.0.3
|
||||
-DARDUINO_USB_MODE=1 ;; this flag is mandatory for ESP32-C3
|
||||
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
|
||||
;; ARDUINO_USB_CDC_ON_BOOT
|
||||
|
||||
lib_deps =
|
||||
${env.lib_deps}
|
||||
@@ -306,6 +311,8 @@ build_flags = -g
|
||||
-DCONFIG_IDF_TARGET_ESP32S3
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-DCO
|
||||
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
|
||||
;; ARDUINO_USB_MODE, ARDUINO_USB_CDC_ON_BOOT, ARDUINO_USB_MSC_ON_BOOT, ARDUINO_USB_DFU_ON_BOOT
|
||||
|
||||
lib_deps =
|
||||
${env.lib_deps}
|
||||
@@ -325,7 +332,7 @@ platform = ${common.platform_wled_default}
|
||||
platform_packages = ${common.platform_packages}
|
||||
board_build.ldscript = ${common.ldscript_4m1m}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 #-DWLED_DISABLE_2D
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 -D WLED_DISABLE_BLYNK #-DWLED_DISABLE_2D
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
monitor_filters = esp8266_exception_decoder
|
||||
|
||||
@@ -335,7 +342,7 @@ platform = ${common.platform_wled_default}
|
||||
platform_packages = ${common.platform_packages}
|
||||
board_build.ldscript = ${common.ldscript_2m512k}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02 -D WLED_DISABLE_BLYNK
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
|
||||
[env:esp01_1m_full]
|
||||
@@ -344,7 +351,7 @@ platform = ${common.platform_wled_default}
|
||||
platform_packages = ${common.platform_packages}
|
||||
board_build.ldscript = ${common.ldscript_1m128k}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_DISABLE_OTA -D WLED_DISABLE_BLYNK
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
|
||||
[env:esp07]
|
||||
@@ -390,7 +397,7 @@ board = esp32dev
|
||||
platform = ${esp32.platform}
|
||||
platform_packages = ${esp32.platform_packages}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET
|
||||
build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32 -D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET
|
||||
lib_deps = ${esp32.lib_deps}
|
||||
monitor_filters = esp32_exception_decoder
|
||||
board_build.partitions = ${esp32.default_partitions}
|
||||
@@ -400,7 +407,7 @@ board = esp32dev
|
||||
platform = ${esp32.platform}
|
||||
platform_packages = ${esp32.platform_packages}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_qio80 #-D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET
|
||||
build_flags = ${common.build_flags_esp32} -D WLED_RELEASE_NAME=ESP32_qio80 -D WLED_DISABLE_BLYNK #-D WLED_DISABLE_BROWNOUT_DET
|
||||
lib_deps = ${esp32.lib_deps}
|
||||
monitor_filters = esp32_exception_decoder
|
||||
board_build.partitions = ${esp32.default_partitions}
|
||||
@@ -438,10 +445,12 @@ platform = ${esp32.platformV4}
|
||||
platform_packages = ${esp32.platformV4_packages}
|
||||
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=ESP32-C3
|
||||
-D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0
|
||||
-D WLED_USE_MY_CONFIG
|
||||
; -D USERMOD_AUDIOREACTIVE
|
||||
-D USERMOD_CUSTOMEFFECTS
|
||||
-D WLED_WATCHDOG_TIMEOUT=0
|
||||
; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual USB
|
||||
-D CONFIG_LITTLEFS_FOR_IDF_3_2 ; WLEDMM
|
||||
-D WLED_USE_MY_CONFIG ; WLEDMM
|
||||
; -D USERMOD_AUDIOREACTIVE ; WLEDMM
|
||||
-D USERMOD_CUSTOMEFFECTS ; WLEDMM
|
||||
upload_speed = 460800
|
||||
build_unflags = ${common.build_unflags}
|
||||
lib_deps = ${esp32c3.lib_deps}
|
||||
|
||||
@@ -273,9 +273,9 @@ function onLoad()
|
||||
function updateTablinks(tabI)
|
||||
{
|
||||
var tablinks = gEBCN("tablinks");
|
||||
for (var i of tablinks) i.classList.remove("active");
|
||||
for (var i of tablinks) i.classList.remove('active');
|
||||
if (pcMode) return;
|
||||
tablinks[tabI].classList.add("active");
|
||||
tablinks[tabI].classList.add('active');
|
||||
}
|
||||
|
||||
function openTab(tabI, force = false)
|
||||
@@ -291,13 +291,13 @@ var timeout;
|
||||
function showToast(text, error = false)
|
||||
{
|
||||
if (error) gId('connind').style.backgroundColor = "var(--c-r)";
|
||||
var x = gId("toast");
|
||||
var x = gId('toast');
|
||||
//if (error) text += '<i class="icons btn-icon" style="transform:rotate(45deg);position:absolute;top:10px;right:0px;" onclick="clearErrorToast(100);"></i>';
|
||||
x.innerHTML = text;
|
||||
x.classList.add(error ? "error":"show");
|
||||
x.classList.add(error ? 'error':'show');
|
||||
clearTimeout(timeout);
|
||||
x.style.animation = 'none';
|
||||
timeout = setTimeout(()=>{ x.classList.remove("show"); }, 2900);
|
||||
timeout = setTimeout(()=>{ x.classList.remove('show'); }, 2900);
|
||||
if (error) console.log(text);
|
||||
}
|
||||
|
||||
@@ -308,12 +308,12 @@ function showErrorToast()
|
||||
|
||||
function clearErrorToast(n=5000)
|
||||
{
|
||||
var x = gId("toast");
|
||||
if (x.classList.contains("error")) {
|
||||
var x = gId('toast');
|
||||
if (x.classList.contains('error')) {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(()=>{
|
||||
x.classList.remove("show");
|
||||
x.classList.remove("error");
|
||||
x.classList.remove('show');
|
||||
x.classList.remove('error');
|
||||
}, n);
|
||||
}
|
||||
}
|
||||
@@ -544,8 +544,8 @@ function populateQL()
|
||||
for (var key of (pQL||[])) {
|
||||
cn += `<button class="btn btn-xs psts" id="p${key[0]}qlb" title="${key[2]?key[2]:''}" onclick="setPreset(${key[0]});">${key[1]}</button>`;
|
||||
}
|
||||
gId('pql').classList.add("expanded");
|
||||
} else gId('pql').classList.remove("expanded");
|
||||
gId('pql').classList.add('expanded');
|
||||
} else gId('pql').classList.remove('expanded');
|
||||
gId('pql').innerHTML = cn;
|
||||
}
|
||||
|
||||
@@ -610,8 +610,8 @@ function parseInfo(i) {
|
||||
mh = i.leds.matrix ? i.leds.matrix.h : 0;
|
||||
isM = mw>0 && mh>0;
|
||||
if (!isM) {
|
||||
gId("filter1D").classList.add("hide");
|
||||
//gId("filter2D").classList.add("hide");
|
||||
gId("filter1D").classList.add('hide');
|
||||
//gId("filter2D").classList.add('hide');
|
||||
hideModes("2D");
|
||||
}
|
||||
// if (i.noaudio) {
|
||||
@@ -713,7 +713,7 @@ function populateSegments(s)
|
||||
if (i > lSeg) lSeg = i;
|
||||
|
||||
let sg = gId(`seg${i}`);
|
||||
let exp = sg ? (sg.classList.contains("expanded") || (i===0 && cfg.comp.segexp)) : false;
|
||||
let exp = sg ? (sg.classList.contains('expanded') || (i===0 && cfg.comp.segexp)) : false;
|
||||
|
||||
let segp = `<div id="segp${i}" class="sbs">
|
||||
<i class="icons e-icon pwr ${inst.on ? "act":""}" id="seg${i}pwr" onclick="setSegPwr(${i})"></i>
|
||||
@@ -836,9 +836,9 @@ function populateSegments(s)
|
||||
for (const k of (li.maps||[])) cont += `<option value="${k}">${k==0?'Default':'ledmap'+k+'.json'}</option>`;
|
||||
cont += "</select></div>";
|
||||
gId("ledmap").innerHTML = cont;
|
||||
gId("ledmap").classList.remove("hide");
|
||||
gId("ledmap").classList.remove('hide');
|
||||
} else {
|
||||
gId("ledmap").classList.add("hide");
|
||||
gId("ledmap").classList.add('hide');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1082,20 +1082,20 @@ function updateLen(s)
|
||||
let tPL = gId(`seg${s}lbtm`);
|
||||
if (stop-start>1 && stopY-startY>1) {
|
||||
// 2D segment
|
||||
if (tPL) tPL.classList.remove("hide"); // unhide transpose checkbox
|
||||
if (tPL) tPL.classList.remove('hide'); // unhide transpose checkbox
|
||||
let sE = gId('fxlist').querySelector(`.lstI[data-id="${selectedFx}"]`);
|
||||
if (sE) {
|
||||
let sN = sE.querySelector(".lstIname").innerText;
|
||||
let seg = gId(`seg${s}map2D`);
|
||||
if (seg) {
|
||||
if(sN.indexOf("\u25A6")<0) seg.classList.remove("hide"); // unhide mapping for 1D effects (| in name)
|
||||
else seg.classList.add("hide"); // hide mapping otherwise
|
||||
if(sN.indexOf("\u25A6")<0) seg.classList.remove('hide'); // unhide mapping for 1D effects (| in name)
|
||||
else seg.classList.add('hide'); // hide mapping otherwise
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 1D segment in 2D set-up
|
||||
if (tPL) {
|
||||
tPL.classList.add("hide"); // hide transpose checkbox
|
||||
tPL.classList.add('hide'); // hide transpose checkbox
|
||||
gId(`seg${s}tp`).checked = false; // and uncheck it
|
||||
}
|
||||
}
|
||||
@@ -1127,7 +1127,7 @@ function updatePA()
|
||||
ps = gEBCN("psts"); for (let p of ps) p.classList.remove('selected');
|
||||
if (currentPreset > 0) {
|
||||
var acv = gId(`p${currentPreset}o`);
|
||||
if (acv /*&& !acv.classList.contains("expanded")*/) {
|
||||
if (acv /*&& !acv.classList.contains('expanded')*/) {
|
||||
acv.classList.add('selected');
|
||||
/*
|
||||
// scroll selected preset into view (on WS refresh)
|
||||
@@ -1144,13 +1144,13 @@ function updatePA()
|
||||
|
||||
function updateUI()
|
||||
{
|
||||
gId('buttonPower').className = (isOn) ? "active":"";
|
||||
gId('buttonNl').className = (nlA) ? "active":"";
|
||||
gId('buttonSync').className = (syncSend) ? "active":"";
|
||||
gId('buttonPower').className = (isOn) ? 'active':'';
|
||||
gId('buttonNl').className = (nlA) ? 'active':'';
|
||||
gId('buttonSync').className = (syncSend) ? 'active':'';
|
||||
showNodes();
|
||||
|
||||
updateSelectedPalette();
|
||||
updateSelectedFx();
|
||||
updateSelectedPalette(selectedPal); // must be after updateSelectedFx() to un-hide color slots for * palettes
|
||||
|
||||
updateTrail(gId('sliderBri'));
|
||||
updateTrail(gId('sliderSpeed'));
|
||||
@@ -1184,17 +1184,27 @@ function updateUI()
|
||||
updatePSliders();
|
||||
}
|
||||
|
||||
function updateSelectedPalette()
|
||||
function updateSelectedPalette(s)
|
||||
{
|
||||
var parent = gId('pallist');
|
||||
var selPaletteInput = parent.querySelector(`input[name="palette"][value="${selectedPal}"]`);
|
||||
var selPaletteInput = parent.querySelector(`input[name="palette"][value="${s}"]`);
|
||||
if (selPaletteInput) selPaletteInput.checked = true;
|
||||
|
||||
var selElement = parent.querySelector('.selected');
|
||||
if (selElement) selElement.classList.remove('selected');
|
||||
|
||||
var selectedPalette = parent.querySelector(`.lstI[data-id="${selectedPal}"]`);
|
||||
if (selectedPalette) parent.querySelector(`.lstI[data-id="${selectedPal}"]`).classList.add('selected');
|
||||
var selectedPalette = parent.querySelector(`.lstI[data-id="${s}"]`);
|
||||
if (selectedPalette) parent.querySelector(`.lstI[data-id="${s}"]`).classList.add('selected');
|
||||
|
||||
// in case of special palettes (* Colors...), force show color selectors (if hidden by effect data)
|
||||
let cd = gId('csl').children; // color selectors
|
||||
if (s > 1 && s < 6) {
|
||||
cd[0].classList.remove('hide'); // * Color 1
|
||||
if (s > 2) cd[1].classList.remove('hide'); // * Color 1 & 2
|
||||
if (s == 5) cd[2].classList.remove('hide'); // all colors
|
||||
} else {
|
||||
for (let i of cd) if (i.dataset.hide == '1') i.classList.add('hide');
|
||||
}
|
||||
}
|
||||
|
||||
function updateSelectedFx()
|
||||
@@ -1216,9 +1226,9 @@ function updateSelectedFx()
|
||||
|
||||
var selectedName = selectedEffect.querySelector(".lstIname").innerText;
|
||||
var segs = gId("segcont").querySelectorAll(`div[data-map="map2D"]`);
|
||||
for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove("hide"); else seg.classList.add("hide");
|
||||
for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove('hide'); else seg.classList.add('hide');
|
||||
var segs = gId("segcont").querySelectorAll(`div[data-snd="si"]`);
|
||||
for (const seg of segs) if (selectedName.indexOf("\u266A")<0 && selectedName.indexOf("\266B")<0) seg.classList.add("hide"); else seg.classList.remove("hide"); // also "♫ "?
|
||||
for (const seg of segs) if (selectedName.indexOf("\u266A")<0 && selectedName.indexOf("\266B")<0) seg.classList.add('hide'); else seg.classList.remove('hide'); // also "♫ "?
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1419,9 +1429,9 @@ function setEffectParameters(idx)
|
||||
else if (i==0) label.innerHTML = "Effect speed";
|
||||
else if (i==1) label.innerHTML = "Effect intensity";
|
||||
else label.innerHTML = "Custom" + (i-1);
|
||||
slider.classList.remove("hide");
|
||||
slider.classList.remove('hide');
|
||||
} else {
|
||||
slider.classList.add("hide");
|
||||
slider.classList.add('hide');
|
||||
}
|
||||
}
|
||||
if (slOnOff.length>5) { // up to 3 checkboxes
|
||||
@@ -1447,14 +1457,14 @@ function setEffectParameters(idx)
|
||||
// set html color items on/off
|
||||
var cslLabel = '';
|
||||
var sep = '';
|
||||
var hide = true;
|
||||
var cslCnt = 0, oCsel = csel;
|
||||
for (let i=0; i<gId("csl").children.length; i++) {
|
||||
var btn = gId("csl" + i);
|
||||
// if no controlDefined or coOnOff has a value
|
||||
if (coOnOff.length>i && coOnOff[i] != "") {
|
||||
btn.style.display = "inline";
|
||||
if (coOnOff.length>i && coOnOff[i] != "!") {
|
||||
btn.classList.remove('hide');
|
||||
btn.dataset.hide = 0;
|
||||
if (coOnOff[i] != "!") {
|
||||
var abbreviation = coOnOff[i].substr(0,2);
|
||||
btn.innerHTML = abbreviation;
|
||||
if (abbreviation != coOnOff[i]) {
|
||||
@@ -1465,17 +1475,18 @@ function setEffectParameters(idx)
|
||||
else if (i==0) btn.innerHTML = "Fx";
|
||||
else if (i==1) btn.innerHTML = "Bg";
|
||||
else btn.innerHTML = "Cs";
|
||||
hide = false;
|
||||
if (!cslCnt || oCsel==i) selectSlot(i); // select 1st displayed slot or old one
|
||||
cslCnt++;
|
||||
} else if (!controlDefined) { // if no controls then all buttons should be shown for color 1..3
|
||||
btn.style.display = "inline";
|
||||
btn.classList.remove('hide');
|
||||
btn.dataset.hide = 0;
|
||||
btn.innerHTML = `${i+1}`;
|
||||
hide = false;
|
||||
if (!cslCnt || oCsel==i) selectSlot(i); // select 1st displayed slot or old one
|
||||
cslCnt++;
|
||||
} else {
|
||||
btn.style.display = "none";
|
||||
btn.classList.add('hide');
|
||||
btn.dataset.hide = 1;
|
||||
btn.innerHTML = `${i+1}`; // name hidden buttons 1..3 for * palettes
|
||||
}
|
||||
}
|
||||
gId("cslLabel").innerHTML = cslLabel;
|
||||
@@ -1499,13 +1510,6 @@ function setEffectParameters(idx)
|
||||
pall.innerHTML = '<i class="icons sel-icon" onclick="tglHex()"></i> Color palette not used';
|
||||
palw.style.display = "none";
|
||||
}
|
||||
// not all color selectors shown, hide palettes created from color selectors
|
||||
for (let e of (gId('pallist').querySelectorAll('.lstI')||[])) {
|
||||
let fltr = "* C";
|
||||
if (cslCnt==1 && csel==0) fltr = "* Colors";
|
||||
else if (cslCnt==2) fltr = "* Colors Only";
|
||||
if (cslCnt < 3 && e.querySelector('.lstIname').innerText.indexOf(fltr)>=0) e.classList.add('hide'); else e.classList.remove('hide');
|
||||
}
|
||||
}
|
||||
|
||||
var jsonTimeout;
|
||||
@@ -1974,7 +1978,7 @@ function tglSegn(s)
|
||||
{
|
||||
let t = gId(s<100?`seg${s}t`:`p${s-100}txt`);
|
||||
if (t) {
|
||||
t.classList.toggle("show");
|
||||
t.classList.toggle('show');
|
||||
t.focus();
|
||||
t.select();
|
||||
}
|
||||
@@ -2016,7 +2020,7 @@ function rptSeg(s)
|
||||
var rev = gId(`seg${s}rev`).checked;
|
||||
var mi = gId(`seg${s}mi`).checked;
|
||||
var sel = gId(`seg${s}sel`).checked;
|
||||
var pwr = gId(`seg${s}pwr`).classList.contains("act");
|
||||
var pwr = gId(`seg${s}pwr`).classList.contains('act');
|
||||
var obj = {"seg": {"id": s, "n": name, "start": start, "stop": (cfg.comp.seglen?start:0)+stop, "rev": rev, "mi": mi, "on": pwr, "bri": parseInt(gId(`seg${s}bri`).value), "sel": sel}};
|
||||
if (gId(`seg${s}grp`)) {
|
||||
var grp = parseInt(gId(`seg${s}grp`).value);
|
||||
@@ -2127,7 +2131,7 @@ function setTp(s)
|
||||
|
||||
function setSegPwr(s)
|
||||
{
|
||||
var pwr = gId(`seg${s}pwr`).classList.contains("act");
|
||||
var pwr = gId(`seg${s}pwr`).classList.contains('act');
|
||||
var obj = {"seg": {"id": s, "on": !pwr}};
|
||||
requestJson(obj);
|
||||
}
|
||||
@@ -2321,7 +2325,7 @@ function delP(i) {
|
||||
requestJson(obj);
|
||||
delete pJson[i];
|
||||
populatePresets();
|
||||
gId('putil').classList.add("staybot");
|
||||
gId('putil').classList.add('staybot');
|
||||
} else {
|
||||
bt.style.color = "var(--c-r)";
|
||||
bt.innerHTML = "<i class='icons btn-icon'></i>Delete!";
|
||||
@@ -2596,7 +2600,7 @@ function hideModes(txt)
|
||||
let f = false;
|
||||
if (txt==="2D") f = iT.indexOf("\u25A6") >= 0 && iT.indexOf("\u22EE") < 0; // 2D && !1D
|
||||
else f = iT.indexOf(txt) >= 0;
|
||||
if (f) e.classList.add("hide"); //else e.classList.remove("hide");
|
||||
if (f) e.classList.add('hide'); //else e.classList.remove('hide');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2667,9 +2671,9 @@ function expand(i)
|
||||
{
|
||||
var seg = i<100 ? gId('seg' +i) : gId(`p${i-100}o`);
|
||||
let ps = gId("pcont").children; // preset wrapper
|
||||
if (i>100) for (let p of ps) { p.classList.remove("selected"); if (p!==seg) p.classList.remove("expanded"); } // collapse all other presets & remove selected
|
||||
if (i>100) for (let p of ps) { p.classList.remove('selected'); if (p!==seg) p.classList.remove('expanded'); } // collapse all other presets & remove selected
|
||||
|
||||
seg.classList.toggle("expanded");
|
||||
seg.classList.toggle('expanded');
|
||||
|
||||
// presets
|
||||
if (i >= 100) {
|
||||
@@ -2691,11 +2695,11 @@ function expand(i)
|
||||
gId(`p${p}api`).value = papi;
|
||||
if (papi.indexOf("Please") == 0) gId(`p${p}cstgl`).checked = false;
|
||||
tglCs(p);
|
||||
gId('putil').classList.remove("staybot");
|
||||
gId('putil').classList.remove('staybot');
|
||||
} else {
|
||||
updatePA();
|
||||
gId('seg' +i).innerHTML = "";
|
||||
gId('putil').classList.add("staybot");
|
||||
gId('putil').classList.add('staybot');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
4001
wled00/html_ui.h
4001
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@@ -189,7 +189,7 @@ void sendImprovInfoResponse() {
|
||||
out[11] = 4; //Firmware len ("WLED")
|
||||
out[12] = 'W'; out[13] = 'L'; out[14] = 'E'; out[15] = 'D';
|
||||
uint8_t lengthSum = 17;
|
||||
uint8_t vlen = sprintf_P(out+lengthSum,PSTR("0.14.0-b0/%i"),VERSION);
|
||||
uint8_t vlen = sprintf_P(out+lengthSum,PSTR("0.14.0.13/%i"),VERSION);
|
||||
out[16] = vlen; lengthSum += vlen;
|
||||
uint8_t hlen = 7;
|
||||
#ifdef ESP8266
|
||||
|
||||
@@ -276,6 +276,10 @@ void WLED::setup()
|
||||
#endif
|
||||
|
||||
Serial.begin(115200);
|
||||
#if !ARDUINO_USB_CDC_ON_BOOT
|
||||
Serial.setTimeout(50); // this causes troubles on new MCUs that have a "virtual" USB Serial (HWCDC)
|
||||
#else
|
||||
#endif
|
||||
#if defined(WLED_DEBUG) && defined(ARDUINO_ARCH_ESP32) && (defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || ARDUINO_USB_CDC_ON_BOOT)
|
||||
delay(2500); // allow CDC USB serial to initialise
|
||||
#endif
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
/*
|
||||
Main sketch, global variable declarations
|
||||
@title WLED project sketch
|
||||
@version 0.14.0-b0
|
||||
@version 0.14.0-b1
|
||||
@author Christian Schwinne
|
||||
*/
|
||||
|
||||
// version code in format yymmddb (b = daily build)
|
||||
#define VERSION 2212191
|
||||
#define VERSION 2212222
|
||||
|
||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||
//#define WLED_USE_MY_CONFIG
|
||||
@@ -71,7 +71,7 @@
|
||||
#include <user_interface.h>
|
||||
}
|
||||
#else // ESP32
|
||||
#include <HardwareSerial.h> // WLEDMM: needed to get Serial and HWCDC when using arduino-esp32 v2.0.x
|
||||
#include <HardwareSerial.h> // ensure we have the correct "Serial" on new MCUs (depends on ARDUINO_USB_MODE and ARDUINO_USB_CDC_ON_BOOT)
|
||||
#include <WiFi.h>
|
||||
#include <ETH.h>
|
||||
#include "esp_wifi.h"
|
||||
|
||||
@@ -77,7 +77,7 @@ void createEditHandler(bool enable) {
|
||||
editHandler = &server.addHandler(new SPIFFSEditor("","",WLED_FS));//http_username,http_password));
|
||||
#endif
|
||||
#else
|
||||
editHandler = server.on("/edit", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
editHandler = &server.on("/edit", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, "Not implemented", F("The FS editor is disabled in this build."), 254);
|
||||
});
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user