1- #include " esp_arduino_version.h"
2- #include " assert.h"
31/*
42 * Audio.cpp
53 *
64 * Created on: Oct 26.2018
75 *
8- * Version 3.0.7y
9- * Updated on: Dec 15 .2023
6+ * Version 3.0.7z
7+ * Updated on: Dec 16 .2023
108 * Author: Wolle (schreibfaul1)
119 *
1210 */
@@ -230,6 +228,7 @@ Audio::Audio(bool internalDAC /* = false */, uint8_t channelEnabled /* = I2S_SLO
230228 i2s_driver_install ((i2s_port_t )m_i2s_num, &m_i2s_config, 0 , NULL );
231229 m_f_forceMono = false ;
232230 }
231+ i2s_zero_dma_buffer ((i2s_port_t ) m_i2s_num);
233232
234233#endif // ESP_IDF_VERSION_MAJOR == 5
235234 for (int i = 0 ; i < 3 ; i++) {
@@ -240,7 +239,7 @@ Audio::Audio(bool internalDAC /* = false */, uint8_t channelEnabled /* = I2S_SLO
240239 m_filter[i].b2 = 0 ;
241240 }
242241 computeLimit (); // first init, vol = 21, vol_steps = 21
243- i2s_zero_dma_buffer (( i2s_port_t ) m_i2s_num);
242+
244243}
245244// ---------------------------------------------------------------------------------------------------------------------
246245void Audio::setBufsize (int rambuf_sz, int psrambuf_sz) {
@@ -2112,7 +2111,7 @@ uint32_t Audio::stopSong() {
21122111 log_w (" Closing audio file" ); // for debug
21132112 }
21142113 memset (m_outBuff, 0 , 2048 * 2 * sizeof (uint16_t )); // Clear OutputBuffer
2115- // i2s_zero_dma_buffer((i2s_port_t) m_i2s_num) ;
2114+ m_validSamples = 0 ;
21162115 return pos;
21172116}
21182117// ---------------------------------------------------------------------------------------------------------------------
@@ -2123,9 +2122,8 @@ bool Audio::pauseResume() {
21232122 m_f_running = !m_f_running;
21242123 retVal = true ;
21252124 if (!m_f_running) {
2126- memset (m_outBuff, 0 ,
2127- 2048 * 2 * sizeof (uint16_t )); // Clear OutputBuffer
2128- // i2s_zero_dma_buffer((i2s_port_t) m_i2s_num);
2125+ memset (m_outBuff, 0 , 2048 * 2 * sizeof (uint16_t )); // Clear OutputBuffer
2126+ m_validSamples = 0 ;
21292127 }
21302128 }
21312129 xSemaphoreGive (mutex_audio);
@@ -4661,6 +4659,8 @@ bool Audio::setFilePos(uint32_t pos) {
46614659 if (pos < m_audioDataStart) pos = m_audioDataStart; // issue #96
46624660 if (pos > m_file_size) pos = m_file_size;
46634661 m_resumeFilePos = pos;
4662+ memset (m_outBuff, 0 , 2048 * 2 * sizeof (int16_t ));
4663+ m_validSamples = 0 ;
46644664 return true ;
46654665}
46664666// ---------------------------------------------------------------------------------------------------------------------
0 commit comments