Fix for resetting segments.
This commit is contained in:
parent
c11acb6308
commit
7b83b99ac9
@ -599,6 +599,7 @@ class WS2812FX {
|
|||||||
trigger(void),
|
trigger(void),
|
||||||
setSegment(uint8_t n, uint16_t start, uint16_t stop, uint8_t grouping = 0, uint8_t spacing = 0),
|
setSegment(uint8_t n, uint16_t start, uint16_t stop, uint8_t grouping = 0, uint8_t spacing = 0),
|
||||||
resetSegments(),
|
resetSegments(),
|
||||||
|
populateDefaultSegments(),
|
||||||
setPixelColor(uint16_t n, uint32_t c),
|
setPixelColor(uint16_t n, uint32_t c),
|
||||||
setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0),
|
setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w = 0),
|
||||||
show(void),
|
show(void),
|
||||||
|
@ -67,17 +67,7 @@ void WS2812FX::finalizeInit(void)
|
|||||||
Bus *bus = busses.getBus(i);
|
Bus *bus = busses.getBus(i);
|
||||||
if (bus == nullptr) continue;
|
if (bus == nullptr) continue;
|
||||||
_useRgbw |= bus->isRgbw();
|
_useRgbw |= bus->isRgbw();
|
||||||
_segments[i].start = bus->getStart();
|
|
||||||
_length += bus->getLength();
|
_length += bus->getLength();
|
||||||
_segments[i].stop = _segments[i].start + bus->getLength();
|
|
||||||
_segments[i].mode = DEFAULT_MODE;
|
|
||||||
_segments[i].colors[0] = DEFAULT_COLOR;
|
|
||||||
_segments[i].speed = DEFAULT_SPEED;
|
|
||||||
_segments[i].intensity = DEFAULT_INTENSITY;
|
|
||||||
_segments[i].grouping = 1;
|
|
||||||
_segments[i].setOption(SEG_OPTION_SELECTED, 1);
|
|
||||||
_segments[i].setOption(SEG_OPTION_ON, 1);
|
|
||||||
_segments[i].opacity = 255;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setBrightness(_brightness);
|
setBrightness(_brightness);
|
||||||
@ -583,6 +573,25 @@ void WS2812FX::resetSegments() {
|
|||||||
_segment_runtimes[0].reset();
|
_segment_runtimes[0].reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WS2812FX::populateDefaultSegments() {
|
||||||
|
uint16_t length = 0;
|
||||||
|
for (uint8_t i=0; i<busses.getNumBusses(); i++) {
|
||||||
|
Bus *bus = busses.getBus(i);
|
||||||
|
if (bus == nullptr) continue;
|
||||||
|
_segments[i].start = bus->getStart();
|
||||||
|
length += bus->getLength();
|
||||||
|
_segments[i].stop = _segments[i].start + bus->getLength();
|
||||||
|
_segments[i].mode = DEFAULT_MODE;
|
||||||
|
_segments[i].colors[0] = DEFAULT_COLOR;
|
||||||
|
_segments[i].speed = DEFAULT_SPEED;
|
||||||
|
_segments[i].intensity = DEFAULT_INTENSITY;
|
||||||
|
_segments[i].grouping = 1;
|
||||||
|
_segments[i].setOption(SEG_OPTION_SELECTED, 1);
|
||||||
|
_segments[i].setOption(SEG_OPTION_ON, 1);
|
||||||
|
_segments[i].opacity = 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//After this function is called, setPixelColor() will use that segment (offsets, grouping, ... will apply)
|
//After this function is called, setPixelColor() will use that segment (offsets, grouping, ... will apply)
|
||||||
void WS2812FX::setPixelSegment(uint8_t n)
|
void WS2812FX::setPixelSegment(uint8_t n)
|
||||||
{
|
{
|
||||||
|
@ -391,6 +391,12 @@ class BusManager {
|
|||||||
return numBusses;
|
return numBusses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t getTotalLength() {
|
||||||
|
uint16_t len = 0;
|
||||||
|
for (uint8_t i=0; i<numBusses; i++ ) len += busses[i]->getLength();
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
static bool isRgbw(uint8_t type) {
|
static bool isRgbw(uint8_t type) {
|
||||||
if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true;
|
if (type == TYPE_SK6812_RGBW || type == TYPE_TM1814) return true;
|
||||||
if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true;
|
if (type > TYPE_ONOFF && type <= TYPE_ANALOG_5CH && type != TYPE_ANALOG_3CH) return true;
|
||||||
|
@ -394,6 +394,7 @@ void WLED::beginStrip()
|
|||||||
{
|
{
|
||||||
// Initialize NeoPixel Strip and button
|
// Initialize NeoPixel Strip and button
|
||||||
strip.finalizeInit(); // busses created during deserializeConfig()
|
strip.finalizeInit(); // busses created during deserializeConfig()
|
||||||
|
strip.populateDefaultSegments();
|
||||||
strip.setBrightness(0);
|
strip.setBrightness(0);
|
||||||
strip.setShowCallback(handleOverlayDraw);
|
strip.setShowCallback(handleOverlayDraw);
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2102260
|
#define VERSION 2102270
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
|
Loading…
Reference in New Issue
Block a user