FastLED 3.10.9
Loading...
Searching...
No Matches

◆ resolveDriver()

template<fl::SpiChipset CHIPSET, EOrder RGB_ORDER, fl::Bus B, fl::u8 B_WHICH>
fl::shared_ptr< IChannelDriver > fl::SlimSpiBridgeController< CHIPSET, RGB_ORDER, B, B_WHICH >::resolveDriver ( )
inlineprivate

Resolve the driver for this frame.

Mirrors Channel::resolveDynamicDriver() (channel.cpp.hpp), including the FASTLED_DISABLE_DYNAMIC_DRIVER gate – this controller never pre-binds a driver, so that gate simply drops every frame here, matching Channel::showPixels()'s non-pre-bound else branch under the same flag.

Definition at line 177 of file slim_spi_bridge_controller.h.

177 {
178#if defined(FASTLED_DISABLE_DYNAMIC_DRIVER) && FASTLED_DISABLE_DYNAMIC_DRIVER
179 return {};
180#else
181#if defined(FL_IS_ESP32)
182 if (mExplicitSpiHost) {
183 // A requested SPI host cannot be honored by the LCD_CAM driver.
184 // Do not fall through to priority selection if the native adapter
185 // is unavailable.
187 fl::string::from_literal("SPI_UNIFIED"));
188 }
189#endif
190 // Build busKey only when we actually need it (kBus != AUTO).
192 if (kBus != Bus::AUTO) {
194 }
195
198
199#if FASTLED_LOG_RUNTIME_ENABLED
200 if (!driver && !mBusWarned) {
201 FL_ERROR("SlimSpiBridgeController: no compatible driver found for bus '" << busKey << "' - cannot transmit");
202 mBusWarned = true;
203 }
204#endif // FASTLED_LOG_RUNTIME_ENABLED
205 return driver;
206#endif // !FASTLED_DISABLE_DYNAMIC_DRIVER
207 }
static ChannelManager & registry() FL_NO_EXCEPT
Get the singleton WITHOUT registering platform default drivers.
fl::shared_ptr< IChannelDriver > findDriverByName(const fl::string &name) const FL_NO_EXCEPT
Silent counterpart to getDriverByName().
fl::shared_ptr< IChannelDriver > selectDriverForChannel(const ChannelDataPtr &data, const fl::string &affinity) FL_NO_EXCEPT
Select best driver for channel data (used by Channel::showPixels)
static constexpr Bus kBus
The bus actually used after resolving Bus::AUTO – mirrors TypedChannel<B, SpiChipsetConfig,...
Shared legacy addLeds<ESPIChipsets ...>() bridge controller over an IChannelDriver,...
static string from_literal(const char *literal) FL_NO_EXCEPT
#define FL_ERROR(...)
Definition log.h:373
const char * busDriverName(Bus b, fl::u8 which=0, bool spi=false) FL_NO_EXCEPT
Concrete ChannelManager driver name for a portable bus.
Definition bus.h:186

References fl::AUTO, fl::busDriverName(), FL_ERROR, fl::FL_NO_EXCEPT, fl::string::from_literal(), kBus, mData, and fl::ChannelManager::registry().

Referenced by showPixels().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: