|
|
|
@ -2,6 +2,7 @@
|
|
|
|
|
#define BusWrapper_h
|
|
|
|
|
|
|
|
|
|
#include "NeoPixelBusLg.h"
|
|
|
|
|
#include "bus_manager.h"
|
|
|
|
|
|
|
|
|
|
// temporary - these defines should actually be set in platformio.ini
|
|
|
|
|
// C3: I2S0 and I2S1 methods not supported (has one I2S bus)
|
|
|
|
@ -63,6 +64,11 @@
|
|
|
|
|
#define I_8266_U1_UCS_4 54
|
|
|
|
|
#define I_8266_DM_UCS_4 55
|
|
|
|
|
#define I_8266_BB_UCS_4 56
|
|
|
|
|
//FW1906 GRBCW
|
|
|
|
|
#define I_8266_U0_FW6_5 66
|
|
|
|
|
#define I_8266_U1_FW6_5 67
|
|
|
|
|
#define I_8266_DM_FW6_5 68
|
|
|
|
|
#define I_8266_BB_FW6_5 69
|
|
|
|
|
//ESP8266 APA106
|
|
|
|
|
#define I_8266_U0_APA106_3 81
|
|
|
|
|
#define I_8266_U1_APA106_3 82
|
|
|
|
@ -104,12 +110,17 @@
|
|
|
|
|
#define I_32_RN_UCS_4 60
|
|
|
|
|
#define I_32_I0_UCS_4 61
|
|
|
|
|
#define I_32_I1_UCS_4 62
|
|
|
|
|
//FW1906 GRBCW
|
|
|
|
|
#define I_32_RN_FW6_5 63
|
|
|
|
|
#define I_32_I0_FW6_5 64
|
|
|
|
|
#define I_32_I1_FW6_5 65
|
|
|
|
|
//Bit Bang theoratically possible, but very undesirable and not needed (no pin restrictions on RMT and I2S)
|
|
|
|
|
#define I_32_RN_APA106_3 85
|
|
|
|
|
#define I_32_I0_APA106_3 86
|
|
|
|
|
#define I_32_I1_APA106_3 87
|
|
|
|
|
#define I_32_BB_APA106_3 88 // bitbangging on ESP32 not recommended
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//APA102
|
|
|
|
|
#define I_HS_DOT_3 39 //hardware SPI
|
|
|
|
|
#define I_SS_DOT_3 40 //soft SPI
|
|
|
|
@ -176,6 +187,11 @@
|
|
|
|
|
#define B_8266_U1_APA106_3 NeoPixelBusLg<NeoRbgFeature, NeoEsp8266Uart1Apa106Method, NeoGammaNullMethod> //3 chan, esp8266, gpio2
|
|
|
|
|
#define B_8266_DM_APA106_3 NeoPixelBusLg<NeoGrbFeature, NeoEsp8266DmaApa106Method, NeoGammaNullMethod> //3 chan, esp8266, gpio3
|
|
|
|
|
#define B_8266_BB_APA106_3 NeoPixelBusLg<NeoGrbFeature, NeoEsp8266BitBangApa106Method, NeoGammaNullMethod> //3 chan, esp8266, bb (any pin but 16)
|
|
|
|
|
//FW1906 GRBCW
|
|
|
|
|
#define B_8266_U0_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp8266Uart0Ws2813Method, NeoGammaNullMethod> //esp8266, gpio1
|
|
|
|
|
#define B_8266_U1_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp8266Uart1Ws2813Method, NeoGammaNullMethod> //esp8266, gpio2
|
|
|
|
|
#define B_8266_DM_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp8266Dma800KbpsMethod, NeoGammaNullMethod> //esp8266, gpio3
|
|
|
|
|
#define B_8266_BB_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp8266BitBang800KbpsMethod, NeoGammaNullMethod> //esp8266, bb
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*** ESP32 Neopixel methods ***/
|
|
|
|
@ -251,6 +267,14 @@
|
|
|
|
|
#define B_32_I1_APA106_3 NeoPixelBusLg<NeoGrbFeature, NeoEsp32I2s1Apa106Method, NeoGammaNullMethod>
|
|
|
|
|
#endif
|
|
|
|
|
//#define B_32_BB_APA106_3 NeoPixelBusLg<NeoGrbFeature, NeoEsp8266BitBangApa106Method, NeoGammaNullMethod> // NeoEsp8266BitBang800KbpsMethod
|
|
|
|
|
//FW1906 GRBCW
|
|
|
|
|
#define B_32_RN_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp32RmtNWs2812xMethod, NeoGammaNullMethod>
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
#define B_32_I0_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp32I2s0800KbpsMethod, NeoGammaNullMethod>
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
#define B_32_I1_FW6_5 NeoPixelBusLg<NeoGrbcwxFeature, NeoEsp32I2s1800KbpsMethod, NeoGammaNullMethod>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -290,6 +314,12 @@
|
|
|
|
|
//handles pointer type conversion for all possible bus types
|
|
|
|
|
class PolyBus {
|
|
|
|
|
public:
|
|
|
|
|
// WW and CW components for chips that support them (FW1906). They have to be set before calling
|
|
|
|
|
// PolyBus::setPixelColor(). In such case W component has no meaning in setPixelColor()
|
|
|
|
|
// as there is no support for WW/CW API yet
|
|
|
|
|
// if both values are 0, W component *may* be used instead (for WW & CW)
|
|
|
|
|
static uint8_t cctWW, cctCW;
|
|
|
|
|
|
|
|
|
|
// initialize SPI bus speed for DotStar methods
|
|
|
|
|
template <class T>
|
|
|
|
|
static void beginDotStar(void* busPtr, int8_t sck, int8_t miso, int8_t mosi, int8_t ss, uint16_t clock_kHz = 0U) {
|
|
|
|
@ -353,6 +383,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: (static_cast<B_8266_U1_APA106_3*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_DM_APA106_3: (static_cast<B_8266_DM_APA106_3*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_BB_APA106_3: (static_cast<B_8266_BB_APA106_3*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_U0_FW6_5: (static_cast<B_8266_U0_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_U1_FW6_5: (static_cast<B_8266_U1_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_DM_FW6_5: (static_cast<B_8266_DM_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_8266_BB_FW6_5: (static_cast<B_8266_BB_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: (static_cast<B_32_RN_NEO_3*>(busPtr))->Begin(); break;
|
|
|
|
@ -404,6 +438,14 @@ class PolyBus {
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_UCS_4: (static_cast<B_32_I1_UCS_4*>(busPtr))->Begin(); break;
|
|
|
|
|
#endif
|
|
|
|
|
case I_32_RN_FW6_5: (static_cast<B_32_RN_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: (static_cast<B_32_I0_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: (static_cast<B_32_I1_FW6_5*>(busPtr))->Begin(); break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// case I_32_BB_UCS_4: (static_cast<B_32_BB_UCS_4*>(busPtr))->Begin(); break;
|
|
|
|
|
case I_32_RN_APA106_3: (static_cast<B_32_RN_APA106_3*>(busPtr))->Begin(); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
@ -465,6 +507,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: busPtr = new B_8266_U1_APA106_3(len, pins[0]); break;
|
|
|
|
|
case I_8266_DM_APA106_3: busPtr = new B_8266_DM_APA106_3(len, pins[0]); break;
|
|
|
|
|
case I_8266_BB_APA106_3: busPtr = new B_8266_BB_APA106_3(len, pins[0]); break;
|
|
|
|
|
case I_8266_U0_FW6_5: busPtr = new B_8266_U0_FW6_5(len, pins[0]); break;
|
|
|
|
|
case I_8266_U1_FW6_5: busPtr = new B_8266_U1_FW6_5(len, pins[0]); break;
|
|
|
|
|
case I_8266_DM_FW6_5: busPtr = new B_8266_DM_FW6_5(len, pins[0]); break;
|
|
|
|
|
case I_8266_BB_FW6_5: busPtr = new B_8266_BB_FW6_5(len, pins[0]); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: busPtr = new B_32_RN_NEO_3(len, pins[0], (NeoBusChannel)channel); break;
|
|
|
|
@ -525,6 +571,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: busPtr = new B_32_I1_APA106_3(len, pins[0]); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: busPtr = new B_32_BB_APA106_3(len, pins[0], (NeoBusChannel)channel); break;
|
|
|
|
|
case I_32_RN_FW6_5: busPtr = new B_32_RN_FW6_5(len, pins[0], (NeoBusChannel)channel); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: busPtr = new B_32_I0_FW6_5(len, pins[0]); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: busPtr = new B_32_I1_FW6_5(len, pins[0]); break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
// for 2-wire: pins[1] is clk, pins[0] is dat. begin expects (len, clk, dat)
|
|
|
|
|
case I_HS_DOT_3: busPtr = new B_HS_DOT_3(len, pins[1], pins[0]); break;
|
|
|
|
@ -578,6 +631,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: (static_cast<B_8266_U1_APA106_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_DM_APA106_3: (static_cast<B_8266_DM_APA106_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_BB_APA106_3: (static_cast<B_8266_BB_APA106_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_U0_FW6_5: (static_cast<B_8266_U0_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_U1_FW6_5: (static_cast<B_8266_U1_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_DM_FW6_5: (static_cast<B_8266_DM_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_8266_BB_FW6_5: (static_cast<B_8266_BB_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: (static_cast<B_32_RN_NEO_3*>(busPtr))->Show(consistent); break;
|
|
|
|
@ -638,6 +695,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: (static_cast<B_32_I1_APA106_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: (static_cast<B_32_BB_APA106_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_32_RN_FW6_5: (static_cast<B_32_RN_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: (static_cast<B_32_I0_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: (static_cast<B_32_I1_FW6_5*>(busPtr))->Show(consistent); break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: (static_cast<B_HS_DOT_3*>(busPtr))->Show(consistent); break;
|
|
|
|
|
case I_SS_DOT_3: (static_cast<B_SS_DOT_3*>(busPtr))->Show(consistent); break;
|
|
|
|
@ -687,6 +751,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: return (static_cast<B_8266_U1_APA106_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_DM_APA106_3: return (static_cast<B_8266_DM_APA106_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_BB_APA106_3: return (static_cast<B_8266_BB_APA106_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_U0_FW6_5: return (static_cast<B_8266_U0_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_U1_FW6_5: return (static_cast<B_8266_U1_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_DM_FW6_5: return (static_cast<B_8266_DM_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_8266_BB_FW6_5: return (static_cast<B_8266_BB_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: return (static_cast<B_32_RN_NEO_3*>(busPtr))->CanShow(); break;
|
|
|
|
@ -747,6 +815,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: return (static_cast<B_32_I1_APA106_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: return (static_cast<B_32_BB_APA106_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_32_RN_FW6_5: return (static_cast<B_32_RN_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: return (static_cast<B_32_I0_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: return (static_cast<B_32_I1_FW6_5*>(busPtr))->CanShow(); break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: return (static_cast<B_HS_DOT_3*>(busPtr))->CanShow(); break;
|
|
|
|
|
case I_SS_DOT_3: return (static_cast<B_SS_DOT_3*>(busPtr))->CanShow(); break;
|
|
|
|
@ -821,6 +896,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: (static_cast<B_8266_U1_APA106_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
case I_8266_DM_APA106_3: (static_cast<B_8266_DM_APA106_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
case I_8266_BB_APA106_3: (static_cast<B_8266_BB_APA106_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
case I_8266_U0_FW6_5: (static_cast<B_8266_U0_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
case I_8266_U1_FW6_5: (static_cast<B_8266_U1_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
case I_8266_DM_FW6_5: (static_cast<B_8266_DM_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
case I_8266_BB_FW6_5: (static_cast<B_8266_BB_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: (static_cast<B_32_RN_NEO_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
@ -881,6 +960,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: (static_cast<B_32_I1_APA106_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: (static_cast<B_32_BB_APA106_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
case I_32_RN_FW6_5: (static_cast<B_32_RN_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: (static_cast<B_32_I0_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: (static_cast<B_32_I1_FW6_5*>(busPtr))->SetPixelColor(pix, RgbwwColor(col.R, col.G, col.B, cctWW, cctCW)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: (static_cast<B_HS_DOT_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
|
case I_SS_DOT_3: (static_cast<B_SS_DOT_3*>(busPtr))->SetPixelColor(pix, RgbColor(col)); break;
|
|
|
|
@ -931,6 +1017,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: (static_cast<B_8266_U1_APA106_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_DM_APA106_3: (static_cast<B_8266_DM_APA106_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_BB_APA106_3: (static_cast<B_8266_BB_APA106_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_U0_FW6_5: (static_cast<B_8266_U0_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_U1_FW6_5: (static_cast<B_8266_U1_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_DM_FW6_5: (static_cast<B_8266_DM_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_8266_BB_FW6_5: (static_cast<B_8266_BB_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: (static_cast<B_32_RN_NEO_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
@ -991,6 +1081,14 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: (static_cast<B_32_I1_APA106_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: (static_cast<B_32_BB_APA106_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_32_RN_FW6_5: (static_cast<B_32_RN_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: (static_cast<B_32_I0_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: (static_cast<B_32_I1_FW6_5*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: (static_cast<B_HS_DOT_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
|
case I_SS_DOT_3: (static_cast<B_SS_DOT_3*>(busPtr))->SetLuminance(b); break;
|
|
|
|
@ -1042,6 +1140,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: col = (static_cast<B_8266_U1_APA106_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
case I_8266_DM_APA106_3: col = (static_cast<B_8266_DM_APA106_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
case I_8266_BB_APA106_3: col = (static_cast<B_8266_BB_APA106_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
case I_8266_U0_FW6_5: { RgbwwColor c = (static_cast<B_8266_U0_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
case I_8266_U1_FW6_5: { RgbwwColor c = (static_cast<B_8266_U1_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
case I_8266_DM_FW6_5: { RgbwwColor c = (static_cast<B_8266_DM_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
case I_8266_BB_FW6_5: { RgbwwColor c = (static_cast<B_8266_BB_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: col = (static_cast<B_32_RN_NEO_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
@ -1102,6 +1204,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: col = (static_cast<B_32_I1_APA106_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: col = (static_cast<B_32_BB_APA106_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
case I_32_RN_FW6_5: { RgbwwColor c = (static_cast<B_32_RN_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: { RgbwwColor c = (static_cast<B_32_I0_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: { RgbwwColor c = (static_cast<B_32_I1_FW6_5*>(busPtr))->GetPixelColor(pix); col = RGBW32(c.R>>8,c.G>>8,c.B>>8,c.WW>>8); } break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: col = (static_cast<B_HS_DOT_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
|
case I_SS_DOT_3: col = (static_cast<B_SS_DOT_3*>(busPtr))->GetPixelColor(pix); break;
|
|
|
|
@ -1171,6 +1280,10 @@ class PolyBus {
|
|
|
|
|
case I_8266_U1_APA106_3: delete (static_cast<B_8266_U1_APA106_3*>(busPtr)); break;
|
|
|
|
|
case I_8266_DM_APA106_3: delete (static_cast<B_8266_DM_APA106_3*>(busPtr)); break;
|
|
|
|
|
case I_8266_BB_APA106_3: delete (static_cast<B_8266_BB_APA106_3*>(busPtr)); break;
|
|
|
|
|
case I_8266_U0_FW6_5: delete (static_cast<B_8266_U0_FW6_5*>(busPtr)); break;
|
|
|
|
|
case I_8266_U1_FW6_5: delete (static_cast<B_8266_U1_FW6_5*>(busPtr)); break;
|
|
|
|
|
case I_8266_DM_FW6_5: delete (static_cast<B_8266_DM_FW6_5*>(busPtr)); break;
|
|
|
|
|
case I_8266_BB_FW6_5: delete (static_cast<B_8266_BB_FW6_5*>(busPtr)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef ARDUINO_ARCH_ESP32
|
|
|
|
|
case I_32_RN_NEO_3: delete (static_cast<B_32_RN_NEO_3*>(busPtr)); break;
|
|
|
|
@ -1231,6 +1344,13 @@ class PolyBus {
|
|
|
|
|
case I_32_I1_APA106_3: delete (static_cast<B_32_I1_APA106_3*>(busPtr)); break;
|
|
|
|
|
#endif
|
|
|
|
|
// case I_32_BB_APA106_3: delete (static_cast<B_32_BB_APA106_3*>(busPtr)); break;
|
|
|
|
|
case I_32_RN_FW6_5: delete (static_cast<B_32_RN_FW6_5*>(busPtr)); break;
|
|
|
|
|
#ifndef WLED_NO_I2S0_PIXELBUS
|
|
|
|
|
case I_32_I0_FW6_5: delete (static_cast<B_32_I0_FW6_5*>(busPtr)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef WLED_NO_I2S1_PIXELBUS
|
|
|
|
|
case I_32_I1_FW6_5: delete (static_cast<B_32_I1_FW6_5*>(busPtr)); break;
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
case I_HS_DOT_3: delete (static_cast<B_HS_DOT_3*>(busPtr)); break;
|
|
|
|
|
case I_SS_DOT_3: delete (static_cast<B_SS_DOT_3*>(busPtr)); break;
|
|
|
|
@ -1292,6 +1412,8 @@ class PolyBus {
|
|
|
|
|
return I_8266_U0_UCS_4 + offset;
|
|
|
|
|
case TYPE_APA106:
|
|
|
|
|
return I_8266_U0_APA106_3 + offset;
|
|
|
|
|
case TYPE_FW1906:
|
|
|
|
|
return I_8266_U0_FW6_5 + offset;
|
|
|
|
|
}
|
|
|
|
|
#else //ESP32
|
|
|
|
|
uint8_t offset = 0; //0 = RMT (num 0-7) 8 = I2S0 9 = I2S1
|
|
|
|
@ -1332,6 +1454,8 @@ class PolyBus {
|
|
|
|
|
return I_32_RN_UCS_4 + offset;
|
|
|
|
|
case TYPE_APA106:
|
|
|
|
|
return I_32_RN_APA106_3 + offset;
|
|
|
|
|
case TYPE_FW1906:
|
|
|
|
|
return I_32_RN_FW6_5 + offset;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
@ -1339,4 +1463,6 @@ class PolyBus {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
uint8_t PolyBus::cctWW;
|
|
|
|
|
uint8_t PolyBus::cctCW;
|
|
|
|
|
#endif
|
|
|
|
|