FastLED 3.9.8
Loading...
Searching...
No Matches
CRGB Struct Reference

Detailed Description

#include <crgb.h>

Public Types

enum  HTMLColorCode {
  AliceBlue =0xF0F8FF , Amethyst =0x9966CC , AntiqueWhite =0xFAEBD7 , Aqua =0x00FFFF ,
  Aquamarine =0x7FFFD4 , Azure =0xF0FFFF , Beige =0xF5F5DC , Bisque =0xFFE4C4 ,
  Black =0x000000 , BlanchedAlmond =0xFFEBCD , Blue =0x0000FF , BlueViolet =0x8A2BE2 ,
  Brown =0xA52A2A , BurlyWood =0xDEB887 , CadetBlue =0x5F9EA0 , Chartreuse =0x7FFF00 ,
  Chocolate =0xD2691E , Coral =0xFF7F50 , CornflowerBlue =0x6495ED , Cornsilk =0xFFF8DC ,
  Crimson =0xDC143C , Cyan =0x00FFFF , DarkBlue =0x00008B , DarkCyan =0x008B8B ,
  DarkGoldenrod =0xB8860B , DarkGray =0xA9A9A9 , DarkGrey =0xA9A9A9 , DarkGreen =0x006400 ,
  DarkKhaki =0xBDB76B , DarkMagenta =0x8B008B , DarkOliveGreen =0x556B2F , DarkOrange =0xFF8C00 ,
  DarkOrchid =0x9932CC , DarkRed =0x8B0000 , DarkSalmon =0xE9967A , DarkSeaGreen =0x8FBC8F ,
  DarkSlateBlue =0x483D8B , DarkSlateGray =0x2F4F4F , DarkSlateGrey =0x2F4F4F , DarkTurquoise =0x00CED1 ,
  DarkViolet =0x9400D3 , DeepPink =0xFF1493 , DeepSkyBlue =0x00BFFF , DimGray =0x696969 ,
  DimGrey =0x696969 , DodgerBlue =0x1E90FF , FireBrick =0xB22222 , FloralWhite =0xFFFAF0 ,
  ForestGreen =0x228B22 , Fuchsia =0xFF00FF , Gainsboro =0xDCDCDC , GhostWhite =0xF8F8FF ,
  Gold =0xFFD700 , Goldenrod =0xDAA520 , Gray =0x808080 , Grey =0x808080 ,
  Green =0x008000 , GreenYellow =0xADFF2F , Honeydew =0xF0FFF0 , HotPink =0xFF69B4 ,
  IndianRed =0xCD5C5C , Indigo =0x4B0082 , Ivory =0xFFFFF0 , Khaki =0xF0E68C ,
  Lavender =0xE6E6FA , LavenderBlush =0xFFF0F5 , LawnGreen =0x7CFC00 , LemonChiffon =0xFFFACD ,
  LightBlue =0xADD8E6 , LightCoral =0xF08080 , LightCyan =0xE0FFFF , LightGoldenrodYellow =0xFAFAD2 ,
  LightGreen =0x90EE90 , LightGrey =0xD3D3D3 , LightPink =0xFFB6C1 , LightSalmon =0xFFA07A ,
  LightSeaGreen =0x20B2AA , LightSkyBlue =0x87CEFA , LightSlateGray =0x778899 , LightSlateGrey =0x778899 ,
  LightSteelBlue =0xB0C4DE , LightYellow =0xFFFFE0 , Lime =0x00FF00 , LimeGreen =0x32CD32 ,
  Linen =0xFAF0E6 , Magenta =0xFF00FF , Maroon =0x800000 , MediumAquamarine =0x66CDAA ,
  MediumBlue =0x0000CD , MediumOrchid =0xBA55D3 , MediumPurple =0x9370DB , MediumSeaGreen =0x3CB371 ,
  MediumSlateBlue =0x7B68EE , MediumSpringGreen =0x00FA9A , MediumTurquoise =0x48D1CC , MediumVioletRed =0xC71585 ,
  MidnightBlue =0x191970 , MintCream =0xF5FFFA , MistyRose =0xFFE4E1 , Moccasin =0xFFE4B5 ,
  NavajoWhite =0xFFDEAD , Navy =0x000080 , OldLace =0xFDF5E6 , Olive =0x808000 ,
  OliveDrab =0x6B8E23 , Orange =0xFFA500 , OrangeRed =0xFF4500 , Orchid =0xDA70D6 ,
  PaleGoldenrod =0xEEE8AA , PaleGreen =0x98FB98 , PaleTurquoise =0xAFEEEE , PaleVioletRed =0xDB7093 ,
  PapayaWhip =0xFFEFD5 , PeachPuff =0xFFDAB9 , Peru =0xCD853F , Pink =0xFFC0CB ,
  Plaid =0xCC5533 , Plum =0xDDA0DD , PowderBlue =0xB0E0E6 , Purple =0x800080 ,
  Red =0xFF0000 , RosyBrown =0xBC8F8F , RoyalBlue =0x4169E1 , SaddleBrown =0x8B4513 ,
  Salmon =0xFA8072 , SandyBrown =0xF4A460 , SeaGreen =0x2E8B57 , Seashell =0xFFF5EE ,
  Sienna =0xA0522D , Silver =0xC0C0C0 , SkyBlue =0x87CEEB , SlateBlue =0x6A5ACD ,
  SlateGray =0x708090 , SlateGrey =0x708090 , Snow =0xFFFAFA , SpringGreen =0x00FF7F ,
  SteelBlue =0x4682B4 , Tan =0xD2B48C , Teal =0x008080 , Thistle =0xD8BFD8 ,
  Tomato =0xFF6347 , Turquoise =0x40E0D0 , Violet =0xEE82EE , Wheat =0xF5DEB3 ,
  White =0xFFFFFF , WhiteSmoke =0xF5F5F5 , Yellow =0xFFFF00 , YellowGreen =0x9ACD32 ,
  FairyLight =0xFFE42D , FairyLightNCC =0xFF9D2A
}
 Predefined RGB colors. More...
 

