FastLED 3.10.6
Loading...
Searching...
No Matches

◆ wave3_transpose_2()

void fl::detail::wave3_transpose_2 ( const Wave3Byte lane_waves[2],
u8 output[2 *sizeof(Wave3Byte)] )

Transpose 2 lanes of Wave3Byte data into interleaved format.

Definition at line 35 of file wave3.cpp.hpp.

36 {
37 for (int symbol_idx = 0; symbol_idx < 3; symbol_idx++) {
38 u8 l0 = lane_waves[0].data[symbol_idx];
39 u8 l1 = lane_waves[1].data[symbol_idx];
40
41 u16 interleaved = 0;
42 for (int bit = 0; bit < 8; bit++) {
43 u16 b0 = (l0 >> bit) & 1;
44 u16 b1 = (l1 >> bit) & 1;
45 interleaved |= (b1 << (bit * 2));
46 interleaved |= (b0 << (bit * 2 + 1));
47 }
48
49 output[symbol_idx * 2] = (u8)(interleaved >> 8);
50 output[symbol_idx * 2 + 1] = (u8)(interleaved & 0xFF);
51 }
52}
unsigned char u8
Definition stdint.h:131
u8 data[3]
Definition wave3.h:21

References fl::Wave3Byte::data, and fl::FL_NO_EXCEPT.

Referenced by fl::wave3Transpose_2().

+ Here is the caller graph for this function: