14#if defined(FL_IS_ESP_32DEV) && !FASTLED_RMT5 && !defined(FASTLED_ESP32_USE_CLOCKLESS_SPI)
15#define AUTORESEARCH_LEGACY_OBSERVES_RMT4_FRAMES 1
17#define AUTORESEARCH_LEGACY_OBSERVES_RMT4_FRAMES 0
27#if defined(FL_IS_TEENSY_4X)
28#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_22 1
30#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_22 0
47#if defined(FL_IS_ESP_32DEV) || defined(FL_IS_ESP8266)
48#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_6 0
49#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_7 0
50#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_8 0
52#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_6 1
53#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_7 1
54#define AUTORESEARCH_LEGACY_SUPPORTS_PIN_8 1
73 if (name ==
"WS2812B" || name ==
"WS2812") {
77 if (name ==
"SK6812") {
81 if (name ==
"WS2814") {
85 if (name ==
"WS2818") {
104#if defined(FL_IS_ESP32)
105 #if defined(FL_ESP32_LEGACY_CLOCKLESS_USE_RMT) && \
106 FL_ESP32_LEGACY_CLOCKLESS_USE_RMT
108 #elif FASTLED_ESP32_HAS_PARLIO && \
109 (defined(FL_IS_ESP_32P4) || defined(FL_IS_ESP_32C6) || \
110 defined(FL_IS_ESP_32H2) || defined(FL_IS_ESP_32C5))
112 #elif FASTLED_ESP32_HAS_RMT && \
113 !defined(FASTLED_ESP32_USE_CLOCKLESS_SPI)
115 #elif FASTLED_ESP32_HAS_CLOCKLESS_SPI
120#elif defined(FL_IS_TEENSY_4X)
121 return "OBJECT_FLED";
122#elif defined(FL_IS_RP)
126 #if FASTLED_RP2040_CLOCKLESS_PIO
152#if AUTORESEARCH_LEGACY_OBSERVES_RMT4_FRAMES
156 template<
typename Controller>
161#if AUTORESEARCH_LEGACY_OBSERVES_RMT4_FRAMES
162 mFrame = c->channelData();
199#if defined(FL_IS_ESP_32DEV)
203#if AUTORESEARCH_LEGACY_SUPPORTS_PIN_6
206#if AUTORESEARCH_LEGACY_SUPPORTS_PIN_7
209#if AUTORESEARCH_LEGACY_SUPPORTS_PIN_8
212#if AUTORESEARCH_LEGACY_SUPPORTS_PIN_22
240#if AUTORESEARCH_LEGACY_OBSERVES_RMT4_FRAMES
fl::UISlider brightness("Brightness", BRIGHTNESS, 0, 255)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
bool legacyClocklessChipsetFromName(const fl::string &name, LegacyClocklessChipset *out)
const char * legacyClocklessChipsetName(LegacyClocklessChipset chipset)
const char * legacyClocklessBoundDriverName()
Name of the driver to which public legacy templates are bound.
bool legacyClocklessChipsetHasAutomaticRgbw(LegacyClocklessChipset chipset)
fl::unique_ptr< CLEDController > create(CRGB *leds, int numLeds, LegacyClocklessChipset chipset, bool rgbw)
LegacyClocklessProxy(int pin, CRGB *leds, int numLeds, LegacyClocklessChipset chipset=LegacyClocklessChipset::WS2812B, bool rgbw=false)
fl::unique_ptr< CLEDController > createTyped(CRGB *leds, int numLeds, bool rgbw)
fl::unique_ptr< CLEDController > mController
void setEnabled(bool enabled)
void setLeds(fl::span< CRGB > leds)
void showLeds(uint8_t brightness=255)
LegacyClocklessProxy(const LegacyClocklessProxy &)=delete
bool valid() const
Check if the proxy was successfully created.
LegacyClocklessProxy & operator=(const LegacyClocklessProxy &)=delete
~LegacyClocklessProxy()=default
fl::enable_if<!fl::is_array< T >::value, unique_ptr< T > >::type make_unique(Args &&... args) FL_NO_EXCEPT