|
FastLED 3.10.8
|
Per-driver traits keyed on fl::Bus.
Each concrete driver provides a specialization of BusTraits<Bus::X> (typically in a bus_traits.h adjacent to the driver header). The specialization carries:
using Driver = ...; the concrete driver class.static Driver& instance(); Meyers singleton accessor.BusSupports<Bus::X, Chipset> true_type specializations declaring which chipset families the driver can handle.Naming BusTraits<Bus::X>::instance() anywhere in the program is what causes the linker to keep the driver's translation unit. If no template instantiation references it, the driver TU is dead-stripped. See #2428.
Definition in file bus_traits.h.
Include dependency graph for bus_traits.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | fl::BusSupports< B, Chipset, Which > |
Capability check: does bus B accept chipset family Chipset? More... | |
| struct | fl::detail::BusKeepAliveImpl< B, Which > |
| struct | fl::detail::BusKeepAliveImpl< fl::Bus::AUTO, Which > |
| struct | fl::detail::enable_clockless_for< Chipset, Traits > |
enable_clockless<Traits>() only for the clockless chipset family. More... | |
| struct | fl::detail::enable_clockless_for< ClocklessChipset, Traits > |
Namespaces | |
| namespace | fl |
| Base definition for an LED controller. | |
| namespace | fl::detail |
Compile-time linker keep-alive hook for a single fl::Bus. | |
Functions | |
| template<Bus B, fl::u8 Which = 0> | |
| int | fl::detail::bus_register_one () FL_NO_EXCEPT |
Helper used by enableDrivers<Bus...>() to expand the parameter pack. | |
| template<fl::Bus B, fl::u8 Which = 0> | |
| void | fl::busKeepAlive () FL_NO_EXCEPT |
| template<typename Traits> | |
| void | fl::detail::enable_clockless () FL_NO_EXCEPT |
| template<typename Traits> | |
| auto | fl::detail::enable_clockless_impl (int) FL_NO_EXCEPT -> decltype(Traits::enableClockless(), void()) |
Call Traits::enableClockless() when the bus provides one. | |
| template<typename Traits> | |
| void | fl::detail::enable_clockless_impl (long) FL_NO_EXCEPT |
| template<Bus B, fl::u8 Which = 0> | |
| void | fl::enableDriver () FL_NO_EXCEPT |
| template<Bus... Buses> | |
| void | fl::enableDrivers () FL_NO_EXCEPT |
Register the named drivers with ChannelManager for runtime selection. | |