FastLED 3.10.6
Loading...
Searching...
No Matches
wave3.h File Reference

Detailed Description

Out-of-line declarations for wave3 transposition internals.

Split from the former detail/wave3.hpp force-inline header. Callers now include this .h and link against detail/wave3.cpp.hpp. The transposes are still in IRAM and are still FL_OPTIMIZE_FUNCTION — they are just no longer force-inlined into every translation unit that references them. The unity build compiles the .cpp.hpp once and every caller resolves via normal link.

Definition in file wave3.h.

+ Include dependency graph for wave3.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.
 
namespace  fl::detail
 Compile-time linker keep-alive hook for a single fl::Bus.
 

Functions

FL_IRAM FL_OPTIMIZE_FUNCTION void fl::wave3 (u8 lane, const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[sizeof(Wave3Byte)]) FL_NO_EXCEPT
 Public single-lane wave3 encoder.
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave3_convert_byte_to_wave3byte (u8 byte_value, const Wave3BitExpansionLut &lut, Wave3Byte *output) FL_NO_EXCEPT
 Convert one byte to a Wave3Byte using the nibble LUT.
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave3_transpose_16 (const Wave3Byte lane_waves[16], u8 output[16 *sizeof(Wave3Byte)]) FL_NO_EXCEPT
 Transpose 16 lanes of Wave3Byte data via the spread-LUT path (#2533).
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave3_transpose_2 (const Wave3Byte lane_waves[2], u8 output[2 *sizeof(Wave3Byte)]) FL_NO_EXCEPT
 Transpose 2 lanes of Wave3Byte data into interleaved format.
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave3_transpose_4 (const Wave3Byte lane_waves[4], u8 output[4 *sizeof(Wave3Byte)]) FL_NO_EXCEPT
 Transpose 4 lanes of Wave3Byte data.
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave3_transpose_8 (const Wave3Byte lane_waves[8], u8 output[8 *sizeof(Wave3Byte)]) FL_NO_EXCEPT
 Transpose 8 lanes of Wave3Byte data via the spread-LUT path (#2533).