63 size_t targetSize = dst.size();
67 if (targetSize < currentSize) {
80 size_t paddingSize = targetSize - currentSize;
81 if (paddingSize > 0) {
82 fl::fill(dst.begin(), dst.begin() + paddingSize,
u8(0));
~ChannelData()
Destructor with debug logging.
void writeWithPadding(fl::span< u8 > dst) FL_NOEXCEPT
Write encoded data with padding to destination buffer.
const ChipsetTimingConfig & getTiming() const FL_NOEXCEPT
Get the timing configuration (clockless chipsets only)
ChannelData(const ChipsetVariant &chipset, fl::vector_psram< u8 > &&encodedData) FL_NOEXCEPT
Private constructor - variant-based (modern API)
int getPin() const FL_NOEXCEPT
Get the GPIO pin number.
static ChannelDataPtr create(const ChipsetVariant &chipset, fl::vector_psram< u8 > &&encodedData=fl::vector_psram< u8 >()) FL_NOEXCEPT
Create channel transmission data (modern variant-based API)
ChipsetVariant mChipset
Chipset configuration (clockless or SPI)
fl::vector_psram< u8 > mEncodedData
Encoded transmission bytes (PSRAM)
PaddingGenerator mPaddingGenerator
Optional padding generator for block-size alignment.
const T * data() const FL_NOEXCEPT
Channel transmission data - lightweight DTO for driver transmission.
Centralized logging categories for FastLED hardware interfaces and subsystems.
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
void * memcopy(void *dest, const void *src, size_t n) FL_NOEXCEPT
fl::variant< ClocklessChipset, SpiChipsetConfig > ChipsetVariant
shared_ptr< T > make_shared(Args &&... args) FL_NOEXCEPT
void fill(Iterator first, Iterator last, const T &value) FL_NOEXCEPT
Base definition for an LED controller.
Runtime bit-period timing for a clockless chipset.
Clockless chipset configuration (single data pin)
SPI chipset configuration (data + clock pins)