FastLED 3.10.8
Loading...
Searching...
No Matches

◆ writeAPA102()

template<typename CONTAINER_UIN8_T>
void fl::PixelIterator::writeAPA102 ( CONTAINER_UIN8_T * out,
bool hd_gamma = false )
inline

Encode pixels in APA102/DOTSTAR format (zero allocation)

Parameters
outOutput buffer to write encoded bytes
hd_gammaEnable high-definition gamma correction (per-LED brightness)
Note
Protocol: [Start:32b 0x00][LED:[0xE0|bri5][B][G][R]] x N, then [End: (N/32)+1 x 32b 0xFF]

Definition at line 512 of file pixel_iterator.h.

512 {
513 FL_UNUSED(hd_gamma); // only read under FASTLED_HD_COLOR_MIXING
514 auto back_ins = fl::back_inserter(*out);
515
516 #if FASTLED_HD_COLOR_MIXING
517 if (hd_gamma) {
518 // HD gamma mode: per-LED brightness
519 auto pixel_range = makeScaledPixelRangeRGB(this);
520 auto brightness = makeScaledBrightness(this);
521 encodeAPA102_HD(pixel_range.first, pixel_range.second,
522 brightness, back_ins);
523 return;
524 }
525 #endif
526
527 #if FASTLED_USE_GLOBAL_BRIGHTNESS == 1
528 // Global brightness mode: extract from first pixel
529 auto pixel_range = makeScaledPixelRangeRGB(this);
530 encodeAPA102_AutoBrightness(pixel_range.first, pixel_range.second,
531 back_ins);
532 #else
533 // Full brightness mode
534 auto pixel_range = makeScaledPixelRangeRGB(this);
535 encodeAPA102(pixel_range.first, pixel_range.second,
536 back_ins, 31);
537 #endif
538 }
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
back_insert_iterator< Container > back_inserter(Container &c) FL_NO_EXCEPT
Helper function to create a back_insert_iterator.
Definition iterator.h:139
FL_NO_INLINE_IF_AVR FL_OPTIMIZE_O2 void encodeAPA102_AutoBrightness(InputIterator first, InputIterator last, OutputIterator out) FL_NO_EXCEPT
Encode pixel data in APA102 format (auto-detected brightness from first pixel)
Definition apa102.h:131
void encodeAPA102_HD(InputIterator first, InputIterator last, BrightnessIterator brightness_first, OutputIterator out) FL_NO_EXCEPT
Encode pixel data in APA102 format with per-LED brightness.
Definition apa102.h:86
void encodeAPA102(InputIterator first, InputIterator last, OutputIterator out, u8 global_brightness=31) FL_NO_EXCEPT
Encode pixel data in APA102 format with global brightness.
Definition apa102.h:45
pair< detail::ScaledPixelIteratorRGB, detail::ScaledPixelIteratorRGB > makeScaledPixelRangeRGB(PixelIterator *pixels) FL_NO_EXCEPT
Create RGB input iterator range from PixelIterator.
#define FL_UNUSED(x)

References fl::back_inserter(), brightness, fl::encodeAPA102(), fl::encodeAPA102_AutoBrightness(), fl::encodeAPA102_HD(), fl::FL_NO_EXCEPT, FL_UNUSED, and fl::makeScaledPixelRangeRGB().

+ Here is the call graph for this function: