37template <
typename InputIterator,
typename OutputIterator>
38void encodeHD108(InputIterator first, InputIterator last, OutputIterator out,
41 for (
int i = 0; i < 8; i++) {
51 while (first != last) {
62 *out++ =
static_cast<u8>(r16 >> 8);
63 *out++ =
static_cast<u8>(r16 & 0xFF);
64 *out++ =
static_cast<u8>(g16 >> 8);
65 *out++ =
static_cast<u8>(g16 & 0xFF);
66 *out++ =
static_cast<u8>(b16 >> 8);
67 *out++ =
static_cast<u8>(b16 & 0xFF);
74 const size_t latch = num_leds / 2 + 4;
75 for (
size_t i = 0; i < latch; i++) {
89template <
typename InputIterator,
typename BrightnessIterator,
typename OutputIterator>
91 BrightnessIterator brightness_first, OutputIterator out)
FL_NOEXCEPT {
93 for (
int i = 0; i < 8; i++) {
98 u8 lastBrightness8 = 0;
99 u8 lastF0 = 0xFF, lastF1 = 0xFF;
103 while (first != last) {
114 if (
brightness == lastBrightness8 && lastF0 != 0xFF) {
127 *out++ =
static_cast<u8>(r16 >> 8);
128 *out++ =
static_cast<u8>(r16 & 0xFF);
129 *out++ =
static_cast<u8>(g16 >> 8);
130 *out++ =
static_cast<u8>(g16 & 0xFF);
131 *out++ =
static_cast<u8>(b16 >> 8);
132 *out++ =
static_cast<u8>(b16 & 0xFF);
140 const size_t latch = num_leds / 2 + 4;
141 for (
size_t i = 0; i < latch; i++) {
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
A fixed-size array implementation similar to std::array.
Constants for SPI chipset encoders.
Shared utilities for SPI chipset encoders.
void hd108BrightnessHeader(u8 brightness_8bit, u8 *f0_out, u8 *f1_out) FL_NOEXCEPT
Generate HD108 per-channel gain header bytes.
u16 hd108GammaCorrect(u8 value) FL_NOEXCEPT
Convert 8-bit color to HD108 16-bit gamma-corrected value (gamma 2.8)
void encodeHD108_HD(InputIterator first, InputIterator last, BrightnessIterator brightness_first, OutputIterator out) FL_NOEXCEPT
Encode pixel data in HD108 format with per-LED brightness.
void encodeHD108(InputIterator first, InputIterator last, OutputIterator out, u8 global_brightness=255) FL_NOEXCEPT
Encode pixel data in HD108 format with global brightness.
Base definition for an LED controller.