From c7eb9cc700aa8e238e0a5719f293f4f459b15d0c Mon Sep 17 00:00:00 2001 From: darkpoet78 Date: Sun, 29 Dec 2024 17:41:24 +0900 Subject: [PATCH] Screensaver while playing option --- yoRadio/data/www/script.js.gz | Bin 6023 -> 5940 bytes yoRadio/data/www/settings.html | 12 +++++++++++- yoRadio/src/core/config.cpp | 7 +++++++ yoRadio/src/core/config.h | 5 ++++- yoRadio/src/core/display.cpp | 3 ++- yoRadio/src/core/netserver.cpp | 27 ++++++++++++++++++++++++--- yoRadio/src/core/network.cpp | 3 +++ yoRadio/src/core/player.cpp | 1 + 8 files changed, 52 insertions(+), 6 deletions(-) diff --git a/yoRadio/data/www/script.js.gz b/yoRadio/data/www/script.js.gz index e2cd7ab2a7d3f630a8c0983aa6109db403858c05..09a7f6b222a1bc8038d334de1bdcb78a957ecdf0 100644 GIT binary patch literal 5940 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 WTKRx9Kx(PSpZ@?FJqv&&X8-`Qgpf=C literal 6023 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 BmuUb1 diff --git a/yoRadio/data/www/settings.html b/yoRadio/data/www/settings.html index c1d9dc9..ac0b77d 100644 --- a/yoRadio/data/www/settings.html +++ b/yoRadio/data/www/settings.html @@ -83,7 +83,17 @@
screensaver timeout (sec) - + +
+ + diff --git a/yoRadio/src/core/config.cpp b/yoRadio/src/core/config.cpp index 35c8444..693763f 100644 --- a/yoRadio/src/core/config.cpp +++ b/yoRadio/src/core/config.cpp @@ -34,6 +34,7 @@ void Config::init() { EEPROM.begin(EEPROM_SIZE); sdResumePos = 0; screensaverTicks = 0; + screensaverPlayingTicks = 0; isScreensaver = false; bootInfo(); #if RTCSUPPORTED @@ -97,6 +98,10 @@ void Config::_setupVersion(){ saveValue(store.mdnsname, buf, MDNS_LENGTH); saveValue(&store.skipPlaylistUpDown, false); break; + case 3: + saveValue(&store.screensaverPlayingEnabled, false); + saveValue(&store.screensaverPlayingTimeout, (uint16_t)5); + break; default: break; } @@ -353,6 +358,8 @@ void Config::setDefaults() { store.screensaverTimeout = 20; snprintf(store.mdnsname, MDNS_LENGTH, "yoradio-%x", getChipId()); store.skipPlaylistUpDown = false; + store.screensaverPlayingEnabled = false; + store.screensaverPlayingTimeout = 5; eepromWrite(EEPROM_START, store); } diff --git a/yoRadio/src/core/config.h b/yoRadio/src/core/config.h index 8cb9660..8cf9516 100644 --- a/yoRadio/src/core/config.h +++ b/yoRadio/src/core/config.h @@ -46,7 +46,7 @@ #if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0) #define ESP_ARDUINO_3 1 #endif -#define CONFIG_VERSION 3 +#define CONFIG_VERSION 4 enum playMode_e : uint8_t { PM_WEB=0, PM_SDCARD=1 }; enum BitrateFormat { BF_UNCNOWN, BF_MP3, BF_AAC, BF_FLAC, BF_OGG, BF_WAV }; @@ -136,6 +136,8 @@ struct config_t bool rotate90; bool screensaverEnabled; uint16_t screensaverTimeout; + bool screensaverPlayingEnabled; + uint16_t screensaverPlayingTimeout; char mdnsname[24]; bool skipPlaylistUpDown; }; @@ -181,6 +183,7 @@ class Config { bool emptyFS; uint16_t vuThreshold; uint16_t screensaverTicks; + uint16_t screensaverPlayingTicks; bool isScreensaver; public: Config() {}; diff --git a/yoRadio/src/core/display.cpp b/yoRadio/src/core/display.cpp index 0736b2f..5b3d911 100644 --- a/yoRadio/src/core/display.cpp +++ b/yoRadio/src/core/display.cpp @@ -289,6 +289,7 @@ void Display::_swichMode(displayMode_e newmode) { _pager.setPage( pages[PG_SCREENSAVER]); }else{ config.screensaverTicks=SCREENSAVERSTARTUPDELAY; + config.screensaverPlayingTicks=SCREENSAVERSTARTUPDELAY; config.isScreensaver = false; } if (newmode == VOL) { @@ -533,7 +534,7 @@ void Display::_time(bool redraw) { } #endif if(config.isScreensaver && network.timeinfo.tm_sec % 60 == 0) - _clock.moveTo({clockConf.left, random(TFT_FRAMEWDT+clockConf.textsize, (dsp.height()-TFT_FRAMEWDT*2)), 0}); + _clock.moveTo({clockConf.left, static_cast(random(TFT_FRAMEWDT+clockConf.textsize, (dsp.height()-dsp.plItemHeight-TFT_FRAMEWDT*2))), 0}); _clock.draw(); /*#ifdef USE_NEXTION nextion.printClock(network.timeinfo); diff --git a/yoRadio/src/core/netserver.cpp b/yoRadio/src/core/netserver.cpp index e020c72..a7bc469 100644 --- a/yoRadio/src/core/netserver.cpp +++ b/yoRadio/src/core/netserver.cpp @@ -298,7 +298,7 @@ void NetServer::processQueue(){ config.vuThreshold, config.store.mdnsname); break; - case GETSCREEN: sprintf (wsbuf, "{\"flip\":%d,\"inv\":%d,\"nump\":%d,\"tsf\":%d,\"tsd\":%d,\"dspon\":%d,\"br\":%d,\"con\":%d,\"scre\":%d,\"scrt\":%d}", + case GETSCREEN: sprintf (wsbuf, "{\"flip\":%d,\"inv\":%d,\"nump\":%d,\"tsf\":%d,\"tsd\":%d,\"dspon\":%d,\"br\":%d,\"con\":%d,\"scre\":%d,\"scrt\":%d,\"scrpe\":%d,\"scrpt\":%d}", config.store.flipscreen, config.store.invertdisplay, config.store.numplaylist, @@ -308,7 +308,9 @@ void NetServer::processQueue(){ config.store.brightness, config.store.contrast, config.store.screensaverEnabled, - config.store.screensaverTimeout); + config.store.screensaverTimeout, + config.store.screensaverPlayingEnabled, + config.store.screensaverPlayingTimeout); break; case GETTIMEZONE: sprintf (wsbuf, "{\"tzh\":%d,\"tzm\":%d,\"sntp1\":\"%s\",\"sntp2\":\"%s\"}", config.store.tzHour, @@ -507,13 +509,30 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client } if (strcmp(cmd, "screensavertimeout") == 0) { uint16_t valb = atoi(val); - valb = constrain(valb,0,65520); + valb = constrain(valb,5,65520); config.saveValue(&config.store.screensaverTimeout, valb); #ifndef DSP_LCD display.putRequest(NEWMODE, PLAYER); #endif return; } + if (strcmp(cmd, "screensaverplayingenabled") == 0) { + bool valb = static_cast(atoi(val)); + config.saveValue(&config.store.screensaverPlayingEnabled, valb); + #ifndef DSP_LCD + display.putRequest(NEWMODE, PLAYER); + #endif + return; + } + if (strcmp(cmd, "screensaverplayingtimeout") == 0) { + uint16_t valb = atoi(val); + valb = constrain(valb,1,1080); + config.saveValue(&config.store.screensaverPlayingTimeout, valb); + #ifndef DSP_LCD + display.putRequest(NEWMODE, PLAYER); + #endif + return; + } if (strcmp(cmd, "tzh") == 0) { int8_t vali = atoi(val); config.saveValue(&config.store.tzHour, vali); @@ -613,6 +632,8 @@ void NetServer::onWsMessage(void *arg, uint8_t *data, size_t len, uint8_t client config.saveValue(&config.store.numplaylist, false); config.saveValue(&config.store.screensaverEnabled, false); config.saveValue(&config.store.screensaverTimeout, (uint16_t)20); + config.saveValue(&config.store.screensaverPlayingEnabled, false); + config.saveValue(&config.store.screensaverPlayingTimeout, (uint16_t)5); display.putRequest(NEWMODE, CLEAR); display.putRequest(NEWMODE, PLAYER); requestOnChange(GETSCREEN, clientId); return; diff --git a/yoRadio/src/core/network.cpp b/yoRadio/src/core/network.cpp index 38a0d51..50a102c 100644 --- a/yoRadio/src/core/network.cpp +++ b/yoRadio/src/core/network.cpp @@ -53,6 +53,9 @@ void ticks() { if(config.store.screensaverEnabled && display.mode()==PLAYER && !player.isRunning()){ if(config.screensaverTicks++ > config.store.screensaverTimeout+SCREENSAVERSTARTUPDELAY) display.putRequest(NEWMODE, SCREENSAVER); } + if(config.store.screensaverPlayingEnabled && display.mode()==PLAYER && player.isRunning()){ + if(config.screensaverPlayingTicks++ > config.store.screensaverPlayingTimeout*60+SCREENSAVERSTARTUPDELAY) display.putRequest(NEWMODE, SCREENSAVER); + } #endif #if RTCSUPPORTED if(config.isRTCFound()){ diff --git a/yoRadio/src/core/player.cpp b/yoRadio/src/core/player.cpp index 819a2e5..2a52361 100644 --- a/yoRadio/src/core/player.cpp +++ b/yoRadio/src/core/player.cpp @@ -191,6 +191,7 @@ void Player::_play(uint16_t stationId) { config.vuThreshold = 0; //display.putRequest(PSTOP); config.screensaverTicks=SCREENSAVERSTARTUPDELAY; + config.screensaverPlayingTicks=SCREENSAVERSTARTUPDELAY; if(config.getMode()!=PM_SDCARD) { display.putRequest(PSTOP); }