From 2399f491d24b22a6abb41f1f08c05fb9a4612cdf Mon Sep 17 00:00:00 2001 From: e2002 Date: Mon, 28 Jul 2025 10:58:36 +0300 Subject: [PATCH] v0.9.552 --- README.md | 23 +++++++++++++++++++++++ yoRadio/data/www/script.js.gz | Bin 7446 -> 7466 bytes yoRadio/src/audioI2S/AudioEx.h | 9 +++++++-- yoRadio/src/audioVS1053/audioVS1053Ex.h | 9 +++++++-- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4155bcf..0b47392 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,29 @@ Work is in progress... --- ## Version history +### 0.9.552 +- fixed compilation error for ESP cores version below 3.0.0\ + Thanks to @salawalas ! https://github.com/e2002/yoradio/pull/197/ +- disabled websocket reconnection on all pages except the start page "/"\ + just reupload the file `script.js.gz` + +### 0.9.550 +**!!! a [full update](#update-over-web-interface) with Sketch data upload is required. After updating please press CTRL+F5 in browser !!!**\ +or-> just upload all files from data/www (11 pcs) to Webboard Uploader http://radioipaddr/webboard +- fixed the issue with selecting all rows in the playlist editor +- netserver optimization – Part 2 +- cleanup – Part 1 +- page class migrated from LinkedList to std::list (Huge thanks to @vortigont!) + https://github.com/vortigont/yoradio/commit/b6d7fdd973bfa7395a894ceceaef40925b3f5161#diff-5df2b3b2edb81bdf3594469c55ec7093c641d13a2555a0cea25e7f3380c7de1a +- added WebSocket connection check in the web interface +- buffer indicator added to the web interface +- display performance optimization (Big thanks to @vortigont!) https://github.com/e2002/yoradio/pull/196/ +- audio buffer size setting for modules without PSRAM moved to the web interface (new value applies after reboot, optimal value is 7) +- added option in the web interface to disable the Telnet server +- added option in the web interface to enable the Watchdog that stops connect to broken streams +- settings for time and weather synchronization intervals have been added to the web interface +- bug fixes, optimization + ### 0.9.533 - fixed compilation error for esp32 core version lower than 3.0.0 - fixed error setting display brightness to 1 diff --git a/yoRadio/data/www/script.js.gz b/yoRadio/data/www/script.js.gz index 4d47b38b802e4dd5a674bcd4ee77d255f74c52dd..bc97896f1c4a4dc6e231bdde27374f32c3ee72ce 100644 GIT binary patch delta 5287 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 diff --git a/yoRadio/src/audioI2S/AudioEx.h b/yoRadio/src/audioI2S/AudioEx.h index 0051d9f..8fa3522 100644 --- a/yoRadio/src/audioI2S/AudioEx.h +++ b/yoRadio/src/audioI2S/AudioEx.h @@ -163,6 +163,8 @@ protected: }; //---------------------------------------------------------------------------------------------------------------------- +struct Audio; + class Audio : private AudioBuffer{ AudioBuffer InBuff; // instance of input buffer @@ -473,9 +475,12 @@ private: std::vector m_hashQueue; struct ConnectParams { - char *hostwoext = NULL; + char *hostwoext = nullptr; uint16_t port = 80; - Audio* instance; + Audio* instance = nullptr; + + ConnectParams(char* h, uint16_t p, Audio* a) + : hostwoext(h), port(p), instance(a) {} }; volatile bool _connectionResult; TaskHandle_t _connectTaskHandle = nullptr; diff --git a/yoRadio/src/audioVS1053/audioVS1053Ex.h b/yoRadio/src/audioVS1053/audioVS1053Ex.h index 441ad4c..055a9b5 100644 --- a/yoRadio/src/audioVS1053/audioVS1053Ex.h +++ b/yoRadio/src/audioVS1053/audioVS1053Ex.h @@ -119,6 +119,8 @@ protected: }; //---------------------------------------------------------------------------------------------------------------------- +struct Audio; + class Audio : private AudioBuffer{ AudioBuffer InBuff; // instance of input buffer @@ -133,9 +135,12 @@ private: std::vector m_hashQueue; struct ConnectParams { - char *hostwoext = NULL; + char *hostwoext = nullptr; uint16_t port = 80; - Audio* instance; + Audio* instance = nullptr; + + ConnectParams(char* h, uint16_t p, Audio* a) + : hostwoext(h), port(p), instance(a) {} }; volatile bool _connectionResult; TaskHandle_t _connectTaskHandle = nullptr;