Public Member Functions

FASTLED_FORCE_INLINE uint8_t & operator[] (uint8_t x)
 Array access operator to index into the CRGB object.
 
FASTLED_FORCE_INLINE const uint8_t & operator[] (uint8_t x) const
 Array access operator to index into the CRGB object.
 
FASTLED_FORCE_INLINE CRGB ()=default
 Default constructor.
 
constexpr CRGB (uint8_t ir, uint8_t ig, uint8_t ib) noexcept
 Allow construction from red, green, and blue.
 
constexpr CRGB (uint32_t colorcode) noexcept
 Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code.
 
constexpr uint32_t as_uint32_t () const noexcept
 
constexpr CRGB (LEDColorCorrection colorcode) noexcept
 Allow construction from a LEDColorCorrection enum.
 
constexpr CRGB (ColorTemperature colorcode) noexcept
 Allow construction from a ColorTemperature enum.
 
FASTLED_FORCE_INLINE CRGB (const CRGB &rhs)=default
 Allow copy construction.
 
FASTLED_FORCE_INLINE CRGB (const CHSV &rhs)
 Allow construction from a CHSV color.
 
FASTLED_FORCE_INLINE CRGBoperator= (const CRGB &rhs)=default
 Allow assignment from one RGB struct to another.
 
FASTLED_FORCE_INLINE CRGBoperator= (const uint32_t colorcode)
 Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
 
FASTLED_FORCE_INLINE CRGBsetRGB (uint8_t nr, uint8_t ng, uint8_t nb)
 Allow assignment from red, green, and blue.
 
FASTLED_FORCE_INLINE CRGBsetHSV (uint8_t hue, uint8_t sat, uint8_t val)
 Allow assignment from hue, saturation, and value.
 
FASTLED_FORCE_INLINE CRGBsetHue (uint8_t hue)
 Allow assignment from just a hue.
 
FASTLED_FORCE_INLINE CRGBoperator= (const CHSV &rhs)
 Allow assignment from HSV color.
 
FASTLED_FORCE_INLINE CRGBsetColorCode (uint32_t colorcode)
 Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.
 
FASTLED_FORCE_INLINE CRGBoperator+= (const CRGB &rhs)
 Add one CRGB to another, saturating at 0xFF for each channel.
 
FASTLED_FORCE_INLINE CRGBaddToRGB (uint8_t d)
 Add a constant to each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGBoperator-= (const CRGB &rhs)
 Subtract one CRGB from another, saturating at 0x00 for each channel.
 
FASTLED_FORCE_INLINE CRGBsubtractFromRGB (uint8_t d)
 Subtract a constant from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGBoperator-- ()
 Subtract a constant of '1' from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGB operator-- (int)
 Subtract a constant of '1' from each channel, saturating at 0x00.
 
