Merge pull request #3946 from freakintoddles2/0_15

Adds an API parameter to allow the user to skip to the next preset in a playlist at any time
This commit is contained in:
Blaž Kristan
2024-05-03 23:25:36 +02:00
committed by Frank
parent a78cd65dcd
commit c3a908634a
4 changed files with 8 additions and 1 deletions

View File

@@ -597,6 +597,8 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
}
}
doAdvancePlaylist = root[F("np")] | doAdvancePlaylist; //advances to next preset in playlist when true
stateUpdated(callMode);
if (presetToRestore) currentPreset = presetToRestore;

View File

@@ -137,7 +137,7 @@ void handlePlaylist() {
return; // but don't progress to next extry, and don't shuffle
}
if (millis() - presetCycledTime > (100*playlistEntryDur)) {
if (millis() - presetCycledTime > (100 * playlistEntryDur) || doAdvancePlaylist) {
presetCycledTime = millis();
if (bri == 0 || nightlightActive) return;
@@ -159,6 +159,7 @@ void handlePlaylist() {
transitionDelayTemp = playlistEntries[playlistIndex].tr * 100;
playlistEntryDur = playlistEntries[playlistIndex].dur;
applyPreset(playlistEntries[playlistIndex].preset);
doAdvancePlaylist = false;
}
}

View File

@@ -922,6 +922,9 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply)
applyPreset(presetCycCurr);
}
pos = req.indexOf(F("NP")); //advances to next preset in a playlist
if (pos > 0) doAdvancePlaylist = true;
//set brightness
updateVal(req.c_str(), "&A=", &bri);

View File

@@ -653,6 +653,7 @@ WLED_GLOBAL byte timerWeekday[] _INIT_N(({ 255, 255, 255, 255, 255, 255, 255,
WLED_GLOBAL byte timerMonth[] _INIT_N(({28,28,28,28,28,28,28,28}));
WLED_GLOBAL byte timerDay[] _INIT_N(({1,1,1,1,1,1,1,1}));
WLED_GLOBAL byte timerDayEnd[] _INIT_N(({31,31,31,31,31,31,31,31}));
WLED_GLOBAL bool doAdvancePlaylist _INIT(false);
//improv
WLED_GLOBAL byte improvActive _INIT(0); //0: no improv packet received, 1: improv active, 2: provisioning