FastLED 3.9.15
Loading...
Searching...
No Matches
bus.h File Reference

Detailed Description

Compile-time identifier for an LED channel transmission bus.

fl::Bus is the single source of truth for which low-level driver implementation handles a channel. The same value drives:

  • Compile-time template binding (Channel<Bus::X, Chipset>).
  • Per-platform default selection (DefaultBus<Chipset>::value).
  • Opt-in runtime registry enrollment (enableDrivers<Bus::X...>()).

Drivers link only when their Bus value is named somewhere in the translation unit graph. See issue #2428.

Definition in file bus.h.

#include "fl/stl/noexcept.h"
#include "fl/stl/static_assert.h"
#include "fl/stl/stdint.h"
#include "platforms/is_platform.h"
+ Include dependency graph for bus.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Enumerations

enum class  fl::Bus : fl::u8 {
  fl::AUTO = 0 , fl::RMT , fl::PARLIO , fl::SPI ,
  fl::I2S , fl::I2S_SPI , fl::LCD_RGB , fl::LCD_SPI ,
  fl::LCD_CLOCKLESS , fl::UART , fl::FLEX_IO , fl::OBJECT_FLED ,
  fl::LPUART , fl::BIT_BANG , fl::STUB
}
 Driver identifier for compile-time bus selection. More...
 

Functions

const char * fl::busName (Bus b) FL_NOEXCEPT
 Canonical driver-name string for a Bus value.
 
 fl::FL_STATIC_ASSERT (static_cast< fl::u8 >(Bus::STUB)==14, "Bus changed: add the new value to busName() in this file")