Merge pull request #2530 from Proto-molecule/patch-api

bugs, json remote repeat, cmd &R=
This commit is contained in:
Blaž Kristan 2022-02-10 14:06:34 +01:00 committed by GitHub
commit 83416ee2e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 49 deletions

View File

@ -162,6 +162,7 @@ void decodeIR(uint32_t code)
return; return;
} }
lastValidCode = 0; irTimesRepeated = 0; lastValidCode = 0; irTimesRepeated = 0;
lastRepeatableAction = ACTION_NONE;
if (decodeIRCustom(code)) return; if (decodeIRCustom(code)) return;
if (irEnabled == 8) { // any remote configurable with ir.json file if (irEnabled == 8) { // any remote configurable with ir.json file
decodeIRJson(code); decodeIRJson(code);
@ -193,53 +194,31 @@ void decodeIR(uint32_t code)
colorUpdated(CALL_MODE_BUTTON); //for notifier, IR is considered a button input colorUpdated(CALL_MODE_BUTTON); //for notifier, IR is considered a button input
} }
void applyRepeatActions(){ void applyRepeatActions()
{
if (lastRepeatableAction == ACTION_BRIGHT_UP) if (irEnabled == 8) {
{ decodeIRJson(lastValidCode);
incBrightness(); colorUpdated(CALL_MODE_BUTTON); return;
} } else switch (lastRepeatableAction) {
else if (lastRepeatableAction == ACTION_BRIGHT_DOWN ) case ACTION_BRIGHT_UP : incBrightness(); colorUpdated(CALL_MODE_BUTTON); return;
{ case ACTION_BRIGHT_DOWN : decBrightness(); colorUpdated(CALL_MODE_BUTTON); return;
decBrightness(); colorUpdated(CALL_MODE_BUTTON); case ACTION_SPEED_UP : changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
} case ACTION_SPEED_DOWN : changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
case ACTION_INTENSITY_UP : changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
if (lastRepeatableAction == ACTION_SPEED_UP) case ACTION_INTENSITY_DOWN : changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
{ default: break;
changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); }
} if (lastValidCode == IR40_WPLUS) {
else if (lastRepeatableAction == ACTION_SPEED_DOWN ) relativeChangeWhite(10);
{ colorUpdated(CALL_MODE_BUTTON);
changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); } else if (lastValidCode == IR40_WMINUS) {
} relativeChangeWhite(-10, 5);
colorUpdated(CALL_MODE_BUTTON);
if (lastRepeatableAction == ACTION_INTENSITY_UP) } else if ((lastValidCode == IR24_ON || lastValidCode == IR40_ON) && irTimesRepeated > 7 ) {
{ nightlightActive = true;
changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); nightlightStartTime = millis();
} colorUpdated(CALL_MODE_BUTTON);
else if (lastRepeatableAction == ACTION_INTENSITY_DOWN ) }
{
changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON);
}
if (lastValidCode == IR40_WPLUS)
{
relativeChangeWhite(10); colorUpdated(CALL_MODE_BUTTON);
}
else if (lastValidCode == IR40_WMINUS)
{
relativeChangeWhite(-10, 5); colorUpdated(CALL_MODE_BUTTON);
}
else if ((lastValidCode == IR24_ON || lastValidCode == IR40_ON) && irTimesRepeated > 7 )
{
nightlightActive = true;
nightlightStartTime = millis();
colorUpdated(CALL_MODE_BUTTON);
}
else if (irEnabled == 8)
{
decodeIRJson(lastValidCode);
}
} }
void decodeIR24(uint32_t code) void decodeIR24(uint32_t code)

View File

@ -720,11 +720,13 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
updateVal(&req, "&B=", &col[2]); updateVal(&req, "&B=", &col[2]);
updateVal(&req, "&W=", &col[3]); updateVal(&req, "&W=", &col[3]);
for (byte i=0; i<4; i++) if (prevCol[i]!=col[i]) col0Changed = colorChanged = true; for (byte i=0; i<4; i++) if (prevCol[i]!=col[i]) col0Changed = colorChanged = true;
if (col0Changed) selseg.setColor(0, RGBW32(col[0], col[1], col[2], col[3]), selectedSeg);
updateVal(&req, "R2=", &colSec[0]); updateVal(&req, "R2=", &colSec[0]);
updateVal(&req, "G2=", &colSec[1]); updateVal(&req, "G2=", &colSec[1]);
updateVal(&req, "B2=", &colSec[2]); updateVal(&req, "B2=", &colSec[2]);
updateVal(&req, "W2=", &colSec[3]); updateVal(&req, "W2=", &colSec[3]);
for (byte i=0; i<4; i++) if (prevColSec[i]!=colSec[i]) col1Changed = colorChanged = true; for (byte i=0; i<4; i++) if (prevColSec[i]!=colSec[i]) col1Changed = colorChanged = true;
if (col1Changed) selseg.setColor(1, RGBW32(colSec[0], colSec[1], colSec[2], colSec[3]), selectedSeg);
#ifdef WLED_ENABLE_LOXONE #ifdef WLED_ENABLE_LOXONE
//lox parser //lox parser
@ -963,8 +965,8 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
if (effectSpeed != prevSpeed) seg.speed = effectSpeed; if (effectSpeed != prevSpeed) seg.speed = effectSpeed;
if (effectIntensity != prevIntensity) seg.intensity = effectIntensity; if (effectIntensity != prevIntensity) seg.intensity = effectIntensity;
if (effectPalette != prevPalette) seg.palette = effectPalette; if (effectPalette != prevPalette) seg.palette = effectPalette;
if (col0Changed) seg.colors[0] = RGBW32(col[0], col[1], col[2], col[3]); if (col0Changed) seg.setColor(0, RGBW32(col[0], col[1], col[2], col[3]), i); // use transitions
if (col1Changed) seg.colors[1] = RGBW32(colSec[0], colSec[1], colSec[2], colSec[3]); if (col1Changed) seg.setColor(1, RGBW32(colSec[0], colSec[1], colSec[2], colSec[3]), i); // use transitions
if (col2Changed) seg.colors[2] = RGBW32(tmpCol[0], tmpCol[1], tmpCol[2], tmpCol[3]); if (col2Changed) seg.colors[2] = RGBW32(tmpCol[0], tmpCol[1], tmpCol[2], tmpCol[3]);
} }
} }