FastLED 3.9.7
|
Functions for red, green, blue, white (RGBW) output.
Definition in file rgbw.h.
Go to the source code of this file.
Classes | |
struct | Rgbw |
struct | RgbwInvalid |
struct | RgbwDefault |
struct | RgbwWhiteIsOff |
Typedefs | |
typedef void(* | rgb_2_rgbw_function) (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
Enumerations | |
enum | RGBW_MODE { kRGBWInvalid , kRGBWNullWhitePixel , kRGBWExactColors , kRGBWBoostedWhite , kRGBWMaxBrightness , kRGBWUserFunction } |
enum | { kRGBWDefaultColorTemp = 6000 } |
Functions | |
void | rgb_2_rgbw_exact (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
Converts RGB to RGBW using a color transfer method from saturated color channels to white. | |
void | rgb_2_rgbw_max_brightness (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
The minimum brigthness of the RGB channels is used to set the W channel. | |
void | rgb_2_rgbw_null_white_pixel (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
Converts RGB to RGBW with the W channel set to black, always. | |
void | rgb_2_rgbw_white_boosted (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
Converts RGB to RGBW with a boosted white channel. | |
void | rgb_2_rgbw_user_function (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
void | set_rgb_2_rgbw_function (rgb_2_rgbw_function func) |
FASTLED_FORCE_INLINE void | rgb_2_rgbw (RGBW_MODE mode, uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
Converts RGB to RGBW using one of the functions. | |
template<RGBW_MODE MODE> | |
FASTLED_FORCE_INLINE void | rgb_2_rgbw (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
void | rgbw_partial_reorder (EOrderW w_placement, uint8_t b0, uint8_t b1, uint8_t b2, uint8_t w, uint8_t *out_b0, uint8_t *out_b1, uint8_t *out_b2, uint8_t *out_b3) |
typedef void(* rgb_2_rgbw_function) (uint16_t w_color_temperature, uint8_t r, uint8_t g, uint8_t b, uint8_t r_scale, uint8_t g_scale, uint8_t b_scale, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b, uint8_t *out_w) |
FASTLED_FORCE_INLINE void rgb_2_rgbw | ( | RGBW_MODE | mode, |
uint16_t | w_color_temperature, | ||
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
FASTLED_FORCE_INLINE void rgb_2_rgbw | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
void rgb_2_rgbw_exact | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
Converts RGB to RGBW using a color transfer method from saturated color channels to white.
This is designed to produce the most accurate white point for a given color temperature and reduces power usage of the chip since a white led is much more efficient than three color channels of the same power mixing together. However the pixel will never achieve full brightness since the white channel is 3x more efficient than the color channels mixed together, so in this mode the max brightness of a given pixel is reduced.
void rgb_2_rgbw_max_brightness | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
The minimum brigthness of the RGB channels is used to set the W channel.
This will allow the max brightness of the led chipset to be used. However the leds will appear over-desaturated in this mode.
void rgb_2_rgbw_null_white_pixel | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
void rgb_2_rgbw_user_function | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
void rgb_2_rgbw_white_boosted | ( | uint16_t | w_color_temperature, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b, | ||
uint8_t | r_scale, | ||
uint8_t | g_scale, | ||
uint8_t | b_scale, | ||
uint8_t * | out_r, | ||
uint8_t * | out_g, | ||
uint8_t * | out_b, | ||
uint8_t * | out_w ) |
void rgbw_partial_reorder | ( | EOrderW | w_placement, |
uint8_t | b0, | ||
uint8_t | b1, | ||
uint8_t | b2, | ||
uint8_t | w, | ||
uint8_t * | out_b0, | ||
uint8_t * | out_b1, | ||
uint8_t * | out_b2, | ||
uint8_t * | out_b3 ) |