repeat actions cleanup & fix

This commit is contained in:
Blaz Kristan 2022-02-07 11:13:12 +01:00
parent 8c5b3fe23e
commit 4eb0dbb5a4

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,56 +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 (irEnabled == 8) if (irEnabled == 8) {
{ decodeIRJson(lastValidCode);
decodeIRJson(lastValidCode); return;
} } else switch (lastRepeatableAction) {
else case ACTION_BRIGHT_UP : incBrightness(); colorUpdated(CALL_MODE_BUTTON); return;
{ case ACTION_BRIGHT_DOWN : decBrightness(); colorUpdated(CALL_MODE_BUTTON); return;
if (lastRepeatableAction == ACTION_BRIGHT_UP) case ACTION_SPEED_UP : changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
{ case ACTION_SPEED_DOWN : changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
incBrightness(); colorUpdated(CALL_MODE_BUTTON); case ACTION_INTENSITY_UP : changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
} case ACTION_INTENSITY_DOWN : changeEffectIntensity(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); return;
else if (lastRepeatableAction == ACTION_BRIGHT_DOWN ) default: break;
{ }
decBrightness(); colorUpdated(CALL_MODE_BUTTON); if (lastValidCode == IR40_WPLUS) {
} relativeChangeWhite(10);
colorUpdated(CALL_MODE_BUTTON);
if (lastRepeatableAction == ACTION_SPEED_UP) } else if (lastValidCode == IR40_WMINUS) {
{ relativeChangeWhite(-10, 5);
changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); colorUpdated(CALL_MODE_BUTTON);
} } else if ((lastValidCode == IR24_ON || lastValidCode == IR40_ON) && irTimesRepeated > 7 ) {
else if (lastRepeatableAction == ACTION_SPEED_DOWN ) nightlightActive = true;
{ nightlightStartTime = millis();
changeEffectSpeed(lastRepeatableValue); colorUpdated(CALL_MODE_BUTTON); colorUpdated(CALL_MODE_BUTTON);
} }
if (lastRepeatableAction == ACTION_INTENSITY_UP)
{
changeEffectIntensity(lastRepeatableValue); 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);
}
}
} }
void decodeIR24(uint32_t code) void decodeIR24(uint32_t code)