diff options
Diffstat (limited to 'src/audio_core/audio_renderer.cpp')
| -rw-r--r-- | src/audio_core/audio_renderer.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/audio_core/audio_renderer.cpp b/src/audio_core/audio_renderer.cpp index 9a0939883..0c3d7df01 100644 --- a/src/audio_core/audio_renderer.cpp +++ b/src/audio_core/audio_renderer.cpp | |||
| @@ -217,13 +217,15 @@ std::vector<s16> AudioRenderer::VoiceState::DequeueSamples(std::size_t sample_co | |||
| 217 | if (offset == samples.size()) { | 217 | if (offset == samples.size()) { |
| 218 | offset = 0; | 218 | offset = 0; |
| 219 | 219 | ||
| 220 | if (!wave_buffer.is_looping) { | 220 | if (!wave_buffer.is_looping && wave_buffer.buffer_sz) { |
| 221 | SetWaveIndex(wave_index + 1); | 221 | SetWaveIndex(wave_index + 1); |
| 222 | } | 222 | } |
| 223 | 223 | ||
| 224 | out_status.wave_buffer_consumed++; | 224 | if (wave_buffer.buffer_sz) { |
| 225 | out_status.wave_buffer_consumed++; | ||
| 226 | } | ||
| 225 | 227 | ||
| 226 | if (wave_buffer.end_of_stream) { | 228 | if (wave_buffer.end_of_stream || !wave_buffer.buffer_sz) { |
| 227 | info.play_state = PlayState::Paused; | 229 | info.play_state = PlayState::Paused; |
| 228 | } | 230 | } |
| 229 | } | 231 | } |