FASTLED_FORCE_INLINE CRGBoperator++ ()
 Add a constant of '1' from each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGB operator++ (int)
 Add a constant of '1' from each channel, saturating at 0xFF.
 
FASTLED_FORCE_INLINE CRGBoperator/= (uint8_t d)
 Divide each of the channels by a constant.
 
FASTLED_FORCE_INLINE CRGBoperator>>= (uint8_t d)
 Right shift each of the channels by a constant.
 
FASTLED_FORCE_INLINE CRGBoperator*= (uint8_t d)
 Multiply each of the channels by a constant, saturating each channel at 0xFF.
 
FASTLED_FORCE_INLINE CRGBnscale8_video (uint8_t scaledown)
 Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.
 
FASTLED_FORCE_INLINE CRGBoperator%= (uint8_t scaledown)
 %= is a synonym for nscale8_video().
 
FASTLED_FORCE_INLINE CRGBfadeLightBy (uint8_t fadefactor)
 fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale
 
FASTLED_FORCE_INLINE CRGBnscale8 (uint8_t scaledown)
 Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
 
FASTLED_FORCE_INLINE CRGBnscale8 (const CRGB &scaledown)
 Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.
 
constexpr CRGB nscale8_constexpr (const CRGB scaledown) const
 
FASTLED_FORCE_INLINE CRGB scale8 (uint8_t scaledown) const
 Return a CRGB object that is a scaled down version of this object.
 
FASTLED_FORCE_INLINE CRGB scale8 (const CRGB &scaledown) const
 Return a CRGB object that is a scaled down version of this object.
 
FASTLED_FORCE_INLINE CRGBfadeToBlackBy (uint8_t fadefactor)
 fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale
 
FASTLED_FORCE_INLINE CRGBoperator|= (const CRGB &rhs)
 "or" operator brings each channel up to the higher of the two values
 
FASTLED_FORCE_INLINE CRGBoperator|= (uint8_t d)
 "or" operator brings each channel up to the higher of the two values
 
FASTLED_FORCE_INLINE CRGBoperator&= (const CRGB &rhs)
 "and" operator brings each channel down to the lower of the two values
 
FASTLED_FORCE_INLINE CRGBoperator&= (uint8_t d)
 "and" operator brings each channel down to the lower of the two values
 
constexpr operator bool () const
 This allows testing a CRGB for zero-ness.
 
constexpr operator uint32_t () const
 Converts a CRGB to a 32-bit color having an alpha of 255.
 
constexpr CRGB operator- () const
 Invert each channel.
 
 operator rgb24 () const
 Convert to an rgb24 object, used with the SmartMatrix library.
 
fl::Str toString () const
 
FASTLED_FORCE_INLINE uint8_t getLuma () const
 Get the "luma" of a CRGB object.
 
FASTLED_FORCE_INLINE uint8_t getAverageLight () const
 Get the average of the R, G, and B values.
 
FASTLED_FORCE_INLINE void maximizeBrightness (uint8_t limit=255)
 Maximize the brightness of this CRGB object.
 
FASTLED_FORCE_INLINE CRGB lerp8 (const CRGB &other, fract8 frac) const
 Return a new CRGB object after performing a linear interpolation between this object and the passed in object.
 
FASTLED_FORCE_INLINE CRGB lerp16 (const CRGB &other, fract16 frac) const
 Return a new CRGB object after performing a linear interpolation between this object and the passed in object.
 
FASTLED_FORCE_INLINE uint8_t getParity ()
 Returns 0 or 1, depending on the lowest bit of the sum of the color components.
 
FASTLED_FORCE_INLINE void setParity (uint8_t parity)
 Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value.
 

Static Public Member Functions

static CRGB blend (const CRGB &p1, const CRGB &p2, fract8 amountOfP2)
 
static CRGB computeAdjustment (uint8_t scale, const CRGB &colorCorrection, const CRGB &colorTemperature)
 Calculates the combined color adjustment to the LEDs at a given scale, color correction, and color temperature.
 

Public Attributes

union { 
 
   struct { 
 
      union { 
 
         uint8_t   r 
 Red channel value. More...
 
         uint8_t   red 
 Red channel value. More...
 
      }  
 
      union { 
 
         uint8_t   g 
 Green channel value. More...
 
         uint8_t   green 
 Green channel value. More...
 
      }  
 
      union { 
 
         uint8_t   b 
 Blue channel value. More...
 
