diff --git a/bin/wled04p_wemosd1mini_1710284_RGB.bin b/bin/wled04p_wemosd1mini_1710284_RGB.bin new file mode 100644 index 000000000..f88e6a74f Binary files /dev/null and b/bin/wled04p_wemosd1mini_1710284_RGB.bin differ diff --git a/bin/wled04p_wemosd1mini_1710284_RGBW.bin b/bin/wled04p_wemosd1mini_1710284_RGBW.bin new file mode 100644 index 000000000..412f65944 Binary files /dev/null and b/bin/wled04p_wemosd1mini_1710284_RGBW.bin differ diff --git a/wled00/WS2812FX.cpp b/wled00/WS2812FX.cpp index 3843b3788..7c3661645 100644 --- a/wled00/WS2812FX.cpp +++ b/wled00/WS2812FX.cpp @@ -172,14 +172,9 @@ void WS2812FX::strip_off() { } void WS2812FX::strip_off_respectLock() { - if (_none_locked) - { - clear(); - } else { - for(uint16_t i=0; i < _led_count; i++) { - if (!_locked[i]) - setPixelColor(i, 0); - } + for(uint16_t i=0; i < _led_count; i++) { + if (!_locked[i]) + setPixelColor(i, 0); } show(); } @@ -228,14 +223,9 @@ uint8_t WS2812FX::get_random_wheel_index(uint8_t pos) { * No blinking. Just plain old static light. */ void WS2812FX::mode_static(void) { - if (_none_locked) - { - setAllPixelColor(_color); - } else { - for(uint16_t i=0; i < _led_count; i++) { - if (!_locked[i]) - setPixelColor(i, _color); - } + for(uint16_t i=0; i < _led_count; i++) { + if (!_locked[i]) + setPixelColor(i, _color); } show(); _mode_delay = 25; @@ -247,14 +237,9 @@ void WS2812FX::mode_static(void) { */ void WS2812FX::mode_blink(void) { if(_counter_mode_call % 2 == 1) { - if (_none_locked) - { - setAllPixelColor(_color); - } else { - for(uint16_t i=0; i < _led_count; i++) { - if (!_locked[i]) - setPixelColor(i, _color); - } + for(uint16_t i=0; i < _led_count; i++) { + if (!_locked[i]) + setPixelColor(i, _color); } show(); } else { @@ -1654,10 +1639,7 @@ void WS2812FX::setRange(int i, int i2, uint32_t col) void WS2812FX::lock(int i) { if (i >= 0 && i < _led_count) - { - _locked[i] = true; - _none_locked = false; - } + _locked[i] = true; } void WS2812FX::lockRange(int i, int i2) @@ -1665,10 +1647,7 @@ void WS2812FX::lockRange(int i, int i2) for (int x = i; x < i2; x++) { if (x >= 0 && x < _led_count) - { _locked[x] = true; - _none_locked = false; - } } } @@ -1676,16 +1655,12 @@ void WS2812FX::lockAll() { for (int x = 0; x < _led_count; x++) _locked[x] = true; - _none_locked = false; } void WS2812FX::unlock(int i) { if (i >= 0 && i < _led_count) _locked[i] = false; - //lock check - _none_locked = true; - for (int x = 0; x < _led_count; x++) if (_locked[x]) _none_locked = false; } void WS2812FX::unlockRange(int i, int i2) @@ -1695,16 +1670,12 @@ void WS2812FX::unlockRange(int i, int i2) if (x >= 0 && x < _led_count) _locked[x] = false; } - //lock check - _none_locked = true; - for (int x = 0; x < _led_count; x++) if (_locked[x]) _none_locked = false; } void WS2812FX::unlockAll() { for (int x = 0; x < _led_count; x++) _locked[x] = false; - _none_locked = true; } void WS2812FX::setLedCount(uint16_t i) @@ -1773,33 +1744,6 @@ void WS2812FX::clear() #endif } -void WS2812FX::setAllPixelColor(uint32_t c) -{ - #ifdef RGBW - NeoPixelBrightnessBus::ClearTo(RgbwColor((c>>16) & 0xFF, (c>>8) & 0xFF, (c) & 0xFF, (c>>24) & 0xFF)); - #else - NeoPixelBrightnessBus::ClearTo(RgbColor((c>>16) & 0xFF, (c>>8) & 0xFF, (c) & 0xFF)); - #endif -} - -void WS2812FX::setAllPixelColor(uint8_t r, uint8_t g, uint8_t b, uint8_t w) -{ - #ifdef RGBW - NeoPixelBrightnessBus::ClearTo(RgbwColor(r,g,b,w)); - #else - NeoPixelBrightnessBus::ClearTo(RgbColor(r,g,b)); - #endif -} - -void WS2812FX::setAllPixelColor(uint8_t r, uint8_t g, uint8_t b) -{ - #ifdef RGBW - NeoPixelBrightnessBus::ClearTo(RgbwColor(r,g,b,0)); - #else - NeoPixelBrightnessBus::ClearTo(RgbColor(r,g,b)); - #endif -} - void WS2812FX::begin() { NeoPixelBrightnessBus::Begin(); @@ -1818,7 +1762,3 @@ uint8_t WS2812FX::maxval (uint8_t v, uint8_t w) if (w > v) return w; return v; } - - - - diff --git a/wled00/WS2812FX.h b/wled00/WS2812FX.h index 2168f4328..583d3fe0b 100644 --- a/wled00/WS2812FX.h +++ b/wled00/WS2812FX.h @@ -1,3 +1,5 @@ +//#define RGBW + /* WS2812FX.h - Library for WS2812 LED effects. @@ -236,7 +238,6 @@ class WS2812FX : public NeoPixelBrightnessBus