FastLED 3.9.15
Loading...
Searching...
No Matches
wave3.h File Reference
#include "fl/stl/align.h"
#include "fl/stl/compiler_control.h"
#include "fl/stl/stdint.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.

Classes

struct  fl::Wave3Byte
 Type-safe container for 3-byte wave pulse pattern (wave3 encoding) More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Functions

FL_OPTIMIZE_FUNCTION Wave3BitExpansionLut fl::buildWave3ExpansionLUT (const ChipsetTiming &timing)
 Build a Wave3BitExpansionLut from chipset timing data.
 
FL_OPTIMIZE_FUNCTION bool fl::canUseWave3 (const ChipsetTiming &timing)
 Check if a chipset timing is eligible for wave3 encoding.
 
struct fl::FL_ALIGNAS (4) Wave3BitExpansionLut
 Lookup table for nibble-to-waveform expansion in wave3 format (32 bytes)
 
FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void fl::wave3 (u8 lane, const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[sizeof(Wave3Byte)])
 Convert byte to 3 wave3 bytes using nibble LUT.
 
FL_OPTIMIZE_FUNCTION u32 fl::wave3ClockFrequencyHz (const ChipsetTiming &timing)
 Calculate the clock frequency for wave3 encoding.
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave3Transpose_16 (const u8(&FL_RESTRICT_PARAM lanes)[16], const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave3Transpose_2 (const u8(&FL_RESTRICT_PARAM lanes)[2], const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave3Transpose_4 (const u8(&FL_RESTRICT_PARAM lanes)[4], const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION FL_IRAM void fl::wave3Transpose_8 (const u8(&FL_RESTRICT_PARAM lanes)[8], const Wave3BitExpansionLut &lut, u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION void fl::wave3Untranspose_16 (const u8(&FL_RESTRICT_PARAM transposed)[16 *sizeof(Wave3Byte)], u8(&FL_RESTRICT_PARAM output)[16 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION void fl::wave3Untranspose_2 (const u8(&FL_RESTRICT_PARAM transposed)[2 *sizeof(Wave3Byte)], u8(&FL_RESTRICT_PARAM output)[2 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION void fl::wave3Untranspose_4 (const u8(&FL_RESTRICT_PARAM transposed)[4 *sizeof(Wave3Byte)], u8(&FL_RESTRICT_PARAM output)[4 *sizeof(Wave3Byte)])
 
FL_OPTIMIZE_FUNCTION void fl::wave3Untranspose_8 (const u8(&FL_RESTRICT_PARAM transposed)[8 *sizeof(Wave3Byte)], u8(&FL_RESTRICT_PARAM output)[8 *sizeof(Wave3Byte)])
 

Class Documentation

◆ fl::Wave3Byte

struct fl::Wave3Byte
Class Members
u8 data[3]