player_queue_090
This commit is contained in:
@@ -116,7 +116,7 @@ void handleUpdate(AsyncWebServerRequest *request, String filename, size_t index,
|
||||
if (!index) {
|
||||
int target = (request->getParam("updatetarget", true)->value() == "spiffs") ? U_SPIFFS : U_FLASH;
|
||||
Serial.printf("Update Start: %s\n", filename.c_str());
|
||||
player.mode = STOPPED;
|
||||
player.sendCommand({PR_STOP, 0});
|
||||
display.putRequest(NEWMODE, UPDATING);
|
||||
if (!Update.begin(UPDATE_SIZE_UNKNOWN, target)) {
|
||||
Update.printError(Serial);
|
||||
@@ -186,11 +186,15 @@ void NetServer::chunkedHtmlPage(const String& contentType, AsyncWebServerRequest
|
||||
#define SHOW_WEATHER false
|
||||
#endif
|
||||
|
||||
#ifndef NS_QUEUE_TICKS
|
||||
#define NS_QUEUE_TICKS 2
|
||||
#endif
|
||||
|
||||
char wsbuf[BUFLEN * 2];
|
||||
void NetServer::processQueue(){
|
||||
if(nsQueue==NULL) return;
|
||||
nsRequestParams_t request;
|
||||
if(xQueueReceive(nsQueue, &request, 5)){
|
||||
if(xQueueReceive(nsQueue, &request, NS_QUEUE_TICKS)){
|
||||
memset(wsbuf, 0, BUFLEN * 2);
|
||||
uint8_t clientId = request.clientId;
|
||||
switch (request.type) {
|
||||
@@ -239,13 +243,13 @@ void NetServer::processQueue(){
|
||||
case STATIONNAME: sprintf (wsbuf, "{\"nameset\": \"%s\"}", config.station.name); break;
|
||||
case ITEM: sprintf (wsbuf, "{\"current\": %d}", config.store.lastStation); break;
|
||||
case TITLE: sprintf (wsbuf, "{\"meta\": \"%s\"}", config.station.title); if (player.requestToStart) { telnet.info(); player.requestToStart = false; } else { telnet.printf("##CLI.META#: %s\n> ", config.station.title); } break;
|
||||
case VOLUME: sprintf (wsbuf, "{\"vol\": %d}", config.store.volume); break;
|
||||
case VOLUME: sprintf (wsbuf, "{\"vol\": %d}", config.store.volume); telnet.printf("##CLI.VOL#: %d\n", config.store.volume); break;
|
||||
case NRSSI: sprintf (wsbuf, "{\"rssi\": %d}", rssi); /*rssi = 255;*/ break;
|
||||
case SDPOS: sprintf (wsbuf, "{\"sdpos\": %d,\"sdend\": %d,\"sdtpos\": %d,\"sdtend\": %d}", player.getFilePos(), player.getFileSize(), player.getAudioCurrentTime(), player.getAudioFileDuration()); break;
|
||||
case SDLEN: sprintf (wsbuf, "{\"sdmin\": %d,\"sdmax\": %d}", player.sd_min, player.sd_max); break;
|
||||
case SDSNUFFLE: sprintf (wsbuf, "{\"snuffle\": %d}", config.sdSnuffle); break;
|
||||
case BITRATE: sprintf (wsbuf, "{\"bitrate\": %d}", config.station.bitrate); break;
|
||||
case MODE: sprintf (wsbuf, "{\"mode\": \"%s\"}", player.mode == PLAYING ? "playing" : "stopped"); break;
|
||||
case MODE: sprintf (wsbuf, "{\"mode\": \"%s\"}", player.status() == PLAYING ? "playing" : "stopped"); break;
|
||||
case EQUALIZER: sprintf (wsbuf, "{\"bass\": %d, \"middle\": %d, \"trebble\": %d}", config.store.bass, config.store.middle, config.store.trebble); break;
|
||||
case BALANCE: sprintf (wsbuf, "{\"balance\": %d}", config.store.balance); break;
|
||||
default: break;
|
||||
@@ -520,13 +524,14 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
||||
} /* EOF RESETS */
|
||||
if (strcmp(cmd, "volume") == 0) {
|
||||
byte v = atoi(val);
|
||||
player.setVol(v, false);
|
||||
player.setVol(v);
|
||||
}
|
||||
if (strcmp(cmd, "sdpos") == 0) {
|
||||
if (config.store.play_mode==PM_SDCARD){
|
||||
config.sdResumePos = 0;
|
||||
if(!player.isRunning()){
|
||||
player.play(config.store.lastStation, atoi(val)-player.sd_min);
|
||||
player.setResumeFilePos(atoi(val)-player.sd_min);
|
||||
player.sendCommand({PR_PLAY, config.store.lastStation});
|
||||
}else{
|
||||
player.setFilePos(atoi(val)-player.sd_min);
|
||||
}
|
||||
@@ -575,8 +580,7 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
||||
#endif
|
||||
// xSemaphoreGive(player.playmutex);
|
||||
if (player.isRunning()) {
|
||||
player.request.station = config.store.lastStation;
|
||||
player.request.doSave = false;
|
||||
player.sendCommand({PR_PLAY, -config.store.lastStation});
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -653,7 +657,6 @@ bool NetServer::importPlaylist() {
|
||||
}
|
||||
|
||||
void NetServer::requestOnChange(requestType_e request, uint8_t clientId) {
|
||||
//char buf[BUFLEN * 2] = { 0 };
|
||||
nsRequestParams_t nsrequest;
|
||||
nsrequest.type = request;
|
||||
nsrequest.clientId = clientId;
|
||||
@@ -744,8 +747,8 @@ void handleHTTPArgs(AsyncWebServerRequest * request) {
|
||||
}
|
||||
if (network.status == CONNECTED) {
|
||||
bool commandFound=false;
|
||||
if (request->hasArg("start")) { player.request.station = config.store.lastStation; commandFound=true; }
|
||||
if (request->hasArg("stop")) { player.mode = STOPPED; config.setTitle(const_PlStopped); commandFound=true; }
|
||||
if (request->hasArg("start")) { player.sendCommand({PR_PLAY, config.store.lastStation}); commandFound=true; }
|
||||
if (request->hasArg("stop")) { player.sendCommand({PR_STOP, 0}); commandFound=true; }
|
||||
if (request->hasArg("toggle")) { player.toggle(); commandFound=true; }
|
||||
if (request->hasArg("prev")) { player.prev(); commandFound=true; }
|
||||
if (request->hasArg("next")) { player.next(); commandFound=true; }
|
||||
@@ -777,8 +780,7 @@ void handleHTTPArgs(AsyncWebServerRequest * request) {
|
||||
int id = atoi(p->value().c_str());
|
||||
if (id < 1) id = 1;
|
||||
if (id > config.store.countStation) id = config.store.countStation;
|
||||
player.request.station = id;
|
||||
player.request.doSave = true;
|
||||
player.sendCommand({PR_PLAY, id});
|
||||
commandFound=true;
|
||||
DBGVB("[%s] play=%d", __func__, id);
|
||||
}
|
||||
@@ -788,7 +790,7 @@ void handleHTTPArgs(AsyncWebServerRequest * request) {
|
||||
if (v < 0) v = 0;
|
||||
if (v > 254) v = 254;
|
||||
config.store.volume = v;
|
||||
player.setVol(v, false);
|
||||
player.setVol(v);
|
||||
commandFound=true;
|
||||
DBGVB("[%s] vol=%d", __func__, v);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user