10#define COLOR_ORDER   GRB 
   91#define TWINKLE_SPEED 4 
   96#define TWINKLE_DENSITY 5 
   99#define SECONDS_PER_PALETTE  30 
  115#define AUTO_SELECT_BACKGROUND_COLOR 0 
  120#define COOL_LIKE_INCANDESCENT 1 
  163  uint16_t PRNG16 = 11337;
 
  165  uint32_t clock32 = millis();
 
  178    } 
else if( bglight > 16) {
 
  189  for( 
CRGB& pixel: L) {
 
  190    PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; 
 
  191    uint16_t myclockoffset16= PRNG16; 
 
  192    PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384; 
 
  194    uint8_t myspeedmultiplierQ5_3 =  ((((PRNG16 & 0xFF)>>4) + (PRNG16 & 0x0F)) & 0x0F) + 0x08;
 
  195    uint32_t myclock30 = (uint32_t)((clock32 * myspeedmultiplierQ5_3) >> 3) + myclockoffset16;
 
  196    uint8_t  myunique8 = PRNG16 >> 8; 
 
  204    int16_t deltabright = cbright - backgroundBrightness;
 
  205    if( deltabright >= 32 || (!bg)) {
 
  209    } 
else if( deltabright > 0 ) {
 
  212      pixel = 
blend( bg, c, deltabright * 8);
 
 
  234  uint8_t fastcycle8 = ticks;
 
  235  uint16_t slowcycle16 = (ticks >> 8) + salt;
 
  236  slowcycle16 += 
sin8( slowcycle16);
 
  237  slowcycle16 =  (slowcycle16 * 2053) + 1384;
 
  238  uint8_t slowcycle8 = (slowcycle16 & 0xFF) + (slowcycle16 >> 8);
 
  245  uint8_t 
hue = slowcycle8 - salt;
 
 
  275    return 255 - (i + (i/2));
 
 
  284  if( phase < 128) 
return;
 
  286  uint8_t cooling = (phase - 128) >> 4;
 
  287  c.g = 
qsub8( c.g, cooling);
 
  288  c.b = 
qsub8( c.b, cooling * 2);
 
 
  300#define Holly_Green 0x00580c 
  301#define Holly_Red   0xB00402 
  326#define HALFFAIRY ((CRGB::FairyLight & 0xFEFEFE) / 2) 
  327#define QUARTERFAIRY ((CRGB::FairyLight & 0xFCFCFC) / 4) 
  336{  0x304048, 0x304048, 0x304048, 0x304048,
 
  337   0x304048, 0x304048, 0x304048, 0x304048,
 
  338   0x304048, 0x304048, 0x304048, 0x304048,
 
  339   0x304048, 0x304048, 0x304048, 0xE0F0FF };
 
 
  343#define C9_Red    0xB80400 
  344#define C9_Orange 0x902C02 
  345#define C9_Green  0x046002 
  346#define C9_Blue   0x070758 
  347#define C9_White  0x606820 
  357#define Ice_Blue1 0x0C1040 
  358#define Ice_Blue2 0x182080 
  359#define Ice_Blue3 0x5080C0 
  389  static uint8_t whichPalette = -1; 
 
  390  whichPalette = 
addmod8( whichPalette, 1, numberOfPalettes);
 
 
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
 
central include file for FastLED, defines the CFastLED class/object
 
void coolLikeIncandescent(CRGB &c, uint8_t phase)
 
CRGBPalette16 gTargetPalette
 
void chooseNextColorPalette(CRGBPalette16 &pal)
 
uint8_t attackDecayWave8(uint8_t i)
 
void drawTwinkles(CRGBSet &L)
 
CRGBPalette16 gCurrentPalette
 
CRGB computeOneTwinkle(uint32_t ms, uint8_t salt)
 
A version of CPixelView<CRGB> with an included array of CRGB LEDs.
 
fl::u32 TProgmemRGBPalette16[16]
CRGBPalette16 entries stored in PROGMEM memory.
 
#define FL_PROGMEM
PROGMEM keyword for storage.
 
@ TypicalLEDStrip
Typical values for SMD5050 LEDs.
 
LIB8STATIC uint8_t addmod8(uint8_t a, uint8_t b, uint8_t m)
Add two numbers, and calculate the modulo of the sum and a third number, M.
 
LIB8STATIC_ALWAYS_INLINE uint8_t qsub8(uint8_t i, uint8_t j)
Subtract one byte from another, saturating at 0x00.
 
const TProgmemRGBPalette16 PartyColors_p
HSV color ramp: blue, purple, pink, red, orange, yellow (and back).
 
const TProgmemRGBPalette16 RainbowColors_p
HSV Rainbow.
 
#define EVERY_N_MILLISECONDS(N)
Alias for EVERY_N_MILLIS.
 
#define EVERY_N_SECONDS(N)
Checks whether to execute a block of code every N seconds.
 
#define sin8
Platform-independent alias of the fast sin implementation.
 
const TProgmemRGBPalette16 * ActivePaletteList[]
 
const TProgmemRGBPalette16 Snow_p
 
CRGB ColorFromPalette(const CRGBPalette16 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType)
 
const TProgmemRGBPalette16 RetroC9_p
 
const TProgmemRGBPalette16 BlueWhite_p
 
CRGB blend(const CRGB &p1, const CRGB &p2, fract8 amountOfP2)
 
const TProgmemRGBPalette16 RedGreenWhite_p
 
const TProgmemRGBPalette16 RedWhite_p
 
const TProgmemRGBPalette16 Ice_p
 
const TProgmemRGBPalette16 FairyLight_p
 
void nblendPaletteTowardPalette(CRGBPalette16 ¤t, CRGBPalette16 &target, fl::u8 maxChanges)
 
const TProgmemRGBPalette16 Holly_p
 
CPixelView< CRGB > CRGBSet
CPixelView specialized for CRGB pixel arrays - the most commonly used pixel view type.
 
FASTLED_FORCE_INLINE fl::u8 getAverageLight() const
Get the average of the R, G, and B values.
 
@ Gray
<div style='background:#808080;width:4em;height:4em;'></div>
 
@ Green
<div style='background:#008000;width:4em;height:4em;'></div>
 
@ Blue
<div style='background:#0000FF;width:4em;height:4em;'></div>
 
@ Red
<div style='background:#FF0000;width:4em;height:4em;'></div>
 
@ FairyLight
<div style='background:#FFE42D;width:4em;height:4em;'></div>
 
@ Black
<div style='background:#000000;width:4em;height:4em;'></div>
 
FASTLED_FORCE_INLINE CRGB & nscale8_video(fl::u8 scaledown)
Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.
 
Representation of an RGB pixel (Red, Green, Blue)
 
#define AUTO_SELECT_BACKGROUND_COLOR
 
#define COOL_LIKE_INCANDESCENT
 
#define SECONDS_PER_PALETTE