FastLED 3.9.15
Loading...
Searching...
No Matches

◆ add() [3/8]

fl::vector< fl::ChannelPtr > CFastLED::add ( const fl::MultiChannelConfig & multiConfig)
static

Add multiple LED channels from a MultiChannelConfig.

Creates and registers multiple Channel-based LED controllers from a MultiChannelConfig. Returns a vector of shared_ptrs for lifetime control.

Parameters
multiConfigMultiChannelConfig containing multiple channel configurations
Returns
Vector of ChannelPtrs (one per config), or empty elements if unsupported
Note
Supported platforms: ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-P4

Example:

fl::MultiChannelConfig multiConfig = {
fl::ChannelConfig(PIN1, timing, leds1, RGB),
fl::ChannelConfig(PIN2, timing, leds2, RGB)
};
auto channels = FastLED.add(multiConfig);
CRGB leds2[lengths[RedStrip]]
CRGB leds1[lengths[GreenStrip]]
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
static fl::vector< fl::ChannelPtr > & channels()
stored ChannelPtrs to keep them alive
constexpr EOrder RGB
Definition eorder.h:17
constexpr ChipsetTimingConfig makeTimingConfig() FL_NOEXCEPT
Convert compile-time CHIPSET type to runtime timing config.
Configuration for a single LED channel.
Definition config.h:163

Definition at line 670 of file FastLED.cpp.hpp.

670 {
671 fl::vector<fl::ChannelPtr> channels;
672 channels.reserve(multiConfig.mChannels.size());
673
674 for (const auto& configPtr : multiConfig.mChannels) {
675 if (configPtr) {
676 channels.push_back(add(*configPtr));
677 }
678 }
679
680 return channels;
681}
static void add(fl::ChannelPtr channel)
Add a Channel-based LED controller (from ChannelPtr)
fl::size size() const FL_NOEXCEPT
fl::vector< ChannelConfigPtr > mChannels
Vector of shared pointers to channel configurations.
Definition config.h:392

References add(), channels(), fl::MultiChannelConfig::mChannels, and fl::vector_basic::size().

+ Here is the call graph for this function: