diff --git a/core/AmAudioFile.cpp b/core/AmAudioFile.cpp index bdef0ed8..7b188b2d 100644 --- a/core/AmAudioFile.cpp +++ b/core/AmAudioFile.cpp @@ -213,7 +213,7 @@ int AmAudioFile::fpopen_int(const string& filename, OpenMode mode, FILE* n_fp) AmAudioFile::AmAudioFile() : AmBufferedAudio(0, 0, 0), data_size(0), - fp(0), begin(0), loop(false), + fp(0), begin(0), loop(false), autorewind(false), on_close_done(false), close_on_exit(true) { @@ -322,6 +322,11 @@ int AmAudioFile::read(unsigned int user_ts, unsigned int size) rewind(); goto read_block; } + + if (autorewind.get() && data_size>0){ + DBG("autorewinding audio file...\n"); + rewind(); + } ret = -2; // eof } diff --git a/core/AmAudioFile.h b/core/AmAudioFile.h index e9acbf35..59445329 100644 --- a/core/AmAudioFile.h +++ b/core/AmAudioFile.h @@ -106,6 +106,7 @@ protected: public: AmSharedVar loop; + AmSharedVar autorewind; AmAudioFile(); ~AmAudioFile();