aboutsummaryrefslogtreecommitdiff
path: root/audio/audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/audio.c')
-rw-r--r--audio/audio.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/audio/audio.c b/audio/audio.c
index df6818ed55..08aec51e70 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1121,8 +1121,12 @@ static void audio_run_out (AudioState *s)
HWVoiceOut *hw = NULL;
SWVoiceOut *sw;
- if (!audio_get_pdo_out(s->dev)->mixing_engine) {
- while ((hw = audio_pcm_hw_find_any_enabled_out(s, hw))) {
+ while ((hw = audio_pcm_hw_find_any_enabled_out(s, hw))) {
+ size_t played, live, prev_rpos;
+ size_t hw_free = audio_pcm_hw_get_free(hw);
+ int nb_live;
+
+ if (!audio_get_pdo_out(s->dev)->mixing_engine) {
/* there is exactly 1 sw for each hw with no mixeng */
sw = hw->sw_head.lh_first;
@@ -1137,14 +1141,9 @@ static void audio_run_out (AudioState *s)
if (sw->active) {
sw->callback.fn(sw->callback.opaque, INT_MAX);
}
- }
- return;
- }
- while ((hw = audio_pcm_hw_find_any_enabled_out(s, hw))) {
- size_t played, live, prev_rpos;
- size_t hw_free = audio_pcm_hw_get_free(hw);
- int nb_live;
+ continue;
+ }
for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) {
if (sw->active) {