         uint8_t   blue 
 Blue channel value. More...
 
      }  
 
   }  
 
   uint8_t   raw [3] 
 Access the red, green, and blue data as an array. More...
 
};  
 

Member Enumeration Documentation

◆ HTMLColorCode

Predefined RGB colors.

Enumerator
AliceBlue 
Amethyst 
AntiqueWhite 
Aqua 
Aquamarine 
Azure 
Beige 
Bisque 
Black 
BlanchedAlmond 
Blue 
BlueViolet 
Brown 
BurlyWood 
CadetBlue 
Chartreuse 
Chocolate 
Coral 
CornflowerBlue 
Cornsilk 
Crimson 
Cyan 
DarkBlue 
DarkCyan 
DarkGoldenrod 
DarkGray 
DarkGrey 
DarkGreen 
DarkKhaki 
DarkMagenta 
DarkOliveGreen 
DarkOrange 
DarkOrchid 
DarkRed 
DarkSalmon 
DarkSeaGreen 
DarkSlateBlue 
DarkSlateGray 
DarkSlateGrey 
DarkTurquoise 
DarkViolet 
DeepPink 
DeepSkyBlue 
DimGray 
DimGrey 
DodgerBlue 
FireBrick 
FloralWhite 
ForestGreen 
Fuchsia 
Gainsboro 
GhostWhite 
Gold 
Goldenrod 
Gray 
Grey 
Green 
GreenYellow 
Honeydew 
HotPink 
IndianRed 
Indigo 
Ivory 
Khaki 
Lavender 
LavenderBlush 
LawnGreen 
LemonChiffon 
LightBlue 
LightCoral 
LightCyan 
LightGoldenrodYellow 
LightGreen 
LightGrey 
LightPink 
LightSalmon 
LightSeaGreen 
LightSkyBlue 
LightSlateGray 
LightSlateGrey 
LightSteelBlue 
LightYellow 
Lime 
LimeGreen 
Linen 
Magenta 
Maroon 
MediumAquamarine 
MediumBlue 
MediumOrchid 
MediumPurple 
MediumSeaGreen 
MediumSlateBlue 
MediumSpringGreen 
MediumTurquoise 
MediumVioletRed 
MidnightBlue 
MintCream 
MistyRose 
Moccasin 
NavajoWhite 
Navy 
OldLace 
Olive 
OliveDrab 
Orange 
OrangeRed 
Orchid 
PaleGoldenrod 
PaleGreen 
PaleTurquoise 
PaleVioletRed 
PapayaWhip 
PeachPuff 
Peru 
Pink 
Plaid 
Plum 
PowderBlue 
Purple 
Red 
RosyBrown 
RoyalBlue 
SaddleBrown 
Salmon 
SandyBrown 
SeaGreen 
Seashell 
Sienna 
Silver 
SkyBlue 
SlateBlue 
SlateGray 
SlateGrey 
Snow 
SpringGreen 
SteelBlue 
Tan 
Teal 
Thistle 
Tomato 
Turquoise 
Violet 
Wheat 
White 
WhiteSmoke 
Yellow 
YellowGreen 
FairyLight 
FairyLightNCC 

Definition at line 487 of file crgb.h.

Constructor & Destructor Documentation

◆ CRGB() [1/6]

FASTLED_FORCE_INLINE CRGB::CRGB ( )
default

Default constructor.

Warning
Default values are UNITIALIZED!

◆ CRGB() [2/6]

CRGB::CRGB ( uint8_t ir,
uint8_t ig,
uint8_t ib )
inlineconstexprnoexcept

Allow construction from red, green, and blue.

Parameters
irinput red value
iginput green value
ibinput blue value

Definition at line 104 of file crgb.h.

◆ CRGB() [3/6]

CRGB::CRGB ( uint32_t colorcode)
inlineconstexprnoexcept

Allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 111 of file crgb.h.

◆ CRGB() [4/6]

CRGB::CRGB ( LEDColorCorrection colorcode)
inlineconstexprnoexcept

Allow construction from a LEDColorCorrection enum.

Parameters
colorcodean LEDColorCorrect enumeration value

Definition at line 125 of file crgb.h.

◆ CRGB() [5/6]

CRGB::CRGB ( ColorTemperature colorcode)
inlineconstexprnoexcept

Allow construction from a ColorTemperature enum.

Parameters
colorcodean ColorTemperature enumeration value

Definition at line 132 of file crgb.h.

