42template <
typename InputIterator,
typename OutputIterator>
43void encodeHD108(InputIterator first, InputIterator last, OutputIterator out,
46 for (
int i = 0; i < 8; i++) {
56 while (first != last) {
67 *out++ =
static_cast<u8>(r16 >> 8);
68 *out++ =
static_cast<u8>(r16 & 0xFF);
69 *out++ =
static_cast<u8>(g16 >> 8);
70 *out++ =
static_cast<u8>(g16 & 0xFF);
71 *out++ =
static_cast<u8>(b16 >> 8);
72 *out++ =
static_cast<u8>(b16 & 0xFF);
79 const size_t latch = num_leds / 2 + 4;
80 for (
size_t i = 0; i < latch; i++) {
98template <
typename InputIterator,
typename BrightnessIterator,
typename OutputIterator>
100 BrightnessIterator brightness_first, OutputIterator out)
FL_NO_EXCEPT {
103 for (
int i = 0; i < 8; i++) {
120 while (first != last) {
131 *out++ =
static_cast<u8>(r16 >> 8);
132 *out++ =
static_cast<u8>(r16 & 0xFF);
133 *out++ =
static_cast<u8>(g16 >> 8);
134 *out++ =
static_cast<u8>(g16 & 0xFF);
135 *out++ =
static_cast<u8>(b16 >> 8);
136 *out++ =
static_cast<u8>(b16 & 0xFF);
143 const size_t latch = num_leds / 2 + 4;
144 for (
size_t i = 0; i < latch; i++) {
A fixed-size array implementation similar to std::array.
Constants for SPI chipset encoders.
Shared utilities for SPI chipset encoders.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
void hd108BrightnessHeader(u8 brightness_8bit, u8 *f0_out, u8 *f1_out) FL_NO_EXCEPT
Generate HD108 per-channel gain header bytes.
void encodeHD108_HD(InputIterator first, InputIterator last, BrightnessIterator brightness_first, OutputIterator out) FL_NO_EXCEPT
Encode pixel data in HD108 format with per-LED brightness.
void encodeHD108(InputIterator first, InputIterator last, OutputIterator out, u8 global_brightness=255) FL_NO_EXCEPT
Encode pixel data in HD108 format with global brightness.
u16 hd108GammaCorrect(u8 value) FL_NO_EXCEPT
Convert 8-bit color to HD108 16-bit gamma-corrected value (gamma 2.8)
Base definition for an LED controller.