diff --git a/yoRadio/data/www/index.html b/yoRadio/data/www/index.html index 94bb9f1..115130f 100644 --- a/yoRadio/data/www/index.html +++ b/yoRadio/data/www/index.html @@ -65,7 +65,7 @@
0:00
- +
volume: 0
diff --git a/yoRadio/data/www/script.js.gz b/yoRadio/data/www/script.js.gz index 275eb6d..3909b63 100644 Binary files a/yoRadio/data/www/script.js.gz and b/yoRadio/data/www/script.js.gz differ diff --git a/yoRadio/data/www/style.css.gz b/yoRadio/data/www/style.css.gz index a88366a..b3237b2 100644 Binary files a/yoRadio/data/www/style.css.gz and b/yoRadio/data/www/style.css.gz differ diff --git a/yoRadio/src/audioVS1053/audioVS1053Ex.cpp b/yoRadio/src/audioVS1053/audioVS1053Ex.cpp index 1985db5..16c6c8d 100644 --- a/yoRadio/src/audioVS1053/audioVS1053Ex.cpp +++ b/yoRadio/src/audioVS1053/audioVS1053Ex.cpp @@ -2468,6 +2468,12 @@ bool Audio::setFilePos(uint32_t pos){ cardLock(false); return s; } +uint32_t Audio::getAudioFileDuration(){ + return 0; //TODO +} +uint32_t Audio::getAudioCurrentTime(){ + return 0; //TODO +} //--------------------------------------------------------------------------------------------------------------------- uint32_t Audio::getAudioDataStartPos() { if(!audiofile) return 0; diff --git a/yoRadio/src/audioVS1053/audioVS1053Ex.h b/yoRadio/src/audioVS1053/audioVS1053Ex.h index 3151114..41f163b 100644 --- a/yoRadio/src/audioVS1053/audioVS1053Ex.h +++ b/yoRadio/src/audioVS1053/audioVS1053Ex.h @@ -302,6 +302,8 @@ public: uint32_t getFilePos(); uint32_t getAudioDataStartPos(); bool setFilePos(uint32_t pos); + uint32_t getAudioFileDuration(); + uint32_t getAudioCurrentTime(); SemaphoreHandle_t mutex_pl=NULL; size_t bufferFilled(); size_t bufferFree(); diff --git a/yoRadio/src/core/config.cpp b/yoRadio/src/core/config.cpp index deef89f..d1cf91b 100644 --- a/yoRadio/src/core/config.cpp +++ b/yoRadio/src/core/config.cpp @@ -32,6 +32,7 @@ void Config::init() { loadTheme(); ssidsCount = 0; + sdResumePos = 0; if(SDC_CS!=255 && store.play_mode==PM_SDCARD){ //pinMode(SDC_CS, OUTPUT); digitalWrite(SDC_CS, HIGH); //SDSPI.begin(SDC_SPI); diff --git a/yoRadio/src/core/config.h b/yoRadio/src/core/config.h index d483562..dba2035 100644 --- a/yoRadio/src/core/config.h +++ b/yoRadio/src/core/config.h @@ -152,6 +152,7 @@ class Config { neworkItem ssids[5]; byte ssidsCount; uint16_t sleepfor; + uint32_t sdResumePos; public: Config() {}; void save(); diff --git a/yoRadio/src/core/netserver.cpp b/yoRadio/src/core/netserver.cpp index 09f1191..4bc7e5a 100644 --- a/yoRadio/src/core/netserver.cpp +++ b/yoRadio/src/core/netserver.cpp @@ -415,9 +415,8 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client } if (strcmp(cmd, "sdpos") == 0) { if (config.store.play_mode==PM_SDCARD){ - //byte v = atoi(val); + config.sdResumePos = 0; player.play(config.store.lastStation, atoi(val)); - //Serial.printf("player.setFilePos(%d)\t******************************************\n", v); } } if (strcmp(cmd, "balance") == 0) { @@ -594,7 +593,7 @@ void NetServer::requestOnChange(requestType_e request, uint8_t clientId) { case TITLE: sprintf (buf, "{\"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 (buf, "{\"vol\": %d}", config.store.volume); break; case NRSSI: sprintf (buf, "{\"rssi\": %d}", rssi); rssi = 255; break; - case SDPOS: sprintf (buf, "{\"sdpos\": %d,\"sdend\": %d,\"sdtpos\": %d,\"sdtend\": %d}", player.getFilePos(), player.getFileSize(), 0, 0); break; + case SDPOS: if(player.getFilePos()>295903) sprintf (buf, "{\"sdpos\": %d,\"sdend\": %d,\"sdtpos\": %d,\"sdtend\": %d}", player.getFilePos(), player.getFileSize(), player.getAudioCurrentTime(), player.getAudioFileDuration()); break; case BITRATE: sprintf (buf, "{\"bitrate\": %d}", config.station.bitrate); break; case MODE: sprintf (buf, "{\"mode\": \"%s\"}", player.mode == PLAYING ? "playing" : "stopped"); break; case EQUALIZER: sprintf (buf, "{\"bass\": %d, \"middle\": %d, \"trebble\": %d}", config.store.bass, config.store.middle, config.store.trebble); break; diff --git a/yoRadio/src/core/options.h b/yoRadio/src/core/options.h index 5b103b0..45e6efc 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.816" +#define YOVERSION "0.8.833" /******************************************************* DO NOT EDIT THIS FILE. diff --git a/yoRadio/src/core/player.cpp b/yoRadio/src/core/player.cpp index 6587655..6efbe78 100644 --- a/yoRadio/src/core/player.cpp +++ b/yoRadio/src/core/player.cpp @@ -64,6 +64,7 @@ void Player::stopInfo() { } void Player::stop(const char *nttl){ + if(config.store.play_mode==PM_SDCARD) config.sdResumePos = player.getFilePos(); mode = STOPPED; setOutputPins(false); if(nttl) config.setTitle(nttl); @@ -136,7 +137,7 @@ void Player::play(uint16_t stationId, uint32_t filePos) { display.putRequest(NEWSTATION); netserver.requestOnChange(STATION, 0); telnet.printf("##CLI.NAMESET#: %d %s\n", config.store.lastStation, config.station.name); - if (config.store.play_mode==PM_WEB?connecttohost(config.station.url):connecttoFS(SD,config.station.url,filePos)) { + if (config.store.play_mode==PM_WEB?connecttohost(config.station.url):connecttoFS(SD,config.station.url,config.sdResumePos==0?filePos:config.sdResumePos)) { mode = PLAYING; config.setTitle(""); netserver.requestOnChange(TITLE, 0);