◆ CRGB() [6/6]

FASTLED_FORCE_INLINE CRGB::CRGB ( const CHSV & rhs)
inline

Allow construction from a CHSV color.

Definition at line 141 of file crgb.h.

Member Function Documentation

◆ addToRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::addToRGB ( uint8_t d)

Add a constant to each channel, saturating at 0xFF.

Note
This is NOT an operator+= overload because the compiler can't usefully decide when it's being passed a 32-bit constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)

Definition at line 31 of file crgb.hpp.

◆ as_uint32_t()

uint32_t CRGB::as_uint32_t ( ) const
inlineconstexprnoexcept

Definition at line 116 of file crgb.h.

◆ blend()

CRGB CRGB::blend ( const CRGB & p1,
const CRGB & p2,
fract8 amountOfP2 )
static

Definition at line 50 of file crgb.cpp.

◆ computeAdjustment()

CRGB CRGB::computeAdjustment ( uint8_t scale,
const CRGB & colorCorrection,
const CRGB & colorTemperature )
static

Calculates the combined color adjustment to the LEDs at a given scale, color correction, and color temperature.

Parameters
scalethe scale value for the RGB data (i.e. brightness)
colorCorrectioncolor correction to apply
colorTemperaturecolor temperature to apply
Returns
a CRGB object representing the adjustment, including color correction and color temperature

Definition at line 25 of file crgb.cpp.

◆ fadeLightBy()

FASTLED_FORCE_INLINE CRGB & CRGB::fadeLightBy ( uint8_t fadefactor)

fadeLightBy is a synonym for nscale8_video(), as a fade instead of a scale

Parameters
fadefactorthe amount to fade, sent to nscale8_video() as (255 - fadefactor)

Definition at line 90 of file crgb.hpp.

◆ fadeToBlackBy()

CRGB & CRGB::fadeToBlackBy ( uint8_t fadefactor)
inline

fadeToBlackBy is a synonym for nscale8(), as a fade instead of a scale

Parameters
fadefactorthe amount to fade, sent to nscale8() as (255 - fadefactor)
Examples
RGBSetDemo.ino.

Definition at line 151 of file crgb.hpp.

◆ getAverageLight()

FASTLED_FORCE_INLINE uint8_t CRGB::getAverageLight ( ) const

Get the average of the R, G, and B values.

Examples
Pacifica.ino, and TwinkleFox.ino.

Definition at line 168 of file crgb.hpp.

◆ getLuma()

FASTLED_FORCE_INLINE uint8_t CRGB::getLuma ( ) const

Get the "luma" of a CRGB object.

In other words, roughly how much light the CRGB pixel is putting out (from 0 to 255).

Definition at line 157 of file crgb.hpp.

◆ getParity()

FASTLED_FORCE_INLINE uint8_t CRGB::getParity ( )
inline

Returns 0 or 1, depending on the lowest bit of the sum of the color components.

Definition at line 411 of file crgb.h.

◆ lerp16()

FASTLED_FORCE_INLINE CRGB CRGB::lerp16 ( const CRGB & other,
fract16 frac ) const

Return a new CRGB object after performing a linear interpolation between this object and the passed in object.

Definition at line 192 of file crgb.hpp.

◆ lerp8()

FASTLED_FORCE_INLINE CRGB CRGB::lerp8 ( const CRGB & other,
fract8 frac ) const

Return a new CRGB object after performing a linear interpolation between this object and the passed in object.

Definition at line 181 of file crgb.hpp.

◆ maximizeBrightness()

FASTLED_FORCE_INLINE void CRGB::maximizeBrightness ( uint8_t limit = 255)
inline

Maximize the brightness of this CRGB object.

This makes the individual color channels as bright as possible while keeping the same value differences between channels.

Note
This does not keep the same ratios between channels, just the same difference in absolute values.

Definition at line 384 of file crgb.h.

◆ nscale8() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8 ( const CRGB & scaledown)

Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.

"Plain math" dimming rules means that the low light levels may dim all the way to 100% black.

See also
scale8

Definition at line 127 of file crgb.hpp.

◆ nscale8() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8 ( uint8_t scaledown)

Scale down a RGB to N/256ths of its current brightness, using "plain math" dimming rules.

"Plain math" dimming rules means that the low light levels may dim all the way to 100% black.

See also
nscale8x3
Examples
Cylon.ino.

Definition at line 111 of file crgb.hpp.

