diff options
Diffstat (limited to 'drivers/vorbis')
| -rw-r--r-- | drivers/vorbis/audio_stream_ogg_vorbis.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/vorbis/audio_stream_ogg_vorbis.cpp b/drivers/vorbis/audio_stream_ogg_vorbis.cpp index 0964a22c9..d9b7b1d16 100644 --- a/drivers/vorbis/audio_stream_ogg_vorbis.cpp +++ b/drivers/vorbis/audio_stream_ogg_vorbis.cpp @@ -97,7 +97,7 @@ long AudioStreamOGGVorbis::_ov_tell_func(void *_f) { bool AudioStreamOGGVorbis::_can_mix() const { - return playing && !paused; + return /*playing &&*/ !paused; } @@ -125,6 +125,8 @@ void AudioStreamOGGVorbis::update() { if (ret<0) { playing = false; + setting_up=false; + ERR_EXPLAIN("Error reading OGG Vorbis File: "+file); ERR_BREAK(ret<0); } else if (ret==0) { // end of song, reload? @@ -135,7 +137,8 @@ void AudioStreamOGGVorbis::update() { if (!has_loop()) { - playing=false; + playing=false; + setting_up=false; repeats=1; return; } @@ -145,6 +148,7 @@ void AudioStreamOGGVorbis::update() { int errv = ov_open_callbacks(f,&vf,NULL,0,_ov_callbacks); if (errv!=0) { playing=false; + setting_up=false; return; // :( } @@ -179,6 +183,8 @@ void AudioStreamOGGVorbis::play() { playing=false; setting_up=true; update(); + if (!setting_up) + return; setting_up=false; playing=true; } |
