sd_i2s+sd_vs_v5
This commit is contained in:
@@ -65,7 +65,7 @@
|
|||||||
<div id="snuffle" class="playerbytton active" data-name="snuffle"></div>
|
<div id="snuffle" class="playerbytton active" data-name="snuffle"></div>
|
||||||
<div id="sdposvalsend">0:00</div>
|
<div id="sdposvalsend">0:00</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="range" id="sdpos" class="slider" name="sdpos" min="0" max="254" value="0">
|
<input type="range" id="sdpos" class="slider" name="sdpos" min="295903" max="595903" value="0">
|
||||||
</div>
|
</div>
|
||||||
<div class="infowrap">
|
<div class="infowrap">
|
||||||
<div class="infoitem">volume: <span id="volinfo">0</span></div>
|
<div class="infoitem">volume: <span id="volinfo">0</span></div>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -2468,6 +2468,12 @@ bool Audio::setFilePos(uint32_t pos){
|
|||||||
cardLock(false);
|
cardLock(false);
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
uint32_t Audio::getAudioFileDuration(){
|
||||||
|
return 0; //TODO
|
||||||
|
}
|
||||||
|
uint32_t Audio::getAudioCurrentTime(){
|
||||||
|
return 0; //TODO
|
||||||
|
}
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
uint32_t Audio::getAudioDataStartPos() {
|
uint32_t Audio::getAudioDataStartPos() {
|
||||||
if(!audiofile) return 0;
|
if(!audiofile) return 0;
|
||||||
|
|||||||
@@ -302,6 +302,8 @@ public:
|
|||||||
uint32_t getFilePos();
|
uint32_t getFilePos();
|
||||||
uint32_t getAudioDataStartPos();
|
uint32_t getAudioDataStartPos();
|
||||||
bool setFilePos(uint32_t pos);
|
bool setFilePos(uint32_t pos);
|
||||||
|
uint32_t getAudioFileDuration();
|
||||||
|
uint32_t getAudioCurrentTime();
|
||||||
SemaphoreHandle_t mutex_pl=NULL;
|
SemaphoreHandle_t mutex_pl=NULL;
|
||||||
size_t bufferFilled();
|
size_t bufferFilled();
|
||||||
size_t bufferFree();
|
size_t bufferFree();
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ void Config::init() {
|
|||||||
|
|
||||||
loadTheme();
|
loadTheme();
|
||||||
ssidsCount = 0;
|
ssidsCount = 0;
|
||||||
|
sdResumePos = 0;
|
||||||
if(SDC_CS!=255 && store.play_mode==PM_SDCARD){
|
if(SDC_CS!=255 && store.play_mode==PM_SDCARD){
|
||||||
//pinMode(SDC_CS, OUTPUT); digitalWrite(SDC_CS, HIGH);
|
//pinMode(SDC_CS, OUTPUT); digitalWrite(SDC_CS, HIGH);
|
||||||
//SDSPI.begin(SDC_SPI);
|
//SDSPI.begin(SDC_SPI);
|
||||||
|
|||||||
@@ -152,6 +152,7 @@ class Config {
|
|||||||
neworkItem ssids[5];
|
neworkItem ssids[5];
|
||||||
byte ssidsCount;
|
byte ssidsCount;
|
||||||
uint16_t sleepfor;
|
uint16_t sleepfor;
|
||||||
|
uint32_t sdResumePos;
|
||||||
public:
|
public:
|
||||||
Config() {};
|
Config() {};
|
||||||
void save();
|
void save();
|
||||||
|
|||||||
@@ -415,9 +415,8 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client
|
|||||||
}
|
}
|
||||||
if (strcmp(cmd, "sdpos") == 0) {
|
if (strcmp(cmd, "sdpos") == 0) {
|
||||||
if (config.store.play_mode==PM_SDCARD){
|
if (config.store.play_mode==PM_SDCARD){
|
||||||
//byte v = atoi(val);
|
config.sdResumePos = 0;
|
||||||
player.play(config.store.lastStation, atoi(val));
|
player.play(config.store.lastStation, atoi(val));
|
||||||
//Serial.printf("player.setFilePos(%d)\t******************************************\n", v);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strcmp(cmd, "balance") == 0) {
|
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 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 VOLUME: sprintf (buf, "{\"vol\": %d}", config.store.volume); break;
|
||||||
case NRSSI: sprintf (buf, "{\"rssi\": %d}", rssi); rssi = 255; 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 BITRATE: sprintf (buf, "{\"bitrate\": %d}", config.station.bitrate); break;
|
||||||
case MODE: sprintf (buf, "{\"mode\": \"%s\"}", player.mode == PLAYING ? "playing" : "stopped"); 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;
|
case EQUALIZER: sprintf (buf, "{\"bass\": %d, \"middle\": %d, \"trebble\": %d}", config.store.bass, config.store.middle, config.store.trebble); break;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef options_h
|
#ifndef options_h
|
||||||
#define options_h
|
#define options_h
|
||||||
|
|
||||||
#define YOVERSION "0.8.816"
|
#define YOVERSION "0.8.833"
|
||||||
|
|
||||||
/*******************************************************
|
/*******************************************************
|
||||||
DO NOT EDIT THIS FILE.
|
DO NOT EDIT THIS FILE.
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ void Player::stopInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Player::stop(const char *nttl){
|
void Player::stop(const char *nttl){
|
||||||
|
if(config.store.play_mode==PM_SDCARD) config.sdResumePos = player.getFilePos();
|
||||||
mode = STOPPED;
|
mode = STOPPED;
|
||||||
setOutputPins(false);
|
setOutputPins(false);
|
||||||
if(nttl) config.setTitle(nttl);
|
if(nttl) config.setTitle(nttl);
|
||||||
@@ -136,7 +137,7 @@ void Player::play(uint16_t stationId, uint32_t filePos) {
|
|||||||
display.putRequest(NEWSTATION);
|
display.putRequest(NEWSTATION);
|
||||||
netserver.requestOnChange(STATION, 0);
|
netserver.requestOnChange(STATION, 0);
|
||||||
telnet.printf("##CLI.NAMESET#: %d %s\n", config.store.lastStation, config.station.name);
|
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;
|
mode = PLAYING;
|
||||||
config.setTitle("");
|
config.setTitle("");
|
||||||
netserver.requestOnChange(TITLE, 0);
|
netserver.requestOnChange(TITLE, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user