diff audioio/BufferingAudioCallbackRecordTarget.cpp @ 5:7fc28f7a935a

...
author cannam
date Mon, 06 Nov 2006 20:12:38 +0000
parents b8f6bbf172e7
children
line wrap: on
line diff
--- a/audioio/BufferingAudioCallbackRecordTarget.cpp	Mon Nov 06 14:41:46 2006 +0000
+++ b/audioio/BufferingAudioCallbackRecordTarget.cpp	Mon Nov 06 20:12:38 2006 +0000
@@ -26,10 +26,14 @@
 BufferingAudioCallbackRecordTarget::putSamples(size_t nframes, float **samples)
 {
     for (size_t c = 0; c < getChannelCount(); ++c) {
+        size_t written = nframes;
         if (samples[c]) {
-            m_buffers[c]->write(samples[c], nframes);
+            written = m_buffers[c]->write(samples[c], nframes);
         } else {
-            m_buffers[c]->zero(nframes);
+            written = m_buffers[c]->zero(nframes);
+        }
+        if (written < nframes) {
+            std::cerr << "WARNING: BufferingAudioCallbackRecordTarget::putSamples: Buffer overflow: wrote " << written << " of " << nframes << " samples on channel " << c << std::endl;
         }
     }
 }
@@ -66,3 +70,11 @@
     return m_buffers[channel]->skip(nframes, reader);
 }
 
+size_t
+BufferingAudioCallbackRecordTarget::skipAllSamples(size_t channel,
+                                                   int reader)
+{
+    return m_buffers[channel]->skip(m_buffers[channel]->getReadSpace(reader),
+                                    reader);
+}
+