17template<
typename PixelControllerT>
19 static void loadAndScaleRGBW(
void* pixel_controller,
Rgbw rgbw, uint8_t* b0_out, uint8_t* b1_out, uint8_t* b2_out, uint8_t* b3_out) {
20 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
21 pc->loadAndScaleRGBW(
rgbw, b0_out, b1_out, b2_out, b3_out);
24 static void loadAndScaleRGB(
void* pixel_controller, uint8_t* r_out, uint8_t* g_out, uint8_t* b_out) {
25 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
26 pc->loadAndScaleRGB(r_out, g_out, b_out);
29 static void loadAndScale_APA102_HD(
void* pixel_controller, uint8_t* b0_out, uint8_t* b1_out, uint8_t* b2_out, uint8_t* brightness_out) {
30 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
31 pc->loadAndScale_APA102_HD(b0_out, b1_out, b2_out, brightness_out);
35 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
36 pc->loadAndScale_WS2816_HD(s0_out, s1_out, s2_out);
40 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
45 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
49 static int size(
void* pixel_controller) {
50 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
53 static bool has(
void* pixel_controller,
int n) {
54 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
59 #if FASTLED_HD_COLOR_MIXING
60 static void getHdScale(
void* pixel_controller, uint8_t* c0, uint8_t* c1, uint8_t* c2, uint8_t*
brightness) {
61 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
87 template<
typename PixelControllerT>
121 mSize = &Vtable::size;
123 #if FASTLED_HD_COLOR_MIXING
124 mGetHdScale = &Vtable::getHdScale;
148 #if FASTLED_HD_COLOR_MIXING
149 void getHdScale(uint8_t* c0, uint8_t* c1, uint8_t* c2, uint8_t*
brightness) {
166 #if FASTLED_HD_COLOR_MIXING
UISlider brightness("Brightness", 255, 0, 255, 1)
void loadAndScale_APA102_HD(uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *brightness_out)
loadAndScaleRGBFunction mLoadAndScaleRGB
void loadAndScale_WS2816_HD(uint16_t *s0_out, uint16_t *s1_out, uint16_t *s2_out)
void loadAndScaleRGB(uint8_t *r_out, uint8_t *g_out, uint8_t *b_out)
loadAndScaleRGBWFunction mLoadAndScaleRGBW
stepDitheringFunction mStepDithering
void loadAndScaleRGBW(uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *w_out)
PixelIterator(PixelControllerT *pc, Rgbw rgbw)
advanceDataFunction mAdvanceData
loadAndScale_WS2816_HDFunction mLoadAndScale_WS2816_HD
loadAndScale_APA102_HDFunction mLoadAndScale_APA102_HD
Defines the red, green, and blue (RGB) pixel struct.
#define FASTLED_NAMESPACE_END
Implements the FastLED namespace macros.
void(* loadAndScale_WS2816_HDFunction)(void *pixel_controller, uint16_t *b0_out, uint16_t *b1_out, uint16_t *b2_out)
void(* loadAndScaleRGBWFunction)(void *pixel_controller, Rgbw rgbw, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *b3_out)
void(* advanceDataFunction)(void *pixel_controller)
void(* stepDitheringFunction)(void *pixel_controller)
bool(* hasFunction)(void *pixel_controller, int n)
void(* loadAndScaleRGBFunction)(void *pixel_controller, uint8_t *r_out, uint8_t *g_out, uint8_t *b_out)
uint8_t(* globalBrightness)(void *pixel_controller)
int(* sizeFunction)(void *pixel_controller)
void(* getHdScaleFunction)(void *pixel_controller, uint8_t *c0, uint8_t *c1, uint8_t *c2, uint8_t *brightness)
void(* loadAndScale_APA102_HDFunction)(void *pixel_controller, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *brightness_out)
Functions for red, green, blue, white (RGBW) output.
static int size(void *pixel_controller)
static void advanceData(void *pixel_controller)
static void stepDithering(void *pixel_controller)
static void loadAndScaleRGB(void *pixel_controller, uint8_t *r_out, uint8_t *g_out, uint8_t *b_out)
static void loadAndScale_WS2816_HD(void *pixel_controller, uint16_t *s0_out, uint16_t *s1_out, uint16_t *s2_out)
static void loadAndScale_APA102_HD(void *pixel_controller, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *brightness_out)
static bool has(void *pixel_controller, int n)
static void loadAndScaleRGBW(void *pixel_controller, Rgbw rgbw, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *b3_out)