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

◆ wave8_transpose_4()

void fl::detail::wave8_transpose_4 ( const Wave8Byte lane_waves[4],
u8 output[4 *sizeof(Wave8Byte)] )

Definition at line 62 of file wave8.cpp.hpp.

63 {
64 for (int symbol_idx = 0; symbol_idx < 8; symbol_idx++) {
65 u8 l0 = lane_waves[0].symbols[symbol_idx].data;
66 u8 l1 = lane_waves[1].symbols[symbol_idx].data;
67 u8 l2 = lane_waves[2].symbols[symbol_idx].data;
68 u8 l3 = lane_waves[3].symbols[symbol_idx].data;
69
70 output[symbol_idx * 4 + 0] =
71 ((l3 >> 7) & 1) << 7 |
72 ((l2 >> 7) & 1) << 6 |
73 ((l1 >> 7) & 1) << 5 |
74 ((l0 >> 7) & 1) << 4 |
75 ((l3 >> 6) & 1) << 3 |
76 ((l2 >> 6) & 1) << 2 |
77 ((l1 >> 6) & 1) << 1 |
78 ((l0 >> 6) & 1);
79
80 output[symbol_idx * 4 + 1] =
81 ((l3 >> 5) & 1) << 7 |
82 ((l2 >> 5) & 1) << 6 |
83 ((l1 >> 5) & 1) << 5 |
84 ((l0 >> 5) & 1) << 4 |
85 ((l3 >> 4) & 1) << 3 |
86 ((l2 >> 4) & 1) << 2 |
87 ((l1 >> 4) & 1) << 1 |
88 ((l0 >> 4) & 1);
89
90 output[symbol_idx * 4 + 2] =
91 ((l3 >> 3) & 1) << 7 |
92 ((l2 >> 3) & 1) << 6 |
93 ((l1 >> 3) & 1) << 5 |
94 ((l0 >> 3) & 1) << 4 |
95 ((l3 >> 2) & 1) << 3 |
96 ((l2 >> 2) & 1) << 2 |
97 ((l1 >> 2) & 1) << 1 |
98 ((l0 >> 2) & 1);
99
100 output[symbol_idx * 4 + 3] =
101 ((l3 >> 1) & 1) << 7 |
102 ((l2 >> 1) & 1) << 6 |
103 ((l1 >> 1) & 1) << 5 |
104 ((l0 >> 1) & 1) << 4 |
105 ((l3 >> 0) & 1) << 3 |
106 ((l2 >> 0) & 1) << 2 |
107 ((l1 >> 0) & 1) << 1 |
108 ((l0 >> 0) & 1);
109 }
110}
unsigned char u8
Definition stdint.h:131

References fl::FL_NO_EXCEPT.

Referenced by fl::wave8Transpose_4(), and fl::wave8Transpose_4().

+ Here is the caller graph for this function: