31template<fl::Bus B, fl::u8 Which = 0>
struct BusTraits;
46template<fl::Bus B,
typename Chipset, fl::u8 Which = 0>
56template<
typename Traits>
58 ->
decltype(Traits::enableClockless(), void()) {
59 Traits::enableClockless();
61template<
typename Traits>
63template<
typename Traits>
70template<
typename Chipset,
typename Traits>
74template<
typename Traits>
83template<Bus B, fl::u8 Which = 0>
111template<
Bus... Buses>
114 using expand =
int[];
118template<Bus B, fl::u8 Which = 0>
133template<fl::Bus B, fl::u8 Which = 0>
146template<fl::u8 Which>
153template<fl::Bus B, fl::u8 Which = 0>
Portable compile-time identifiers for LED channel buses.
int bus_register_one() FL_NO_EXCEPT
Helper used by enableDrivers<Bus...>() to expand the parameter pack.
auto enable_clockless_impl(int) FL_NO_EXCEPT -> decltype(Traits::enableClockless(), void())
Call Traits::enableClockless() when the bus provides one.
void enable_clockless() FL_NO_EXCEPT
Compile-time linker keep-alive hook for a single fl::Bus.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
integral_constant< bool, false > false_type
void busKeepAlive() FL_NO_EXCEPT
Bus
Portable public bus selector.
void enableDrivers() FL_NO_EXCEPT
Register the named drivers with ChannelManager for runtime selection.
void enableDriver() FL_NO_EXCEPT
Base definition for an LED controller.
Primary template — intentionally undefined.
Capability check: does bus B accept chipset family Chipset?
Clockless chipset configuration (single data pin)
static void odr_use() FL_NO_EXCEPT
static void odr_use() FL_NO_EXCEPT
static void apply() FL_NO_EXCEPT
static void apply() FL_NO_EXCEPT
enable_clockless<Traits>() only for the clockless chipset family.