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

Detailed Description

Encoding pipeline selector for clockless LED chipsets.

The bit-period timing (T1/T2/T3/RESET) for clockless chipsets lives in fl/chipsets/led_timing.h. This header captures the byte-level concern: which encoder pipeline the Channel API should run for a given chipset.

Most clockless chipsets use plain WS2812-style encoding (raw pixel bytes). Some chipsets (e.g., UCS7604) require special preambles and encoding modes. This enum is the runtime dispatch tag the Channel API uses to select the correct encoder.

Definition in file clockless_encoder.h.

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

Go to the source code of this file.

Classes

struct  fl::detail::get_encoder< CHIPSET, HAS_ENCODER >
 
struct  fl::detail::get_encoder< CHIPSET, true >
 
struct  fl::has_encoder< T >
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::detail
 Compile-time linker keep-alive hook for a single fl::Bus.
 

Enumerations

enum class  fl::ClocklessEncoder : u8 { fl::CLOCKLESS_ENCODER_WS2812 = 0 , fl::CLOCKLESS_ENCODER_UCS7604_8BIT , fl::CLOCKLESS_ENCODER_UCS7604_16BIT , fl::CLOCKLESS_ENCODER_UCS7604_16BIT_1600 }
 Identifies which encoder to use for clockless chipsets in the Channel API. More...
 

Functions

template<typename TIMING>
constexpr ClocklessEncoder fl::encoder_for () FL_NOEXCEPT
 Extract the encoder selector from a compile-time TIMING type.
 
template<typename T>
constexpr bool fl::detail::test_encoder (...) FL_NOEXCEPT
 
template<typename T>
constexpr auto fl::detail::test_encoder (int) FL_NOEXCEPT -> decltype(T::ENCODER, true)