Merge branch 'main' into fx-blending
This commit is contained in:
commit
394443b6d1
@ -1081,7 +1081,7 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
|||||||
static bool buttonLongPressed = false;
|
static bool buttonLongPressed = false;
|
||||||
static unsigned long buttonPressedTime = 0;
|
static unsigned long buttonPressedTime = 0;
|
||||||
static unsigned long buttonWaitTime = 0;
|
static unsigned long buttonWaitTime = 0;
|
||||||
bool handled = true;
|
bool handled = false;
|
||||||
|
|
||||||
//momentary button logic
|
//momentary button logic
|
||||||
if (isButtonPressed(b)) { //pressed
|
if (isButtonPressed(b)) { //pressed
|
||||||
@ -1090,11 +1090,12 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
|||||||
buttonPressedBefore = true;
|
buttonPressedBefore = true;
|
||||||
|
|
||||||
if (now - buttonPressedTime > 600) { //long press
|
if (now - buttonPressedTime > 600) { //long press
|
||||||
buttonLongPressed = true;
|
|
||||||
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
||||||
//so we need to override with same behaviour
|
//so we need to override with same behaviour
|
||||||
longPressAction(0);
|
//DEBUG_PRINTLN(F("4LD action."));
|
||||||
//handled = false;
|
//if (!buttonLongPressed) longPressAction(0);
|
||||||
|
buttonLongPressed = true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (!isButtonPressed(b) && buttonPressedBefore) { //released
|
} else if (!isButtonPressed(b) && buttonPressedBefore) { //released
|
||||||
@ -1126,7 +1127,7 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
|||||||
buttonWaitTime = 0;
|
buttonWaitTime = 0;
|
||||||
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
||||||
//so we need to override with same behaviour
|
//so we need to override with same behaviour
|
||||||
shortPressAction(0);
|
//shortPressAction(0);
|
||||||
//handled = false;
|
//handled = false;
|
||||||
}
|
}
|
||||||
return handled;
|
return handled;
|
||||||
|
@ -144,8 +144,8 @@ void BusDigital::show() {
|
|||||||
c = RGBW32(_data[offset],_data[offset+1],_data[offset+2],(Bus::hasWhite(_type)?_data[offset+3]:0));
|
c = RGBW32(_data[offset],_data[offset+1],_data[offset+2],(Bus::hasWhite(_type)?_data[offset+3]:0));
|
||||||
}
|
}
|
||||||
uint16_t pix = i;
|
uint16_t pix = i;
|
||||||
if (_reversed) pix = _len - pix -1;
|
if (_reversed) pix = _len - pix -1;
|
||||||
else pix += _skip;
|
pix += _skip;
|
||||||
PolyBus::setPixelColor(_busPtr, _iType, pix, c, co);
|
PolyBus::setPixelColor(_busPtr, _iType, pix, c, co);
|
||||||
}
|
}
|
||||||
#if !defined(STATUSLED) || STATUSLED>=0
|
#if !defined(STATUSLED) || STATUSLED>=0
|
||||||
@ -210,8 +210,8 @@ void IRAM_ATTR BusDigital::setPixelColor(uint16_t pix, uint32_t c) {
|
|||||||
}
|
}
|
||||||
if (Bus::hasWhite(_type)) _data[offset] = W(c);
|
if (Bus::hasWhite(_type)) _data[offset] = W(c);
|
||||||
} else {
|
} else {
|
||||||
if (_reversed) pix = _len - pix -1;
|
if (_reversed) pix = _len - pix -1;
|
||||||
else pix += _skip;
|
pix += _skip;
|
||||||
uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder);
|
uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder);
|
||||||
if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs
|
if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs
|
||||||
uint16_t pOld = pix;
|
uint16_t pOld = pix;
|
||||||
@ -241,8 +241,8 @@ uint32_t BusDigital::getPixelColor(uint16_t pix) {
|
|||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
} else {
|
} else {
|
||||||
if (_reversed) pix = _len - pix -1;
|
if (_reversed) pix = _len - pix -1;
|
||||||
else pix += _skip;
|
pix += _skip;
|
||||||
uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder);
|
uint8_t co = _colorOrderMap.getPixelColorOrder(pix+_start, _colorOrder);
|
||||||
uint32_t c = restoreColorLossy(PolyBus::getPixelColor(_busPtr, _iType, (_type==TYPE_WS2812_1CH_X3) ? IC_INDEX_WS2812_1CH_3X(pix) : pix, co),_bri);
|
uint32_t c = restoreColorLossy(PolyBus::getPixelColor(_busPtr, _iType, (_type==TYPE_WS2812_1CH_X3) ? IC_INDEX_WS2812_1CH_3X(pix) : pix, co),_bri);
|
||||||
if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs
|
if (_type == TYPE_WS2812_1CH_X3) { // map to correct IC, each controls 3 LEDs
|
||||||
|
@ -262,7 +262,7 @@ void handleButton()
|
|||||||
shortPressAction(b);
|
shortPressAction(b);
|
||||||
buttonPressedBefore[b] = true;
|
buttonPressedBefore[b] = true;
|
||||||
buttonPressedTime[b] = now; // continually update (for debouncing to work in release handler)
|
buttonPressedTime[b] = now; // continually update (for debouncing to work in release handler)
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!buttonPressedBefore[b]) buttonPressedTime[b] = now;
|
if (!buttonPressedBefore[b]) buttonPressedTime[b] = now;
|
||||||
@ -283,7 +283,7 @@ void handleButton()
|
|||||||
// released after rising-edge short press action
|
// released after rising-edge short press action
|
||||||
if (macroButton[b] && macroButton[b] == macroLongPress[b] && macroButton[b] == macroDoublePress[b]) {
|
if (macroButton[b] && macroButton[b] == macroLongPress[b] && macroButton[b] == macroDoublePress[b]) {
|
||||||
if (dur > WLED_DEBOUNCE_THRESHOLD) buttonPressedBefore[b] = false; // debounce, blocks button for 50 ms once it has been released
|
if (dur > WLED_DEBOUNCE_THRESHOLD) buttonPressedBefore[b] = false; // debounce, blocks button for 50 ms once it has been released
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dur < WLED_DEBOUNCE_THRESHOLD) {buttonPressedBefore[b] = false; continue;} // too short "press", debounce
|
if (dur < WLED_DEBOUNCE_THRESHOLD) {buttonPressedBefore[b] = false; continue;} // too short "press", debounce
|
||||||
|
Loading…
Reference in New Issue
Block a user