FastLED 3.9.15
Loading...
Searching...
No Matches
rgbww.h File Reference

Detailed Description

5-channel RGB + warm-W + cool-W (RGBWW / RGBCCT) configuration types (issue #2558, Phase 3 of #2545).

Mirrors fl/gfx/rgbw.h but carries two CCTs for the layered solver. The actual rgb_2_rgbww dispatch and encoder pipeline arrive in later phases — this header defines TYPES ONLY so the rest of the codebase can reference Rgbww / RGBWW_MODE / EOrderWW.

Definition in file rgbww.h.

+ Include dependency graph for rgbww.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::Rgbww
 Per-strip RGBWW configuration. More...
 
struct  fl::RgbwwDefault
 Default RGBWW configuration: colorimetric mode at warm=2700K / cool=6500K, default profile, end-aligned warm-then-cool W byte placement. More...
 
struct  fl::RgbwwInvalid
 Sentinel: disables RGBWW (variant should hold fl::Empty instead, but this is kept for symmetry with RgbwInvalid). More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::colorimetric_detail
 

Typedefs

typedef void(* fl::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)
 

Enumerations

enum  { fl::kRGBWWDefaultWarmCct = 2700 , fl::kRGBWWDefaultCoolCct = 6500 }
 Default warm / cool reference CCTs for built-in profiles. More...
 
enum class  fl::EOrderWW : fl::u8 {
  fl::WwWcEnd = 0x34 , fl::WcWwEnd = 0x43 , fl::WwWcStart = 0x01 , fl::WcWwStart = 0x10 ,
  fl::WWDefault = WwWcEnd
}
 White-byte ordering for 5-channel RGBWW output. More...
 
enum class  fl::RGBWW_MODE : fl::u8 { fl::kRGBWWInvalid , fl::kRGBWWColorimetric , fl::kRGBWWColorimetricBoosted , fl::kRGBWWUserFunction }
 RGB -> RGBWW conversion modes (issue #2558, Phase 3 of #2545). More...
 

Functions

const colorimetric_detail::RgbcctProfilefl::get_rgbww_colorimetric_profile () FL_NOEXCEPT
 
FASTLED_FORCE_INLINE void fl::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_NOEXCEPT
 
void fl::rgb_2_rgbww_colorimetric (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_NOEXCEPT
 Colorimetric strict sub-gamut solver for RGBWW (gist sec 5 + sec 11-12, using solve_rgbcct from rgbw_colorimetric.h).
 
void fl::rgb_2_rgbww_colorimetric_boosted (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_NOEXCEPT
 Colorimetric white-overdrive solver for RGBWW (wx_lp_legacy + RGBCCT layered blend).
 
void fl::rgb_2_rgbww_user_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) FL_NOEXCEPT
 User-installable RGB->RGBWW function.
 
void fl::rgbww_partial_reorder (EOrderWW ww_placement, fl::u8 b0, fl::u8 b1, fl::u8 b2, fl::u8 ww, fl::u8 wc, fl::u8 *out_b0, fl::u8 *out_b1, fl::u8 *out_b2, fl::u8 *out_b3, fl::u8 *out_b4) FL_NOEXCEPT
 Dispatch RGB->RGBWW for a given mode.
 
void fl::set_rgb_2_rgbww_function (rgb_2_rgbww_function func) FL_NOEXCEPT
 
void fl::set_rgbww_colorimetric_profile (const colorimetric_detail::RgbcctProfile *profile) FL_NOEXCEPT