16#ifndef FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
18#define FASTLED_PIXEL_ITERATOR_HAS_APA102_HD 0
24template<
typename PixelControllerT>
26 static void loadAndScaleRGBW(
void* pixel_controller,
Rgbw rgbw, uint8_t* b0_out, uint8_t* b1_out, uint8_t* b2_out, uint8_t* b3_out) {
27 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
28 pc->loadAndScaleRGBW(
rgbw, b0_out, b1_out, b2_out, b3_out);
31 static void loadAndScaleRGB(
void* pixel_controller, uint8_t* r_out, uint8_t* g_out, uint8_t* b_out) {
32 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
33 pc->loadAndScaleRGB(r_out, g_out, b_out);
36 #if FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
38 static void loadAndScale_APA102_HD(
void* pixel_controller, uint8_t* b0_out, uint8_t* b1_out, uint8_t* b2_out, uint8_t* brightness_out) {
39 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
40 pc->loadAndScale_APA102_HD(b0_out, b1_out, b2_out, brightness_out);
46 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
47 pc->loadAndScale_WS2816_HD(s0_out, s1_out, s2_out);
51 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
56 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
60 static int size(
void* pixel_controller) {
61 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
64 static bool has(
void* pixel_controller,
int n) {
65 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
70 #if FASTLED_HD_COLOR_MIXING
71 static void getHdScale(
void* pixel_controller, uint8_t* c0, uint8_t* c1, uint8_t* c2, uint8_t*
brightness) {
72 PixelControllerT* pc =
static_cast<PixelControllerT*
>(pixel_controller);
80#if FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
81typedef void (*loadAndScale_APA102_HDFunction)(
void* pixel_controller, uint8_t* b0_out, uint8_t* b1_out, uint8_t* b2_out, uint8_t* brightness_out);
100 template<
typename PixelControllerT>
130 #if FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
131 mLoadAndScale_APA102_HD = &Vtable::loadAndScale_APA102_HD;
136 mSize = &Vtable::size;
138 #if FASTLED_HD_COLOR_MIXING
139 mGetHdScale = &Vtable::getHdScale;
150 #if FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
151 void loadAndScale_APA102_HD(uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *brightness_out) {
152 mLoadAndScale_APA102_HD(
mPixelController, b0_out, b1_out, b2_out, brightness_out);
165 #if FASTLED_HD_COLOR_MIXING
166 void getHdScale(uint8_t* c0, uint8_t* c1, uint8_t* c2, uint8_t*
brightness) {
177 #if FASTLED_PIXEL_ITERATOR_HAS_APA102_HD
178 loadAndScale_APA102_HDFunction mLoadAndScale_APA102_HD =
nullptr;
185 #if FASTLED_HD_COLOR_MIXING
UISlider brightness("Brightness", 128, 0, 255, 1)
loadAndScale_WS2816_HDFunction mLoadAndScale_WS2816_HD
void loadAndScaleRGBW(uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *w_out)
stepDitheringFunction mStepDithering
advanceDataFunction mAdvanceData
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
PixelIterator(PixelControllerT *pc, Rgbw rgbw)
Defines the red, green, and blue (RGB) pixel struct.
void(* loadAndScale_WS2816_HDFunction)(void *pixel_controller, uint16_t *b0_out, uint16_t *b1_out, uint16_t *b2_out)
void(* stepDitheringFunction)(void *pixel_controller)
uint8_t(* globalBrightness)(void *pixel_controller)
int(* sizeFunction)(void *pixel_controller)
bool(* hasFunction)(void *pixel_controller, int n)
void(* getHdScaleFunction)(void *pixel_controller, uint8_t *c0, uint8_t *c1, uint8_t *c2, uint8_t *brightness)
void(* advanceDataFunction)(void *pixel_controller)
void(* loadAndScaleRGBWFunction)(void *pixel_controller, Rgbw rgbw, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *b3_out)
void(* loadAndScaleRGBFunction)(void *pixel_controller, uint8_t *r_out, uint8_t *g_out, uint8_t *b_out)
fl::PixelIterator PixelIterator
Functions for red, green, blue, white (RGBW) output.
static void loadAndScaleRGBW(void *pixel_controller, Rgbw rgbw, uint8_t *b0_out, uint8_t *b1_out, uint8_t *b2_out, uint8_t *b3_out)
static void stepDithering(void *pixel_controller)
static bool has(void *pixel_controller, int n)
static void loadAndScaleRGB(void *pixel_controller, uint8_t *r_out, uint8_t *g_out, uint8_t *b_out)
static void advanceData(void *pixel_controller)
static int size(void *pixel_controller)
static void loadAndScale_WS2816_HD(void *pixel_controller, uint16_t *s0_out, uint16_t *s1_out, uint16_t *s2_out)