From 5d79d3bc6c4db1dc14c31a9a52ef171daa48373d Mon Sep 17 00:00:00 2001
From: Marek Blok <marek.blok@pg.edu.pl>
Date: Tue, 16 Nov 2021 15:53:04 +0100
Subject: [PATCH] AudioInput no callback support fix

---
 src/cpp/DSP_IO.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/cpp/DSP_IO.cpp b/src/cpp/DSP_IO.cpp
index c5a112a..504ae84 100644
--- a/src/cpp/DSP_IO.cpp
+++ b/src/cpp/DSP_IO.cpp
@@ -4453,12 +4453,15 @@ bool DSP::u::AudioInput::OutputExecute(OUTPUT_EXECUTE_ARGS)
   // If there are free buffers check whether the sound card has any audio data already available
   if (DSP_THIS->snd_object.get_input_callback_object() == NULL) {
     // callbacks are not used thus audio data has to be obtained directly from snd_object
-    if (DSP_THIS->GetNoOfFreeBuffers() > 0) {
+    while (DSP_THIS->GetNoOfFreeBuffers() > 0) {
       DSP::e::SampleType InSampleType;
       std::vector<char> wave_in_raw_buffer;
       if (DSP_THIS->snd_object.get_wave_in_raw_buffer(InSampleType, wave_in_raw_buffer)) {
         DSP_THIS->SOUND_object_callback(InSampleType, wave_in_raw_buffer);
       }
+      else {
+        break;
+      }
     }
   }
 
-- 
GitLab