Skip to content

Commit 56cf1c8

Browse files
committed
Send notification for HTTP API calls with only effects parameters
1 parent 76e269e commit 56cf1c8

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

wled00/led.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,15 @@ void colorUpdated(int callMode)
100100
//Notifier: apply received FX to selected segments only if actually receiving FX
101101
if (someSel) strip.applyToAllSelected = receiveNotificationEffects;
102102

103-
bool fxChanged = strip.setEffectConfig(effectCurrent, effectSpeed, effectIntensity, effectPalette);
103+
bool fxChanged = strip.setEffectConfig(effectCurrent, effectSpeed, effectIntensity, effectPalette) || effectChanged;
104104
bool colChanged = colorChanged();
105105

106106
//Notifier: apply received color to selected segments only if actually receiving color
107107
if (someSel) strip.applyToAllSelected = receiveNotificationColor;
108108

109109
if (fxChanged || colChanged)
110110
{
111+
effectChanged = false;
111112
if (realtimeTimeout == UINT32_MAX) realtimeTimeout = 0;
112113
if (isPreset) {isPreset = false;}
113114
else {currentPreset = -1;}

wled00/set.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -740,10 +740,22 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
740740
{
741741
WS2812FX::Segment& seg = strip.getSegment(i);
742742
if (!seg.isSelected()) continue;
743-
if (effectCurrent != prevEffect) seg.mode = effectCurrent;
744-
if (effectSpeed != prevSpeed) seg.speed = effectSpeed;
745-
if (effectIntensity != prevIntensity) seg.intensity = effectIntensity;
746-
if (effectPalette != prevPalette) seg.palette = effectPalette;
743+
if (effectCurrent != prevEffect) {
744+
seg.mode = effectCurrent;
745+
effectChanged = true;
746+
}
747+
if (effectSpeed != prevSpeed) {
748+
seg.speed = effectSpeed;
749+
effectChanged = true;
750+
}
751+
if (effectIntensity != prevIntensity) {
752+
seg.intensity = effectIntensity;
753+
effectChanged = true;
754+
}
755+
if (effectPalette != prevPalette) {
756+
seg.palette = effectPalette;
757+
effectChanged = true;
758+
}
747759
}
748760

749761
if (col0Changed) {

wled00/wled.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ WLED_GLOBAL byte effectCurrent _INIT(0);
399399
WLED_GLOBAL byte effectSpeed _INIT(128);
400400
WLED_GLOBAL byte effectIntensity _INIT(128);
401401
WLED_GLOBAL byte effectPalette _INIT(0);
402+
WLED_GLOBAL bool effectChanged _INIT(false);
402403

403404
// network
404405
WLED_GLOBAL bool udpConnected _INIT(false), udp2Connected _INIT(false), udpRgbConnected _INIT(false);

0 commit comments

Comments
 (0)