|
|
@@ -31,15 +31,17 @@ int JackPortAudioIOAdapter::Render(const void* inputBuffer, void* outputBuffer, |
|
|
|
void* userData) |
|
|
|
{ |
|
|
|
JackPortAudioIOAdapter* adapter = static_cast<JackPortAudioIOAdapter*>(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; |
|
|
|
} |
|
|
|