diff --git a/include/controller.h b/include/controller.h index 9a054a1..b9892cc 100644 --- a/include/controller.h +++ b/include/controller.h @@ -27,4 +27,5 @@ class Controller { void play(); void play(String rfid_id); void stop(); + void eof_mp3(); }; \ No newline at end of file diff --git a/src/controller.cpp b/src/controller.cpp index e491e7f..2d9f723 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -208,4 +208,10 @@ bool Controller::is_button_pressed(uint8_t pin) { } } return false; +} + +void Controller::eof_mp3() { + log_d("Handling eof. Keep playing until the file is finished."); + while(audio.isRunning()) { audio.loop(); yield; } + next_track(); } \ No newline at end of file diff --git a/src/esmp3.cpp b/src/esmp3.cpp index 3e1656e..8aeb14a 100644 --- a/src/esmp3.cpp +++ b/src/esmp3.cpp @@ -109,7 +109,7 @@ void audio_id3data(const char *info){ //id3 metadata } void audio_eof_mp3(const char *info){ //end of file Serial.print("eof_mp3 ");Serial.println(info); - controller.next_track(); + controller.eof_mp3(); } void audio_showstation(const char *info){ Serial.print("station ");Serial.println(info);