Skip to content

Commit a556732

Browse files
committed
Add ability to set presets from DMX
(effect mode with single channel)
1 parent 0ea31cb commit a556732

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

wled00/e131.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
111111
return; // nothing to do
112112
break;
113113

114-
case DMX_MODE_SINGLE_RGB:
114+
case DMX_MODE_SINGLE_RGB: // RGB only
115115
if (uni != e131Universe) return;
116116
if (dmxChannels-DMXAddress+1 < 3) return;
117117
realtimeLock(realtimeTimeoutMs, mde);
@@ -121,7 +121,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
121121
setRealtimePixel(i, e131_data[DMXAddress+0], e131_data[DMXAddress+1], e131_data[DMXAddress+2], wChannel);
122122
break;
123123

124-
case DMX_MODE_SINGLE_DRGB:
124+
case DMX_MODE_SINGLE_DRGB: // Dimmer + RGB
125125
if (uni != e131Universe) return;
126126
if (dmxChannels-DMXAddress+1 < 4) return;
127127
realtimeLock(realtimeTimeoutMs, mde);
@@ -136,9 +136,13 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){
136136
setRealtimePixel(i, e131_data[DMXAddress+1], e131_data[DMXAddress+2], e131_data[DMXAddress+3], wChannel);
137137
break;
138138

139-
case DMX_MODE_EFFECT:
139+
case DMX_MODE_EFFECT: // Length 1: Apply Preset ID, length 11-13: apply effect config
140140
if (uni != e131Universe) return;
141-
if (dmxChannels-DMXAddress+1 < 11) return;
141+
if (dmxChannels-DMXAddress+1 < 11) {
142+
if (dmxChannels-DMXAddress+1 > 1) return;
143+
applyPreset(e131_data[DMXAddress+0], CALL_MODE_NOTIFICATION);
144+
return;
145+
}
142146
if (DMXOldDimmer != e131_data[DMXAddress+0]) {
143147
DMXOldDimmer = e131_data[DMXAddress+0];
144148
bri = e131_data[DMXAddress+0];

0 commit comments

Comments
 (0)