MCPcopy Create free account
hub / github.com/FastLED/FastLED / wave8Transpose_16

Function wave8Transpose_16

src/fl/channels/wave8.cpp.hpp:72–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72FL_OPTIMIZE_FUNCTION FL_IRAM
73void wave8Transpose_16(const u8 (&FL_RESTRICT_PARAM lanes)[16],
74 const Wave8BitExpansionLut &lut,
75 u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]) {
76 // Allocate waveform buffers on stack (128 Wave8Bit total: 8 packed bytes per lane × 16 lanes)
77 Wave8Byte laneWaveformSymbols[16];
78
79 // Convert each lane byte to wave pulse symbols (8 packed bytes each)
80 for (int lane = 0; lane < 16; lane++) {
81 detail::wave8_convert_byte_to_wave8byte(lanes[lane], lut, &laneWaveformSymbols[lane]);
82 }
83
84 // Transpose waveforms to DMA format (interleave 128 packed bytes to 128 bytes)
85 detail::wave8_transpose_16(laneWaveformSymbols, output);
86}
87
88// ============================================================================
89// Byte-LUT overloads (#2526): cheaper expansion, same DMA output.

Callers 3

FL_TEST_FILEFunction · 0.85
measureWave8ExpandFunction · 0.85

Calls 3

wave8_transpose_16Function · 0.85
wave8_expand_byteFunction · 0.85

Tested by

no test coverage detected