|
FastLED 3.9.15
|
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 > |
Capability check: does bus B accept chipset family Chipset? More... | |
| struct | fl::detail::BusKeepAliveImpl< B > |
| struct | fl::detail::BusKeepAliveImpl< fl::Bus::AUTO > |
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> | |
| int | fl::detail::bus_register_one () FL_NOEXCEPT |
Helper used by enableDrivers<Bus...>() to expand the parameter pack. | |
| template<fl::Bus B> | |
| void | fl::busKeepAlive () FL_NOEXCEPT |
| template<Bus... Buses> | |
| void | fl::enableDrivers () FL_NOEXCEPT |
Register the named drivers with ChannelManager for runtime selection. | |