Skip to content

Commit 6e3a96b

Browse files
committed
Replace bitshifts with masks and division
1 parent b193177 commit 6e3a96b

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

wled00/e131.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,17 +225,16 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
225225
if (e131_data[dataOffset+3] != seg.intensity) seg.intensity = e131_data[dataOffset+3];
226226
if (e131_data[dataOffset+4] != seg.palette) seg.setPalette(e131_data[dataOffset+4]);
227227

228-
uint8_t segOption = e131_data[dataOffset+5];
229-
if ((segOption & (1 << 0)) != seg.reverse_y) { seg.setOption(SEG_OPTION_REVERSED_Y, segOption & (1 << 0)); }
230-
if ((segOption & (1 << 1)) != seg.mirror_y) { seg.setOption(SEG_OPTION_MIRROR_Y, segOption & (1 << 1)); }
231-
if ((segOption & (1 << 2)) != seg.transpose) { seg.setOption(SEG_OPTION_TRANSPOSED, segOption & (1 << 2)); }
232-
if ((segOption & ((1 << 3) | (1 << 4))) >> 3 != seg.map1D2D) {
233-
seg.map1D2D = (segOption & ((1 << 3) | (1 << 4))) >> 3;
228+
if ((e131_data[dataOffset+5] & 0b00000001) != seg.reverse_y) { seg.setOption(SEG_OPTION_REVERSED_Y, e131_data[dataOffset+5] & 0b00000001); }
229+
if ((e131_data[dataOffset+5] & 0b00000010) != seg.mirror_y) { seg.setOption(SEG_OPTION_MIRROR_Y, e131_data[dataOffset+5] & 0b00000010); }
230+
if ((e131_data[dataOffset+5] & 0b00000100) != seg.transpose) { seg.setOption(SEG_OPTION_TRANSPOSED, e131_data[dataOffset+5] & 0b00000100); }
231+
if ((e131_data[dataOffset+5] & 0b00011000) / 8 != seg.map1D2D) {
232+
seg.map1D2D = (e131_data[dataOffset+5] & 0b00011000) / 8;
234233
}
235234
// To maintain backwards compatibility with prior e1.31 values, reverse is fixed to mask 0x01000000
236-
if ((segOption & (1 << 6)) != seg.reverse) { seg.setOption(SEG_OPTION_REVERSED, segOption & (1 << 6)); }
235+
if ((e131_data[dataOffset+5] & 0b01000000) != seg.reverse) { seg.setOption(SEG_OPTION_REVERSED, e131_data[dataOffset+5] & 0b01000000); }
237236
// To maintain backwards compatibility with prior e1.31 values, mirror is fixed to mask 0x10000000
238-
if ((segOption & (1 << 7)) != seg.mirror) { seg.setOption(SEG_OPTION_MIRROR, segOption & (1 << 7)); }
237+
if ((e131_data[dataOffset+5] & 0b10000000) != seg.mirror) { seg.setOption(SEG_OPTION_MIRROR, e131_data[dataOffset+5] & 0b10000000); }
239238

240239
uint32_t colors[3];
241240
byte whites[3] = {0,0,0};

0 commit comments

Comments
 (0)