FastLED 3.10.8
Loading...
Searching...
No Matches
wave8.h File Reference
#include "fl/stl/align.h"
#include "fl/stl/compiler_control.h"
#include "fl/stl/stdint.h"
#include "fl/stl/noexcept.h"
+ Include dependency graph for wave8.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::Wave8Bit
 Type-safe container for packed 8-bit wave pulse pattern. More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Functions

Wave8ByteExpansionLut fl::buildWave8ByteExpansionLUT (const Wave8BitExpansionLut &nibble) FL_NO_EXCEPT
 Build a byte-indexed expansion LUT (#2526) from the nibble LUT.
 
void fl::buildWave8ByteExpansionLUT (const Wave8BitExpansionLut &nibble, Wave8ByteExpansionLut &out) FL_NO_EXCEPT
 Out-param overload: fill an existing 2 KB LUT in place.
 
FL_OPTIMIZE_FUNCTION Wave8BitExpansionLut fl::buildWave8ExpansionLUT (const ChipsetTiming &timing) FL_NO_EXCEPT
 Build a Wave8BitExpansionLut from chipset timing data.
 
struct fl::FL_ALIGNAS (8) Wave8Byte
 Container for 8 packed wave symbols (8 bytes total)
 
FL_IRAM FL_OPTIMIZE_FUNCTION void fl::wave8 (u8 lane, const Wave8BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[sizeof(Wave8Byte)]) FL_NO_EXCEPT
 Public single-lane wave8 encoder.
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16 (const u8(&FL_RESTRICT_PARAM lanes)[16], const Wave8BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16 (const u8(&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16_bf1 (const u8(&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 BF1: chipset-aware direct encode for 16-lane Wave8 (#2548 deep-dive).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16x2_pipe2 (const u8(&FL_RESTRICT_PARAM lanes_a)[16], const u8(&FL_RESTRICT_PARAM lanes_b)[16], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output_a)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_b)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 Pipe2: transpose 16-lane × 2-byte-positions (#2548).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16x4_bf1_pipe4 (const u8(&FL_RESTRICT_PARAM lanes_a)[16], const u8(&FL_RESTRICT_PARAM lanes_b)[16], const u8(&FL_RESTRICT_PARAM lanes_c)[16], const u8(&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output_a)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_b)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_c)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_d)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 BF1 + pipe4: 4-position-pipelined direct encode (#2548 deep-dive).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_16x4_pipe4 (const u8(&FL_RESTRICT_PARAM lanes_a)[16], const u8(&FL_RESTRICT_PARAM lanes_b)[16], const u8(&FL_RESTRICT_PARAM lanes_c)[16], const u8(&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output_a)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_b)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_c)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output_d)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 Pipe4: transpose 16-lane × 4-byte-positions (#2548).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_2 (const u8(&FL_RESTRICT_PARAM lanes)[2], const Wave8BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_2 (const u8(&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_2_bf1 (const u8(&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 BF1 for 2-lane Wave8 (#2548 deep-dive followup).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_4 (const u8(&FL_RESTRICT_PARAM lanes)[4], const Wave8BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_4 (const u8(&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_4_bf1 (const u8(&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 BF1 for 4-lane Wave8 (#2548 deep-dive followup).
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_8 (const u8(&FL_RESTRICT_PARAM lanes)[8], const Wave8BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_8 (const u8(&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave8Transpose_8_bf1 (const u8(&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 BF1 for 8-lane Wave8 (#2548 deep-dive followup).
 
FL_OPTIMIZE_FUNCTION void fl::wave8Untranspose_16 (const u8(&FL_RESTRICT_PARAM transposed)[16 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION void fl::wave8Untranspose_2 (const u8(&FL_RESTRICT_PARAM transposed)[2 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION void fl::wave8Untranspose_4 (const u8(&FL_RESTRICT_PARAM transposed)[4 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 
FL_OPTIMIZE_FUNCTION void fl::wave8Untranspose_8 (const u8(&FL_RESTRICT_PARAM transposed)[8 *sizeof(Wave8Byte)], u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave8Byte)]) FL_NO_EXCEPT
 

Class Documentation

◆ fl::Wave8Bit

struct fl::Wave8Bit
Class Members
u8 data