68 const
fl::
u8 (&premix)[3], const
fl::
u8 (&order)[3],
199 switch (cfg.rgbww_mode) {
200 case RGBWW_MODE::kRGBWWInvalid:
202 *out_r = *out_g = *out_b = *out_ww = *out_wc = 0;
204 case RGBWW_MODE::kRGBWWColorimetric:
205 rgb_2_rgbww_colorimetric(cfg, r, g, b, r_scale, g_scale, b_scale,
206 out_r, out_g, out_b, out_ww, out_wc);
208 case RGBWW_MODE::kRGBWWColorimetricBoosted:
209 rgb_2_rgbww_colorimetric_boosted(cfg, r, g, b, r_scale, g_scale, b_scale,
210 out_r, out_g, out_b, out_ww, out_wc);
212 case RGBWW_MODE::kRGBWWUserFunction:
213 rgb_2_rgbww_user_function(cfg, r, g, b, r_scale, g_scale, b_scale,
214 out_r, out_g, out_b, out_ww, out_wc);
217 *out_r = *out_g = *out_b = *out_ww = *out_wc = 0;
#define FASTLED_FORCE_INLINE
void(*)(const Rgbww &rgbww, const fl::u8(&raw)[3], const fl::u8(&premix)[3], const fl::u8(&order)[3], fl::u8 *b0, fl::u8 *b1, fl::u8 *b2, fl::u8 *b3, fl::u8 *b4) RgbwwConvertFn
RgbwwConvertFn rgbww_conversion() FL_NO_EXCEPT
void enable_rgbww_conversion() FL_NO_EXCEPT
Installs the RGBWW pixel conversion (see enable_rgbw_conversion, #4795).
Compile-time linker keep-alive hook for a single fl::Bus.
Tag for constructing an inactive Rgbww without linking the RGBWW encoder.
void rgbww_partial_reorder(EOrderWW ww_placement, u8 b0, u8 b1, u8 b2, u8 ww, u8 wc, u8 *out_b0, u8 *out_b1, u8 *out_b2, u8 *out_b3, u8 *out_b4) FL_NO_EXCEPT
Dispatch RGB->RGBWW for a given mode.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
const colorimetric_detail::RgbcctProfile kRgbwwDefaultProfile
const colorimetric_detail::RgbcctProfile * get_rgbww_colorimetric_profile() FL_NO_EXCEPT
EOrderWW
White-byte ordering for 5-channel RGBWW output.
@ WcWwEnd
RGB followed by cool-W, warm-W.
@ WwWcEnd
RGB followed by warm-W, cool-W.
@ WcWwStart
cool-W, warm-W, then RGB
@ WwWcStart
warm-W, cool-W, then RGB
void rgb_2_rgbww_colorimetric(const Rgbww &cfg, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_ww, u8 *out_wc) FL_NO_EXCEPT
Colorimetric strict sub-gamut solver for RGBWW (gist sec 5 + sec 11-12, using solve_rgbcct from rgbw_...
void set_rgbww_colorimetric_profile(const colorimetric_detail::RgbcctProfile *profile) FL_NO_EXCEPT
void rgb_2_rgbww_user_function(const Rgbww &cfg, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_ww, u8 *out_wc) FL_NO_EXCEPT
User-installable RGB->RGBWW function.
void set_rgb_2_rgbww_function(rgb_2_rgbww_function func) FL_NO_EXCEPT
void(* rgb_2_rgbww_function)(const Rgbww &cfg, fl::u8 r, fl::u8 g, fl::u8 b, fl::u8 r_scale, fl::u8 g_scale, fl::u8 b_scale, fl::u8 *out_r, fl::u8 *out_g, fl::u8 *out_b, fl::u8 *out_ww, fl::u8 *out_wc)
FASTLED_FORCE_INLINE void rgb_2_rgbww(const Rgbww &cfg, fl::u8 r, fl::u8 g, fl::u8 b, fl::u8 r_scale, fl::u8 g_scale, fl::u8 b_scale, fl::u8 *out_r, fl::u8 *out_g, fl::u8 *out_b, fl::u8 *out_ww, fl::u8 *out_wc) FL_NO_EXCEPT
RGBWW_MODE
RGB -> RGBWW conversion modes (issue #2558, Phase 3 of #2545).
@ kRGBWWColorimetricBoosted
void rgb_2_rgbww_colorimetric_boosted(const Rgbww &cfg, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_ww, u8 *out_wc) FL_NO_EXCEPT
Colorimetric white-overdrive solver for RGBWW (wx_lp_legacy + RGBCCT layered blend).
Base definition for an LED controller.
Rgbww(fl::u16 warm=kRGBWWDefaultWarmCct, fl::u16 cool=kRGBWWDefaultCoolCct, RGBWW_MODE mode=RGBWW_MODE::kRGBWWColorimetric, EOrderWW placement=EOrderWW::WWDefault) FL_NO_EXCEPT
Rgbww(detail::RgbwwNoEncoder) FL_NO_EXCEPT
Inactive value that does not link the RGBWW encoder (RgbwwInvalid).
FASTLED_FORCE_INLINE bool active() const FL_NO_EXCEPT
const colorimetric_detail::RgbcctProfile * profile
Optional override for the diode profile (warm + cool W chromaticity + luminance).
RgbwwDefault() FL_NO_EXCEPT
static Rgbww value() FL_NO_EXCEPT
static Rgbww value() FL_NO_EXCEPT
RgbwwInvalid() FL_NO_EXCEPT