16#include "platforms/shared/spi_types.h"
Device & operator=(const Device &) FL_NOEXCEPT=delete
bool isReady() const
Check if device is initialized and ready for use.
Device(const Device &) FL_NOEXCEPT=delete
fl::optional< fl::task::Error > begin()
Initialize the SPI hardware.
void end()
Shutdown the SPI hardware and release resources.
Result< Transaction > writeAsync(const u8 *data, size_t size)
Begin asynchronous write operation (returns immediately)
fl::optional< fl::task::Error > transmit(DMABuffer &buffer, bool async=true)
Transmit from previously acquired DMA buffer.
bool waitComplete(u32 timeout_ms=(fl::numeric_limits< u32 >::max)())
Wait for pending async operation to complete.
Device(const Config &config)
Construct SPI device with configuration.
fl::optional< fl::task::Error > setClockSpeed(u32 speed_hz)
Update clock speed.
fl::unique_ptr< Impl > pImpl
~Device() FL_NOEXCEPT
Destructor - releases hardware resources.
DMABuffer acquireBuffer(size_t size)
Acquire DMA-capable buffer for zero-copy transmission.
const Config & getConfig() const
Get current configuration.
bool isBusy() const
Check if async operation is in progress.
Configuration structure for SPI communication.
fl::result< T, SPIError > Result
Base definition for an LED controller.
Promise-based fluent API for FastLED - standalone async primitives.
static constexpr T max() FL_NOEXCEPT
Private implementation data for Device class.
Transaction class for asynchronous SPI operations.