36template <
typename InputIterator,
typename OutputIterator>
37void encodeSK9822(InputIterator first, InputIterator last, OutputIterator out,
40 global_brightness = global_brightness & 0x1F;
50 while (first != last) {
52 *out++ = 0xE0 | global_brightness;
63 size_t end_dwords = (num_leds / 32) + 1;
64 for (
size_t i = 0; i < end_dwords * 4; i++) {
78template <
typename InputIterator,
typename BrightnessIterator,
typename OutputIterator>
80 BrightnessIterator brightness_first, OutputIterator out)
FL_NO_EXCEPT {
89 while (first != last) {
91 u8 brightness_8bit = *brightness_first;
94 *out++ = 0xE0 | brightness_5bit;
105 size_t end_dwords = (num_leds / 32) + 1;
106 for (
size_t i = 0; i < end_dwords * 4; i++) {
120template <
typename InputIterator,
typename OutputIterator>
126 *out++ = 0x00; *out++ = 0x00; *out++ = 0x00; *out++ = 0x00;
127 *out++ = 0xFF; *out++ = 0xFF; *out++ = 0xFF; *out++ = 0xFF;
139 const u16 maxBrightness = 0x1F;
141 u8 max_rg = (first_pixel[2] > first_pixel[1]) ? first_pixel[2] : first_pixel[1];
142 u8 max_component = (max_rg > first_pixel[0]) ? max_rg : first_pixel[0];
143 u16
brightness = ((((u16)max_component + 1) * maxBrightness - 1) >> 8) + 1;
151 *out++ = 0xE0 | (global_brightness & 0x1F);
159 while (first != last) {
161 *out++ = 0xE0 | (global_brightness & 0x1F);
170 size_t end_dwords = (num_leds / 32) + 1;
171 for (
size_t i = 0; i < end_dwords * 4; i++) {
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
A fixed-size array implementation similar to std::array.
#define FL_NO_INLINE_IF_AVR
Constants for SPI chipset encoders.
Shared utilities for SPI chipset encoders.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
void encodeSK9822_HD(InputIterator first, InputIterator last, BrightnessIterator brightness_first, OutputIterator out) FL_NO_EXCEPT
Encode pixel data in SK9822 format with per-LED brightness.
u8 mapBrightness8to5(u8 brightness_8bit) FL_NO_EXCEPT
Map 8-bit brightness to 5-bit (0-31)
FL_NO_INLINE_IF_AVR void encodeSK9822_AutoBrightness(InputIterator first, InputIterator last, OutputIterator out) FL_NO_EXCEPT
Encode pixel data in SK9822 format (auto-detected brightness from first pixel)
void encodeSK9822(InputIterator first, InputIterator last, OutputIterator out, u8 global_brightness=31) FL_NO_EXCEPT
Encode pixel data in SK9822 format with global brightness.
Base definition for an LED controller.