◆ nscale8_constexpr()

CRGB CRGB::nscale8_constexpr ( const CRGB scaledown) const
constexpr

Definition at line 117 of file crgb.hpp.

◆ nscale8_video()

FASTLED_FORCE_INLINE CRGB & CRGB::nscale8_video ( uint8_t scaledown)

Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.

"Video" dimming rules means that unless the scale factor is ZERO each channel is guaranteed NOT to dim down to zero. If it's already nonzero, it'll stay nonzero, even if that means the hue shifts a little at low brightness levels.

See also
nscale8x3_video
Examples
TwinkleFox.ino.

Definition at line 78 of file crgb.hpp.

◆ operator bool()

CRGB::operator bool ( ) const
inlineexplicitconstexpr

This allows testing a CRGB for zero-ness.

Definition at line 338 of file crgb.h.

◆ operator rgb24()

CRGB::operator rgb24 ( ) const
inline

Convert to an rgb24 object, used with the SmartMatrix library.

See also
https://github.com/pixelmatix/SmartMatrix

Definition at line 361 of file crgb.h.

◆ operator uint32_t()

CRGB::operator uint32_t ( ) const
inlineexplicitconstexpr

Converts a CRGB to a 32-bit color having an alpha of 255.

Definition at line 344 of file crgb.h.

◆ operator%=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator%= ( uint8_t scaledown)

%= is a synonym for nscale8_video().

Think of it is scaling down by "a percentage"

Definition at line 84 of file crgb.hpp.

◆ operator&=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator&= ( const CRGB & rhs)
inline

"and" operator brings each channel down to the lower of the two values

Definition at line 320 of file crgb.h.

◆ operator&=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator&= ( uint8_t d)
inline

"and" operator brings each channel down to the lower of the two values

Definition at line 329 of file crgb.h.

◆ operator*=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator*= ( uint8_t d)

Multiply each of the channels by a constant, saturating each channel at 0xFF.

Definition at line 70 of file crgb.hpp.

◆ operator++() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator++ ( )

Add a constant of '1' from each channel, saturating at 0xFF.

Definition at line 48 of file crgb.hpp.

◆ operator++() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::operator++ ( int )

Add a constant of '1' from each channel, saturating at 0xFF.

Definition at line 55 of file crgb.hpp.

◆ operator+=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator+= ( const CRGB & rhs)

Add one CRGB to another, saturating at 0xFF for each channel.

Definition at line 23 of file crgb.hpp.

◆ operator-()

CRGB CRGB::operator- ( ) const
inlineconstexpr

Invert each channel.

Definition at line 353 of file crgb.h.

◆ operator--() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator-- ( )

Subtract a constant of '1' from each channel, saturating at 0x00.

Definition at line 97 of file crgb.hpp.

◆ operator--() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::operator-- ( int )

Subtract a constant of '1' from each channel, saturating at 0x00.

Definition at line 104 of file crgb.hpp.

◆ operator-=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator-= ( const CRGB & rhs)

Subtract one CRGB from another, saturating at 0x00 for each channel.

Definition at line 39 of file crgb.hpp.

◆ operator/=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator/= ( uint8_t d)
inline

Divide each of the channels by a constant.

Definition at line 239 of file crgb.h.

◆ operator=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator= ( const CHSV & rhs)
inline

Allow assignment from HSV color.

Definition at line 191 of file crgb.h.

◆ operator=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator= ( const uint32_t colorcode)
inline

Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 151 of file crgb.h.

◆ operator>>=()

FASTLED_FORCE_INLINE CRGB & CRGB::operator>>= ( uint8_t d)
inline

Right shift each of the channels by a constant.

Definition at line 248 of file crgb.h.

◆ operator[]() [1/2]

FASTLED_FORCE_INLINE uint8_t & CRGB::operator[] ( uint8_t x)
inline

Array access operator to index into the CRGB object.

Parameters
xthe index to retrieve (0-2)
Returns
the CRGB::raw value for the given index

Definition at line 83 of file crgb.h.

◆ operator[]() [2/2]

FASTLED_FORCE_INLINE const uint8_t & CRGB::operator[] ( uint8_t x) const
inline

Array access operator to index into the CRGB object.

Parameters
xthe index to retrieve (0-2)
Returns
the CRGB::raw value for the given index

Definition at line 91 of file crgb.h.

