@brief Configuration for a single LED channel Contains all settings typically configured via FastLED.addLeds<>().set...() methods: - LED data array and count - Chipset configuration (clockless or SPI) - Color correction and temperature - Dithering mode - RGBW conversion settings
| 161 | /// - Dithering mode |
| 162 | /// - RGBW conversion settings |
| 163 | struct ChannelConfig { |
| 164 | |
| 165 | // ========== New Variant-Based Constructors ========== |
| 166 | |
| 167 | /// @brief Named constructor with chipset variant |
| 168 | /// @param name User-specified channel name |
| 169 | /// @param chipset Chipset configuration (clockless or SPI) |
| 170 | /// @param leds LED data array |
| 171 | /// @param rgbOrder RGB channel ordering |
| 172 | /// @param options Channel options (correction, temperature, dither, affinity) |
| 173 | ChannelConfig(const fl::string& name, const ChipsetVariant& chipset, fl::span<CRGB> leds, |
| 174 | EOrder rgbOrder = RGB, const ChannelOptions& options = ChannelOptions()) FL_NOEXCEPT; |
| 175 | |
| 176 | /// @brief Primary constructor with chipset variant |
| 177 | /// @param chipset Chipset configuration (clockless or SPI) |
| 178 | /// @param leds LED data array |
| 179 | /// @param rgbOrder RGB channel ordering |
| 180 | /// @param options Channel options (correction, temperature, dither, affinity) |
| 181 | ChannelConfig(const ChipsetVariant& chipset, fl::span<CRGB> leds, |
| 182 | EOrder rgbOrder = RGB, const ChannelOptions& options = ChannelOptions()) FL_NOEXCEPT; |
| 183 | |
| 184 | /// @brief Constructor with clockless chipset |
| 185 | /// @param clockless Clockless chipset configuration |
| 186 | /// @param leds LED data array |
| 187 | /// @param rgbOrder RGB channel ordering |
| 188 | /// @param options Channel options |
| 189 | ChannelConfig(const ClocklessChipset& clockless, fl::span<CRGB> leds, |
| 190 | EOrder rgbOrder = RGB, const ChannelOptions& options = ChannelOptions()) FL_NOEXCEPT; |
| 191 | |
| 192 | /// @brief Constructor with SPI chipset |
| 193 | /// @param spi SPI chipset configuration |
| 194 | /// @param leds LED data array |
| 195 | /// @param rgbOrder RGB channel ordering |
| 196 | /// @param options Channel options |
| 197 | ChannelConfig(const SpiChipsetConfig& spi, fl::span<CRGB> leds, |
| 198 | EOrder rgbOrder = RGB, const ChannelOptions& options = ChannelOptions()) FL_NOEXCEPT; |
| 199 | |
| 200 | // ========== Backwards-Compatible Constructors (Deprecated) ========== |
| 201 | |
| 202 | /// @brief Template constructor with TIMING type (backwards compatibility) |
| 203 | /// @deprecated Use ClocklessChipset constructor instead |
| 204 | /// @note This constructor creates a ClocklessChipset internally |
| 205 | template<typename TIMING> |
| 206 | ChannelConfig(int pin, fl::span<CRGB> leds, EOrder rgbOrder = RGB, |
| 207 | const ChannelOptions& options = ChannelOptions()) |
| 208 | FL_NOEXCEPT : ChannelConfig(makeClockless<TIMING>(pin), leds, rgbOrder, options) {} |
| 209 | |
| 210 | /// @brief Basic constructor with timing (backwards compatibility) |
| 211 | /// @deprecated Use ClocklessChipset constructor instead |
| 212 | /// @note This constructor creates a ClocklessChipset internally |
| 213 | ChannelConfig(int pin, const ChipsetTimingConfig& timing, fl::span<CRGB> leds, |
| 214 | EOrder rgbOrder = RGB, const ChannelOptions& options = ChannelOptions()) FL_NOEXCEPT; |
| 215 | |
| 216 | // Copy constructor (needed because of variant) |
| 217 | ChannelConfig(const ChannelConfig& other) FL_NOEXCEPT; |
| 218 | |
| 219 | // Move constructor (needed because of variant) |
| 220 | ChannelConfig(ChannelConfig&& other) FL_NOEXCEPT; |
no test coverage detected