From 483d18eba0748018c0dc5e554f434b839f63e96e Mon Sep 17 00:00:00 2001 From: sletz Date: Wed, 2 Jul 2008 12:46:21 +0000 Subject: [PATCH] Correct JackPortAudioIOAdapter::Render git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2578 0c269be4-1314-0410-8aa9-9f06e86f4224 --- windows/JackPortAudioIOAdapter.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/windows/JackPortAudioIOAdapter.cpp b/windows/JackPortAudioIOAdapter.cpp index 4e6c51df..b826541c 100644 --- a/windows/JackPortAudioIOAdapter.cpp +++ b/windows/JackPortAudioIOAdapter.cpp @@ -31,15 +31,17 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer, void* userData) { JackPortAudioIOAdapter* adapter = static_cast(userData); + float** paBuffer; char* buffer; jack_log("JackPortAudioIOAdapter::Render"); - + + paBuffer = (float**)inputBuffer; for (int i = 0; i < adapter->fCaptureChannels; i++) { - buffer = (char*)inputBuffer; + buffer = (char*)paBuffer[i]; size_t len = jack_ringbuffer_read_space(adapter->fCaptureRingBuffer); - + if (len < framesPerBuffer * sizeof(float)) { jack_error("JackPortAudioIOAdapter::Process : producer too slow, skip frames..."); jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, len); @@ -48,9 +50,10 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer, } } + paBuffer = (float**)outputBuffer; for (int i = 0; i < adapter->fPlaybackChannels; i++) { - buffer = (char*)outputBuffer; + buffer = (char*)paBuffer[i]; size_t len = jack_ringbuffer_write_space(adapter->fPlaybackRingBuffer); if (len < framesPerBuffer * sizeof(float)) { @@ -60,7 +63,6 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer, jack_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, framesPerBuffer * sizeof(float)); } } - jack_log("JackPortAudioIOAdapter::Render"); return paContinue; }