◆ operator|=() [1/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator|= ( const CRGB & rhs)
inline

"or" operator brings each channel up to the higher of the two values

Definition at line 302 of file crgb.h.

◆ operator|=() [2/2]

FASTLED_FORCE_INLINE CRGB & CRGB::operator|= ( uint8_t d)
inline

"or" operator brings each channel up to the higher of the two values

Definition at line 311 of file crgb.h.

◆ scale8() [1/2]

FASTLED_FORCE_INLINE CRGB CRGB::scale8 ( const CRGB & scaledown) const

Return a CRGB object that is a scaled down version of this object.

Definition at line 142 of file crgb.hpp.

◆ scale8() [2/2]

FASTLED_FORCE_INLINE CRGB CRGB::scale8 ( uint8_t scaledown) const

Return a CRGB object that is a scaled down version of this object.

Definition at line 135 of file crgb.hpp.

◆ setColorCode()

FASTLED_FORCE_INLINE CRGB & CRGB::setColorCode ( uint32_t colorcode)
inline

Allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code.

Parameters
colorcodea packed 24 bit color code

Definition at line 199 of file crgb.h.

◆ setHSV()

FASTLED_FORCE_INLINE CRGB & CRGB::setHSV ( uint8_t hue,
uint8_t sat,
uint8_t val )
inline

Allow assignment from hue, saturation, and value.

Parameters
huecolor hue
satcolor saturation
valcolor value (brightness)

Definition at line 175 of file crgb.h.

◆ setHue()

FASTLED_FORCE_INLINE CRGB & CRGB::setHue ( uint8_t hue)
inline

Allow assignment from just a hue.

Saturation and value (brightness) are set automatically to max.

Parameters
huecolor hue

Definition at line 184 of file crgb.h.

◆ setParity()

FASTLED_FORCE_INLINE void CRGB::setParity ( uint8_t parity)
inline

Adjusts the color in the smallest way possible so that the parity of the coloris now the desired value.

This allows you to "hide" one bit of information in the color.

Ideally, we find one color channel which already has data in it, and modify just that channel by one. We don't want to light up a channel that's black if we can avoid it, and if the pixel is 'grayscale', (meaning that R==G==B), we modify all three channels at once, to preserve the neutral hue.

There's no such thing as a free lunch; in many cases this "hidden bit" may actually be visible, but this code makes reasonable efforts to hide it as much as is reasonably possible.

Also, an effort is made to make it such that repeatedly setting the parity to different values will not cause the color to "drift". Toggling the parity twice should generally result in the original color again.

Definition at line 439 of file crgb.h.

◆ setRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::setRGB ( uint8_t nr,
uint8_t ng,
uint8_t nb )
inline

Allow assignment from red, green, and blue.

Parameters
nrnew red value
ngnew green value
nbnew blue value

Definition at line 163 of file crgb.h.

◆ subtractFromRGB()

FASTLED_FORCE_INLINE CRGB & CRGB::subtractFromRGB ( uint8_t d)

Subtract a constant from each channel, saturating at 0x00.

Note
This is NOT an operator+= overload because the compiler can't usefully decide when it's being passed a 32-bit constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)

Definition at line 62 of file crgb.hpp.

◆ toString()

fl::Str CRGB::toString ( ) const

Definition at line 13 of file crgb.cpp.

Member Data Documentation

◆ b

uint8_t CRGB::b

Blue channel value.

Examples
AnalogOutput.ino, and TwinkleFox.ino.

Definition at line 66 of file crgb.h.

◆ blue

uint8_t CRGB::blue

Blue channel value.

Examples
Pacifica.ino.

Definition at line 67 of file crgb.h.

◆ g

uint8_t CRGB::g

Green channel value.

Examples
AnalogOutput.ino, and TwinkleFox.ino.

Definition at line 62 of file crgb.h.

◆ green

uint8_t CRGB::green

Green channel value.

Examples
Pacifica.ino.

Definition at line 63 of file crgb.h.

◆ r

uint8_t CRGB::r

Red channel value.

Examples
AnalogOutput.ino.

Definition at line 58 of file crgb.h.

◆ raw

uint8_t CRGB::raw[3]

Access the red, green, and blue data as an array.

Where:

  • raw[0] is the red value
  • raw[1] is the green value
  • raw[2] is the blue value

Definition at line 75 of file crgb.h.

◆ red

uint8_t CRGB::red

Red channel value.

Definition at line 59 of file crgb.h.


The documentation for this struct was generated from the following files: