FastLED 3.9.15
Loading...
Searching...
No Matches
CFastLED Class Reference

Detailed Description

High level controller interface for FastLED.

This class manages controllers, global settings, and trackings such as brightness and refresh rates, and provides access functions for driving led data to controllers via the show() / showColor() / clear() methods. This is instantiated as a global object with the name FastLED.

Definition at line 353 of file FastLED.h.

#include <FastLED.h>

Classes

struct  ClockedChipsetHelper
 

Public Member Functions

 CFastLED ()
 
void addListener (fl::EngineEvents::Listener *listener)
 
void clear (bool writeData=false)
 Clear the leds, wiping the local array of data.
 
void clearData ()
 Clear out the local data array.
 
int count ()
 Get how many controllers have been registered.
 
void countFPS (int nFrames=25)
 For debugging, this will keep track of time between calls to countFPS().
 
void delay (unsigned long ms)
 Delay for the given number of milliseconds.
 
uint8_t getBrightness ()
 Get the current global brightness setting.
 
uint16_t getFPS ()
 Get the number of frames/second being written out.
 
CRGBleds ()
 Get a pointer to led data for the first controller.
 
CLEDControlleroperator[] (int x)
 Get a reference to a registered controller.
 
void removeListener (fl::EngineEvents::Listener *listener)
 
void setBrightness (uint8_t scale)
 Set the global brightness scaling.
 
void setCorrection (const struct CRGB &correction)
 Set a global color correction.
 
void setDither (uint8_t ditherMode=BINARY_DITHER)
 Set the dithering mode.
 
void setMaxPowerInMilliWatts (uint32_t milliwatts)
 Set the maximum power to be used, given in milliwatts.
 
void setMaxPowerInVoltsAndMilliamps (uint8_t volts, uint32_t milliamps)
 Set the maximum power to be used, given in volts and milliamps.
 
void setMaxRefreshRate (uint16_t refresh, bool constrain=false)
 Set the maximum refresh rate.
 
void setTemperature (const struct CRGB &temp)
 Set a global color temperature.
 
void show ()
 Update all our controllers with the current led colors.
 
void show (uint8_t scale)
 Update all our controllers with the current led colors, using the passed in brightness.
 
void showColor (const struct CRGB &color)
 Set all leds on all controllers to the given color.
 
void showColor (const struct CRGB &color, uint8_t scale)
 Set all leds on all controllers to the given color/scale.
 
int size ()
 Get the number of leds in the first controller.
 

Static Public Member Functions

static CLEDControlleraddLeds (CLEDController *pLed, struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a CLEDController instance to the world.
 

Private Attributes

uint16_t m_nFPS
 tracking for current frames per second (FPS) value
 
uint32_t m_nMinMicros
 minimum µs between frames, used for capping frame rates
 
uint32_t m_nPowerData
 max power use parameter
 
power_func m_pPowerFunc
 function for overriding brightness when using FastLED.show();
 
uint8_t m_Scale
 the current global brightness scale setting
 

Adding SPI-based controllers

Add an SPI based CLEDController instance to the world.

There are two ways to call this method (as well as the other addLeds() variations). The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The second is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the CRGB data where this controller's CRGB data begins, and the third argument is the number of leds for this controller object.

Parameters
database pointer to an array of CRGB data structures
nLedsOrOffsetnumber of leds (3 argument version) or offset into the data array
nLedsIfOffsetnumber of leds (4 argument version)
Template Parameters
CHIPSETthe chipset type
DATA_PINthe optional data pin for the leds (if omitted, will default to the first hardware SPI MOSI pin)
CLOCK_PINthe optional clock pin for the leds (if omitted, will default to the first hardware SPI clock pin)
RGB_ORDERthe rgb ordering for the leds (e.g. what order red, green, and blue data is written out in)
SPI_DATA_RATEthe data rate to drive the SPI clock at, defined using DATA_RATE_MHZ or DATA_RATE_KHZ macros
Returns
a reference to the added controller
 _FL_MAP_CLOCKED_CHIPSET (LPD6803, LPD6803Controller) _FL_MAP_CLOCKED_CHIPSET(LPD8806
 
LPD8806Controller _FL_MAP_CLOCKED_CHIPSET (WS2801, WS2801Controller) _FL_MAP_CLOCKED_CHIPSET(WS2803
 
LPD8806Controller WS2803Controller _FL_MAP_CLOCKED_CHIPSET (SM16716, SM16716Controller) _FL_MAP_CLOCKED_CHIPSET(P9813
 
LPD8806Controller WS2803Controller P9813Controller _FL_MAP_CLOCKED_CHIPSET (DOTSTAR, APA102Controller) _FL_MAP_CLOCKED_CHIPSET(APA102
 
LPD8806Controller WS2803Controller P9813Controller APA102Controller _FL_MAP_CLOCKED_CHIPSET (DOTSTARHD, APA102ControllerHD) _FL_MAP_CLOCKED_CHIPSET(APA102HD
 
LPD8806Controller WS2803Controller P9813Controller APA102Controller APA102ControllerHD _FL_MAP_CLOCKED_CHIPSET (HD107, APA102Controller) _FL_MAP_CLOCKED_CHIPSET(HD107HD
 
LPD8806Controller WS2803Controller P9813Controller APA102Controller APA102ControllerHD APA102ControllerHD _FL_MAP_CLOCKED_CHIPSET (SK9822, SK9822Controller) _FL_MAP_CLOCKED_CHIPSET(SK9822HD
 
template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER, uint32_t SPI_DATA_RATE>
LPD8806Controller WS2803Controller P9813Controller APA102Controller APA102ControllerHD APA102ControllerHD SK9822ControllerHD CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add an SPI based CLEDController instance to the world.
 
template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER>
CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 
template<ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add an SPI based CLEDController instance to the world.
 

Adding 3-wire led controllers

Add a clockless (aka 3-wire, also DMX) based CLEDController instance to the world.

There are two ways to call this method (as well as the other addLeds() variations). The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The second is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the CRGB data where this controller's CRGB data begins, and the third argument is the number of leds for this controller object.

This method also takes 2 to 3 template parameters for identifying the specific chipset, data pin, RGB ordering, and SPI data rate

Parameters
database pointer to an array of CRGB data structures
nLedsOrOffsetnumber of leds (3 argument version) or offset into the data array
nLedsIfOffsetnumber of leds (4 argument version)
Template Parameters
CHIPSETthe chipset type (required)
DATA_PINthe data pin for the leds (required)
RGB_ORDERthe rgb ordering for the leds (e.g. what order red, green, and blue data is written out in)
Returns
a reference to the added controller
template<template< uint8_t DATA_PIN, EOrder RGB_ORDER > class CHIPSET, uint8_t DATA_PIN, EOrder RGB_ORDER>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a clockless based CLEDController instance to the world.
 
template<template< uint8_t DATA_PIN, EOrder RGB_ORDER > class CHIPSET, uint8_t DATA_PIN>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a clockless based CLEDController instance to the world.
 
template<template< uint8_t DATA_PIN > class CHIPSET, uint8_t DATA_PIN>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a clockless based CLEDController instance to the world.
 

Adding 3rd party library controllers

Add a 3rd party library based CLEDController instance to the world.

There are two ways to call this method (as well as the other addLeds() variations). The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The second is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the CRGB data where this controller's CRGB data begins, and the third argument is the number of leds for this controller object. This class includes the SmartMatrix and OctoWS2811 based controllers

This method also takes 1 to 2 template parameters for identifying the specific chipset and RGB ordering.

Parameters
database pointer to an array of CRGB data structures
nLedsOrOffsetnumber of leds (3 argument version) or offset into the data array
nLedsIfOffsetnumber of leds (4 argument version)
Template Parameters
CHIPSETthe chipset type (required)
RGB_ORDERthe rgb ordering for the leds (e.g. what order red, green, and blue data is written out in)
Returns
a reference to the added controller
template<template< EOrder RGB_ORDER > class CHIPSET, EOrder RGB_ORDER>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a 3rd party library based CLEDController instance to the world.
 
template<template< EOrder RGB_ORDER > class CHIPSET>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a 3rd party library based CLEDController instance to the world.
 
template<OWS2811 CHIPSET, EOrder RGB_ORDER>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a OCTOWS2811 based CLEDController instance to the world.
 
template<OWS2811 CHIPSET>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a OCTOWS2811 library based CLEDController instance to the world.
 
template<SWS2812 CHIPSET, int DATA_PIN, EOrder RGB_ORDER>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a WS2812Serial library based CLEDController instance to the world.
 
template<ESM CHIPSET>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a SmartMatrix library based CLEDController instance to the world.
 

Adding parallel output controllers

Add a block based CLEDController instance to the world.

There are two ways to call this method (as well as the other addLeds() variations). The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The second is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the CRGB data where this controller's CRGB data begins, and the third argument is the number of leds for this controller object.

This method also takes a 2 to 3 template parameters for identifying the specific chipset and rgb ordering RGB ordering, and SPI data rate

Parameters
database pointer to an array of CRGB data structures
nLedsOrOffsetnumber of leds (3 argument version) or offset into the data array
nLedsIfOffsetnumber of leds (4 argument version)
Template Parameters
CHIPSETthe chipset/port type (required)
NUM_LANEShow many parallel lanes of output to write
RGB_ORDERthe rgb ordering for the leds (e.g. what order red, green, and blue data is written out in)
Returns
a reference to the added controller
template<EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a block based parallel output CLEDController instance to the world.
 
template<EBlockChipsets CHIPSET, int NUM_LANES>
static CLEDControlleraddLeds (struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
 Add a block based parallel output CLEDController instance to the world.
 

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