From 7beae934414d8259d8986a1c974f8a5eab406752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Kristan?= Date: Sat, 26 Feb 2022 01:37:09 +0100 Subject: [PATCH] IR rewrite. (#2561) * IR rewrite. - added CCT (WW/CW) support - support for applying change to main segment or all selected segments * Remove extra setValuesFromFirstSelectedSeg() Co-authored-by: cschwinne --- wled00/cfg.cpp | 24 +- wled00/data/settings_leds.htm | 45 ++- wled00/fcn_declare.h | 8 +- wled00/html_settings.h | 16 +- wled00/ir.cpp | 637 +++++++++++++++++++--------------- wled00/ir_codes.h | 97 +++--- wled00/led.cpp | 43 +-- wled00/set.cpp | 10 +- wled00/wled.h | 7 +- wled00/xml.cpp | 1 + 10 files changed, 483 insertions(+), 405 deletions(-) diff --git a/wled00/cfg.cpp b/wled00/cfg.cpp index 4bd251e33..ca91a5c23 100644 --- a/wled00/cfg.cpp +++ b/wled00/cfg.cpp @@ -196,6 +196,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { } } CJSON(irEnabled, hw["ir"]["type"]); + CJSON(irApplyToAllSelected, hw["ir"]["sel"]); JsonObject relay = hw[F("relay")]; int hw_relay_pin = relay["pin"] | -2; @@ -399,15 +400,15 @@ bool deserializeConfig(JsonObject doc, bool fromFS) { if (act) timerWeekday[it]++; } if (it<8) { - JsonObject start = timer["start"]; - byte startm = start["mon"]; - if (startm) timerMonth[it] = (startm << 4); + JsonObject start = timer["start"]; + byte startm = start["mon"]; + if (startm) timerMonth[it] = (startm << 4); CJSON(timerDay[it], start["day"]); - JsonObject end = timer["end"]; - CJSON(timerDayEnd[it], end["day"]); - byte endm = end["mon"]; - if (startm) timerMonth[it] += endm & 0x0F; - if (!(timerMonth[it] & 0x0F)) timerMonth[it] += 12; //default end month to 12 + JsonObject end = timer["end"]; + CJSON(timerDayEnd[it], end["day"]); + byte endm = end["mon"]; + if (startm) timerMonth[it] += endm & 0x0F; + if (!(timerMonth[it] & 0x0F)) timerMonth[it] += 12; //default end month to 12 } it++; } @@ -630,6 +631,7 @@ void serializeConfig() { JsonObject hw_ir = hw.createNestedObject("ir"); hw_ir["pin"] = irPin; hw_ir["type"] = irEnabled; // the byte 'irEnabled' does contain the IR-Remote Type ( 0=disabled ) + hw_ir["sel"] = irApplyToAllSelected; JsonObject hw_relay = hw.createNestedObject(F("relay")); hw_relay["pin"] = rlyPin; @@ -791,11 +793,11 @@ void serializeConfig() { timers_ins0["macro"] = timerMacro[i]; timers_ins0[F("dow")] = timerWeekday[i] >> 1; if (i<8) { - JsonObject start = timers_ins0.createNestedObject("start"); + JsonObject start = timers_ins0.createNestedObject("start"); start["mon"] = (timerMonth[i] >> 4) & 0xF; start["day"] = timerDay[i]; - JsonObject end = timers_ins0.createNestedObject("end"); - end["mon"] = timerMonth[i] & 0xF; + JsonObject end = timers_ins0.createNestedObject("end"); + end["mon"] = timerMonth[i] & 0xF; end["day"] = timerDayEnd[i]; } } diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 24d2acff2..76bd83792 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -3,22 +3,15 @@ + LED Settings