From 716f75747f4e053f4844bea6520a7bfed6793017 Mon Sep 17 00:00:00 2001 From: e2002 Date: Tue, 27 Dec 2022 18:19:05 +0300 Subject: [PATCH] sd_snuffle --- yoRadio/data/www/script.js.gz | Bin 5489 -> 5535 bytes yoRadio/src/core/config.cpp | 17 +++++++++++++---- yoRadio/src/core/config.h | 2 ++ yoRadio/src/core/netserver.cpp | 10 ++++++++-- yoRadio/src/core/netserver.h | 2 +- yoRadio/src/core/options.h | 2 +- yoRadio/src/core/player.cpp | 4 ++-- yoRadio/yoRadio.ino | 6 +++++- 8 files changed, 32 insertions(+), 11 deletions(-) diff --git a/yoRadio/data/www/script.js.gz b/yoRadio/data/www/script.js.gz index e90f34f7ad1871921482a5763305ddf89ab24c2f..641db6b39b036214aa771fa6385a438d572d2314 100644 GIT binary patch delta 5373 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 delta 5351 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 int eepromWrite(int ee, const T& value); template int eepromRead(int ee, T& value); diff --git a/yoRadio/src/core/netserver.cpp b/yoRadio/src/core/netserver.cpp index 9c9fa14..283bee7 100644 --- a/yoRadio/src/core/netserver.cpp +++ b/yoRadio/src/core/netserver.cpp @@ -423,6 +423,11 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client } } } + if (strcmp(cmd, "snuffle") == 0) { + Serial.printf("snuffle=%s\t********************\n", val); + config.setSnuffle(strcmp(val, "true") == 0); + return; + } if (strcmp(cmd, "balance") == 0) { int8_t valb = atoi(val); player.setBalance(valb); @@ -587,7 +592,7 @@ void NetServer::requestOnChange(requestType_e request, uint8_t clientId) { break; } case GETMODE: sprintf (wsbuf, "{\"pmode\":\"%s\"}", network.status == CONNECTED ? "player" : "ap"); break; - case GETINDEX: requestOnChange(STATION, clientId); requestOnChange(TITLE, clientId); requestOnChange(VOLUME, clientId); requestOnChange(EQUALIZER, clientId); requestOnChange(BALANCE, clientId); requestOnChange(BITRATE, clientId); requestOnChange(MODE, clientId); if (config.store.play_mode==PM_SDCARD) { requestOnChange(SDPOS, clientId); requestOnChange(SDLEN, clientId); } return; break; + case GETINDEX: requestOnChange(STATION, clientId); requestOnChange(TITLE, clientId); requestOnChange(VOLUME, clientId); requestOnChange(EQUALIZER, clientId); requestOnChange(BALANCE, clientId); requestOnChange(BITRATE, clientId); requestOnChange(MODE, clientId); if (config.store.play_mode==PM_SDCARD) { requestOnChange(SDPOS, clientId); requestOnChange(SDLEN, clientId); requestOnChange(SDSNUFFLE, clientId); } return; break; case GETSYSTEM: sprintf (wsbuf, "{\"sst\":%d,\"aif\":%d,\"vu\":%d,\"softr\":%d}", config.store.smartstart != 2, config.store.audioinfo, config.store.vumeter, config.store.softapdelay); break; case GETSCREEN: sprintf (wsbuf, "{\"flip\":%d,\"inv\":%d,\"nump\":%d,\"tsf\":%d,\"tsd\":%d,\"dspon\":%d,\"br\":%d,\"con\":%d}", config.store.flipscreen, config.store.invertdisplay, config.store.numplaylist, config.store.fliptouch, config.store.dbgtouch, config.store.dspon, config.store.brightness, config.store.contrast); break; case GETTIMEZONE: sprintf (wsbuf, "{\"tzh\":%d,\"tzm\":%d,\"sntp1\":\"%s\",\"sntp2\":\"%s\"}", config.store.tzHour, config.store.tzMin, config.store.sntp1, config.store.sntp2); break; @@ -602,11 +607,12 @@ void NetServer::requestOnChange(requestType_e request, uint8_t clientId) { 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 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; + default: break; } if (strlen(wsbuf) > 0) { if (clientId == 0) { websocket.textAll(wsbuf); }else{ websocket.text(clientId, wsbuf); } diff --git a/yoRadio/src/core/netserver.h b/yoRadio/src/core/netserver.h index bf57f52..3c3b46b 100644 --- a/yoRadio/src/core/netserver.h +++ b/yoRadio/src/core/netserver.h @@ -5,7 +5,7 @@ #include "ESPAsyncWebServer.h" #include "AsyncUDP.h" -enum requestType_e : uint8_t { PLAYLIST=1, STATION=2, STATIONNAME=3, ITEM=4, TITLE=5, VOLUME=6, NRSSI=7, BITRATE=8, MODE=9, EQUALIZER=10, BALANCE=11, PLAYLISTSAVED=12, GETMODE=13, GETINDEX=14, GETACTIVE=15, GETSYSTEM=16, GETSCREEN=17, GETTIMEZONE=18, GETWEATHER=19, GETCONTROLS=20, DSPON=21, SDPOS=22, SDLEN=23 }; +enum requestType_e : uint8_t { PLAYLIST=1, STATION=2, STATIONNAME=3, ITEM=4, TITLE=5, VOLUME=6, NRSSI=7, BITRATE=8, MODE=9, EQUALIZER=10, BALANCE=11, PLAYLISTSAVED=12, GETMODE=13, GETINDEX=14, GETACTIVE=15, GETSYSTEM=16, GETSCREEN=17, GETTIMEZONE=18, GETWEATHER=19, GETCONTROLS=20, DSPON=21, SDPOS=22, SDLEN=23, SDSNUFFLE=24 }; enum import_e : uint8_t { IMDONE=0, IMPL=1, IMWIFI=2 }; class NetServer { diff --git a/yoRadio/src/core/options.h b/yoRadio/src/core/options.h index 43be0ec..2f286bc 100644 --- a/yoRadio/src/core/options.h +++ b/yoRadio/src/core/options.h @@ -1,7 +1,7 @@ #ifndef options_h #define options_h -#define YOVERSION "0.8.841" +#define YOVERSION "0.8.855" /******************************************************* DO NOT EDIT THIS FILE. diff --git a/yoRadio/src/core/player.cpp b/yoRadio/src/core/player.cpp index 997a55b..7b57f8f 100644 --- a/yoRadio/src/core/player.cpp +++ b/yoRadio/src/core/player.cpp @@ -165,7 +165,7 @@ void Player::play(uint16_t stationId, uint32_t filePos) { } void Player::prev() { - if(config.store.play_mode==PM_WEB){ + if(config.store.play_mode==PM_WEB || !config.sdSnuffle){ if (config.store.lastStation == 1) config.store.lastStation = config.store.countStation; else config.store.lastStation--; } request.station = config.store.lastStation; @@ -173,7 +173,7 @@ void Player::prev() { } void Player::next() { - if(config.store.play_mode==PM_WEB){ + if(config.store.play_mode==PM_WEB || !config.sdSnuffle){ if (config.store.lastStation == config.store.countStation) config.store.lastStation = 1; else config.store.lastStation++; }else{ config.store.lastStation = random(1, config.store.countStation); diff --git a/yoRadio/yoRadio.ino b/yoRadio/yoRadio.ino index 07c9391..80bc08c 100644 --- a/yoRadio/yoRadio.ino +++ b/yoRadio/yoRadio.ino @@ -200,7 +200,11 @@ void audio_id3data(const char *info){ //id3 metadata } void audio_eof_mp3(const char *info){ //end of file config.sdResumePos = 0; - player.play(random(1, config.store.countStation)); + if(config.sdSnuffle){ + player.play(random(1, config.store.countStation)); + }else{ + player.next(); + } } void audio_progress(uint32_t startpos, uint32_t endpos){ player.sd_min = startpos;