2#ifndef __INC_FASTSPI_LED2_H
3#define __INC_FASTSPI_LED2_H
11#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
12#define FASTLED_HAS_PRAGMA_MESSAGE
20#define FASTLED_VERSION 3010002
21#ifndef FASTLED_INTERNAL
22# ifdef FASTLED_SHOW_VERSION
23# ifdef FASTLED_HAS_PRAGMA_MESSAGE
24# pragma message "FastLED version 3.010.002"
26# warning FastLED version 3.010.002 (Not really a warning, just telling you here.)
32#if !defined(FASTLED_FAKE_SPI_FORWARDS_TO_FAKE_CLOCKLESS)
33#if defined(__EMSCRIPTEN__)
34#define FASTLED_FAKE_SPI_FORWARDS_TO_FAKE_CLOCKLESS 1
36#define FASTLED_FAKE_SPI_FORWARDS_TO_FAKE_CLOCKLESS 0
40#ifndef __PROG_TYPES_COMPAT__
44#define __PROG_TYPES_COMPAT__
48#include "platforms/wasm/js.h"
49#include "platforms/wasm/led_sysdefs_wasm.h"
50#include "platforms/wasm/compiler/Arduino.h"
51#include "platforms/wasm/js_fetch.h"
55#include <SmartMatrix.h>
67#include <OctoWS2811.h>
147template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
class PIXIE :
public PixieController<DATA_PIN, RGB_ORDER> {};
150#ifdef FASTLED_HAS_CLOCKLESS
162template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
167template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
172template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
177template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
182template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
187template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
192template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
197template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
202template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
207template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
212template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
217template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
221template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
225template <fl::u8 DATA_PIN, EOrder RGB_ORDER>
230template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
235template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
240template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
245template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
250template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
255template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
260template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
265template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
270template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
275template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
280template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
285template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
290template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
295template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
300template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
305template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
309template<fl::u8 DATA_PIN, EOrder RGB_ORDER>
312#if defined(DmxSimple_h) || defined(FASTLED_DOXYGEN)
316#if defined(DmxSerial_h) || defined(FASTLED_DOXYGEN)
327#ifdef PORTA_FIRST_PIN
334#ifdef PORTB_FIRST_PIN
341#ifdef PORTC_FIRST_PIN
348#ifdef PORTD_FIRST_PIN
444 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN>
452 #define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS) \
453 template<fl::u8 DATA_PIN, fl::u8 CLOCK_PIN> \
454 struct ClockedChipsetHelper<CHIPSET_ENUM, DATA_PIN, CLOCK_PIN> { \
455 static const bool IS_VALID = true; \
456 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN> ControllerType; \
458 template<EOrder RGB_ORDER> \
459 struct CONTROLLER_CLASS_WITH_ORDER { \
460 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER> ControllerType; \
463 template<EOrder RGB_ORDER, fl::u32 FREQ> \
464 struct CONTROLLER_CLASS_WITH_ORDER_AND_FREQ { \
465 typedef CONTROLLER_CLASS<DATA_PIN, CLOCK_PIN, RGB_ORDER, FREQ> ControllerType; \
492 #if FASTLED_FAKE_SPI_FORWARDS_TO_FAKE_CLOCKLESS
496 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER, fl::u32 SPI_DATA_RATE >
CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
503 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN >
static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
510 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER>
511 CLEDController&
addLeds(
struct CRGB* data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
520 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER, fl::u32 SPI_DATA_RATE >
CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
523 typedef typename CHIP::template CONTROLLER_CLASS_WITH_ORDER_AND_FREQ<RGB_ORDER, SPI_DATA_RATE>::ControllerType ControllerTypeWithFreq;
524 static_assert(CHIP::IS_VALID,
"Unsupported chipset");
525 static ControllerTypeWithFreq c;
526 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
530 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN >
static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
532 typedef typename CHIP::ControllerType ControllerType;
533 static_assert(CHIP::IS_VALID,
"Unsupported chipset");
534 static ControllerType c;
535 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
540 template<ESPIChipsets CHIPSET, fl::u8 DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER>
543 static_assert(CHIP::IS_VALID,
"Unsupported chipset");
544 typedef typename CHIP::template CONTROLLER_CLASS_WITH_ORDER<RGB_ORDER>::ControllerType ControllerTypeWithOrder;
545 static ControllerTypeWithOrder c;
546 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
552 template<ESPIChipsets CHIPSET>
static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
556 template<ESPIChipsets CHIPSET, EOrder RGB_ORDER>
static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
560 template<ESPIChipsets CHIPSET, EOrder RGB_ORDER, fl::u32 SPI_DATA_RATE>
static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0) {
567#ifdef FASTLED_HAS_CLOCKLESS
593 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
600 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
607 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
616#if defined(__FASTLED_HAS_FIBCC) && (__FASTLED_HAS_FIBCC == 1)
619 static __FIBCC<CHIPSET, DATA_PIN, NUM_LANES, RGB_ORDER> c;
620 return addLeds(&c, data, nLeds);
624 #ifdef FASTSPI_USE_DMX_SIMPLE
625 template<EClocklessChipsets CHIPSET, fl::u8 DATA_PIN, EOrder RGB_ORDER=RGB>
626 static CLEDController &
addLeds(
struct CRGB *data,
int nLedsOrOffset,
int nLedsIfOffset = 0)
658 template<
template<EOrder RGB_ORDER>
class CHIPSET,
EOrder RGB_ORDER>
661 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
665 template<
template<EOrder RGB_ORDER>
class CHIPSET>
668 return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
675 template<OWS2811 CHIPSET, EOrder RGB_ORDER>
690 template<OWS2811 CHIPSET>
698#ifdef USE_WS2812SERIAL
702 template<SWS2812 CHIPSET,
int DATA_PIN, EOrder RGB_ORDER>
705 static CWS2812SerialController<DATA_PIN,RGB_ORDER>
controller;
713 template<ESM CHIPSET>
724#ifdef FASTLED_HAS_BLOCKLESS
748 template<EBlockChipsets CHIPSET,
int NUM_LANES, EOrder RGB_ORDER>
751 #ifdef PORTA_FIRST_PIN
752 case WS2811_PORTA:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTA_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
753 case WS2811_400_PORTA:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTA_FIRST_PIN,
NS(800),
NS(800),
NS(900), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
754 case WS2813_PORTA:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTA_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER, 0,
false, 300>(), data, nLedsOrOffset, nLedsIfOffset);
755 case TM1803_PORTA:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTA_FIRST_PIN,
NS(700),
NS(1100),
NS(700), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
756 case UCS1903_PORTA:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTA_FIRST_PIN,
NS(500),
NS(1500),
NS(500), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
758 #ifdef PORTB_FIRST_PIN
759 case WS2811_PORTB:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTB_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
760 case WS2811_400_PORTB:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTB_FIRST_PIN,
NS(800),
NS(800),
NS(900), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
761 case WS2813_PORTB:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTB_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER, 0,
false, 300>(), data, nLedsOrOffset, nLedsIfOffset);
762 case TM1803_PORTB:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTB_FIRST_PIN,
NS(700),
NS(1100),
NS(700), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
763 case UCS1903_PORTB:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTB_FIRST_PIN,
NS(500),
NS(1500),
NS(500), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
765 #ifdef PORTC_FIRST_PIN
766 case WS2811_PORTC:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTC_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
767 case WS2811_400_PORTC:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTC_FIRST_PIN,
NS(800),
NS(800),
NS(900), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
768 case WS2813_PORTC:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTC_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER, 0,
false, 300>(), data, nLedsOrOffset, nLedsIfOffset);
769 case TM1803_PORTC:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTC_FIRST_PIN,
NS(700),
NS(1100),
NS(700), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
770 case UCS1903_PORTC:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTC_FIRST_PIN,
NS(500),
NS(1500),
NS(500), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
772 #ifdef PORTD_FIRST_PIN
773 case WS2811_PORTD:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTD_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
774 case WS2811_400_PORTD:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTD_FIRST_PIN,
NS(800),
NS(800),
NS(900), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
775 case WS2813_PORTD:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTD_FIRST_PIN,
NS(320),
NS(320),
NS(640), RGB_ORDER, 0,
false, 300>(), data, nLedsOrOffset, nLedsIfOffset);
776 case TM1803_PORTD:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTD_FIRST_PIN,
NS(700),
NS(1100),
NS(700), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
777 case UCS1903_PORTD:
return addLeds(
new InlineBlockClocklessController<NUM_LANES, PORTD_FIRST_PIN,
NS(500),
NS(1500),
NS(500), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
780 case WS2811_PORTDC:
return addLeds(
new SixteenWayInlineBlockClocklessController<NUM_LANES,
NS(320),
NS(320),
NS(640), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
781 case WS2811_400_PORTDC:
return addLeds(
new SixteenWayInlineBlockClocklessController<NUM_LANES,
NS(800),
NS(800),
NS(900), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
782 case WS2813_PORTDC:
return addLeds(
new SixteenWayInlineBlockClocklessController<NUM_LANES,
NS(320),
NS(320),
NS(640), RGB_ORDER, 0,
false, 300>(), data, nLedsOrOffset, nLedsIfOffset);
783 case TM1803_PORTDC:
return addLeds(
new SixteenWayInlineBlockClocklessController<NUM_LANES,
NS(700),
NS(1100),
NS(700), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
784 case UCS1903_PORTDC:
return addLeds(
new SixteenWayInlineBlockClocklessController<NUM_LANES,
NS(500),
NS(1500),
NS(500), RGB_ORDER>(), data, nLedsOrOffset, nLedsIfOffset);
790 template<EBlockChipsets CHIPSET,
int NUM_LANES>
827 void clear(
bool writeData =
false);
845 void delay(
unsigned long ms);
905#ifndef HAS_HARDWARE_PIN_SUPPORT
906#warning "No pin/port mappings found, pin access will be slightly slower. See fastpin.h for info."
907#define NO_HARDWARE_PIN_SUPPORT
918#if !defined(FASTLED_INTERNAL) && !defined(FASTLED_LEAN_AND_MEAN)
964#define FASTLED_TITLE(text) fl::UITitle g_title(text)
965#define FASTLED_DESCRIPTION(text) fl::UIDescription g_description(text)
966#define FASTLED_HELP(text) fl::UIHelp g_help(text)
973#if defined(FASTLED_FORCE_USE_NAMESPACE) && FASTLED_FORCE_USE_NAMESPACE==1
1002#ifndef FASTLED_LOOP_RUNS_ASYNC
1003#define FASTLED_LOOP_RUNS_ASYNC 0
1006#if FASTLED_LOOP_RUNS_ASYNC == 1
1012 void loop() { sketch_loop(); fl::async_run(); } \
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
#define _FL_MAP_CLOCKED_CHIPSET(CHIPSET_ENUM, CONTROLLER_CLASS)
SWS2812
WS2812Serial Library controller type.
OWS2811
Octo WS2811 LED Library controller types.
FASTLED_NAMESPACE_BEGIN fl::u16 cled_contoller_size()
ESPIChipsets
LED chipsets with SPI interface.
@ APA102HD
APA102 LED chipset with 5-bit gamma correction.
@ P9813
P9813 LED chipset.
@ SK9822HD
SK9822 LED chipset with 5-bit gamma correction.
@ SK9822
SK9822 LED chipset.
@ WS2803
WS2803 LED chipset.
@ WS2801
WS2801 LED chipset.
@ DOTSTAR
APA102 LED chipset alias.
@ APA102
APA102 LED chipset.
@ LPD8806
LPD8806 LED chipset.
@ HD107HD
Same as APA102, but in turbo 40-mhz mode.
@ LPD6803
LPD6803 LED chipset.
@ DOTSTARHD
APA102HD LED chipset alias.
@ SM16716
SM16716 LED chipset.
ESM
Smart Matrix Library controller type.
EBlockChipsets
Blockless output port enum.
fl::u8(* power_func)(fl::u8 scale, fl::u32 data)
Typedef for a power consumption calculation function.
CLEDController * controller
Functions for doing a rotation of bits/bytes used by parallel output.
Contains the bulk of the definitions for the various LED chipsets supported.
APA102 high definition controller class.
_FL_MAP_CLOCKED_CHIPSET(LPD6803, LPD6803Controller) _FL_MAP_CLOCKED_CHIPSET(LPD8806
int size()
Get the number of leds in the first controller.
void setMaxPowerInVoltsAndMilliamps(fl::u8 volts, fl::u32 milliamps)
Set the maximum power to be used, given in volts and milliamps.
CRGB * leds()
Get a pointer to led data for the first controller.
CLEDController & addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
void onEndShowLeds()
Manually trigger the end show LEDs event.
void setTemperature(const struct CRGB &temp)
Set a global color temperature.
void setMaxRefreshRate(fl::u16 refresh, bool constrain=false)
Set the maximum refresh rate.
static CLEDController & addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add an SPI based CLEDController instance to the world.
void show(fl::u8 scale)
Update all our controllers with the current led colors, using the passed in brightness.
void show()
Update all our controllers with the current led colors.
fl::u8 getBrightness()
Get the current global brightness setting.
void onBeginFrame()
Manually trigger the begin frame event.
void showColor(const struct CRGB &color, fl::u8 scale)
Set all leds on all controllers to the given color/scale.
power_func m_pPowerFunc
function for overriding brightness when using FastLED.show();
void removeListener(fl::EngineEvents::Listener *listener)
void showColor(const struct CRGB &color)
Set all leds on all controllers to the given color.
fl::u32 m_nPowerData
max power use parameter
void countFPS(int nFrames=25)
For debugging, this will keep track of time between calls to countFPS().
CLEDController & operator[](int x)
Get a reference to a registered controller.
void setMaxPowerInMilliWatts(fl::u32 milliwatts)
Set the maximum power to be used, given in milliwatts.
fl::u8 m_Scale
the current global brightness scale setting
void delay(unsigned long ms)
Delay for the given number of milliseconds.
LPD8806Controller WS2803Controller P9813Controller APA102Controller APA102ControllerHD APA102ControllerHD SK9822ControllerHD CLEDController & addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add an SPI based CLEDController instance to the world.
fl::u32 m_nMinMicros
minimum µs between frames, used for capping frame rates
void setBrightness(fl::u8 scale)
Set the global brightness scaling.
void setDither(fl::u8 ditherMode=BINARY_DITHER)
Set the dithering mode.
void clearData()
Clear out the local data array.
void addListener(fl::EngineEvents::Listener *listener)
void setCorrection(const struct CRGB &correction)
Set a global color correction.
int count()
Get how many controllers have been registered.
static CLEDController & addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add a 3rd party library based CLEDController instance to the world.
void clear(bool writeData=false)
Clear the leds, wiping the local array of data.
fl::u16 getFPS()
Get the number of frames/second being written out.
static CLEDController & addLeds(class fl::Leds &leds, int nLedsOrOffset, int nLedsIfOffset=0)
static CLEDController & addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add a clockless based CLEDController instance to the world.
fl::u16 m_nFPS
tracking for current frames per second (FPS) value
static CLEDController & addLeds(CLEDController *pLed, struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)
Add a CLEDController instance to the world.
High level controller interface for FastLED.
Base definition for an LED controller.
DMX512 based LED controller class, using the DMXSerial library.
DMX512 based LED controller class, using the DmxSimple library.
DMX512 based LED controller class, using the DMXSerial library.
DMX512 based LED controller class, using the DmxSimple library.
GW6205_400 controller class.
GW6205 controller class @ 400 KHz.
UCS1904 controller class @ 800 KHz.
LPD1886_8BIT controller class.
LPD1886 controller class.
LPD1886 controller class.
LPD1886 controller class.
LPD6803 controller class (LPD1101).
LPD8806 controller class.
LED controller for WS2812 LEDs with GRB color order.
SM16703 controller class.
SM16703 controller class.
SM16716 controller class.
SM16824E controller class.
SM16824E controller class.
UCS1903B controller class.
UCS1903B controller class.
UCS1903 controller class @ 400 KHz.
UCS1903 controller class.
UCS1904 controller class.
UCS1904 controller class.
UCS1912 controller class.
UCS2903 controller class.
UCS2903 controller class.
WS2811_400 controller class.
WS2811 controller class @ 400 KHz.
WS2811 controller class @ 800 KHz.
WS2812B controller class.
WS2812 controller class @ 800 KHz.
WS2815 controller class @ 400 KHz.
static void addListener(Listener *listener, int priority=0)
static void removeListener(Listener *listener)
static void onBeginFrame()
static void onEndShowLeds()
Declarations for the predefined color palettes supplied by FastLED.
deprecated: base definitions used by led controllers for writing out led data
Compatibility functions based on C++ version.
#define BINARY_DITHER
Enable dithering using binary dithering (only option)
FastLED dynamic library interface - lightweight header for external callers.
Defines the DMX512-based LED controllers.
@ RGB
Red, Green, Blue (0012)
Contains definitions that can be used to configure FastLED at compile time.
#define NS(_NS)
Convert from nanoseconds to number of clock cycles.
Utility functions and classes for managing delay cycles.
Wrapper definitions to allow seamless use of PROGMEM in environments that have it.
Class base definitions for defining fast pin access.
Serial peripheral interface (SPI) definitions per platform.
Data types and constants used by SPI interfaces.
uint8_t calculate_max_brightness_for_power_mW(const CRGB *ledbuffer, uint16_t numLeds, uint8_t target_brightness, uint32_t max_power_mW)
Determines the highest brightness level you can use and still stay under the specified power budget f...
Functions to convert from the HSV colorspace to the RGB colorspace.
Determines which platform system definitions to include.
Fast, efficient 8-bit math functions specifically designed for high-performance LED programming.
#define FASTLED_NAMESPACE_END
#define FASTLED_NAMESPACE_BEGIN
MapRedBlackTree< Key, T, Compare, fl::allocator_slab< char > > fl_map
HeapVector< T, Allocator > vector
Functions to generate and fill arrays with noise.
Declares classes for managing logical groups of LEDs.
Includes defintions for RGB and HSV pixels.
Functions to limit the power used by FastLED.
Generic asynchronous task management for FastLED.
static const bool IS_VALID
Representation of an RGB pixel (Red, Green, Blue)