Browse Source

Correct JackPortAudioIOAdapter::Render

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2578 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
483d18eba0
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      windows/JackPortAudioIOAdapter.cpp

+ 7
- 5
windows/JackPortAudioIOAdapter.cpp View File

@@ -31,15 +31,17 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer,
void* userData) void* userData)
{ {
JackPortAudioIOAdapter* adapter = static_cast<JackPortAudioIOAdapter*>(userData); JackPortAudioIOAdapter* adapter = static_cast<JackPortAudioIOAdapter*>(userData);
float** paBuffer;
char* buffer; char* buffer;
jack_log("JackPortAudioIOAdapter::Render"); jack_log("JackPortAudioIOAdapter::Render");
paBuffer = (float**)inputBuffer;
for (int i = 0; i < adapter->fCaptureChannels; i++) { for (int i = 0; i < adapter->fCaptureChannels; i++) {
buffer = (char*)inputBuffer;
buffer = (char*)paBuffer[i];
size_t len = jack_ringbuffer_read_space(adapter->fCaptureRingBuffer); size_t len = jack_ringbuffer_read_space(adapter->fCaptureRingBuffer);
if (len < framesPerBuffer * sizeof(float)) { if (len < framesPerBuffer * sizeof(float)) {
jack_error("JackPortAudioIOAdapter::Process : producer too slow, skip frames..."); jack_error("JackPortAudioIOAdapter::Process : producer too slow, skip frames...");
jack_ringbuffer_read(adapter->fCaptureRingBuffer, buffer, len); 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++) { for (int i = 0; i < adapter->fPlaybackChannels; i++) {
buffer = (char*)outputBuffer;
buffer = (char*)paBuffer[i];
size_t len = jack_ringbuffer_write_space(adapter->fPlaybackRingBuffer); size_t len = jack_ringbuffer_write_space(adapter->fPlaybackRingBuffer);
if (len < framesPerBuffer * sizeof(float)) { 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_ringbuffer_write(adapter->fPlaybackRingBuffer, buffer, framesPerBuffer * sizeof(float));
} }
} }
jack_log("JackPortAudioIOAdapter::Render");
return paContinue; return paContinue;
} }


Loading…
Cancel
Save