From d617cef4da10f2f5ea40df0d49ebb64a7b8bbdc4 Mon Sep 17 00:00:00 2001 From: sletz Date: Mon, 4 Apr 2011 12:03:01 +0000 Subject: [PATCH] Correct JackPortAudioDriver. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4259 0c269be4-1314-0410-8aa9-9f06e86f4224 --- windows/portaudio/JackPortAudioDriver.cpp | 17 +++++++++-------- windows/portaudio/JackPortAudioDriver.h | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/windows/portaudio/JackPortAudioDriver.cpp b/windows/portaudio/JackPortAudioDriver.cpp index aff1dbdb..603c1fff 100644 --- a/windows/portaudio/JackPortAudioDriver.cpp +++ b/windows/portaudio/JackPortAudioDriver.cpp @@ -60,7 +60,7 @@ namespace Jack return 0; } - int JackPortAudioDriver::OpenStream() + PaError JackPortAudioDriver::OpenStream(jack_nframes_t buffer_size) { PaStreamParameters inputParameters; PaStreamParameters outputParameters; @@ -91,7 +91,7 @@ namespace Jack Render, this); - return (err == paNoError) ? 0: -1; + return err; } int JackPortAudioDriver::Open(jack_nframes_t buffer_size, @@ -108,6 +108,7 @@ namespace Jack { int in_max = 0; int out_max = 0; + PaError err = paNoError; jack_log("JackPortAudioDriver::Open nframes = %ld in = %ld out = %ld capture name = %s playback name = %s samplerate = %ld", buffer_size, inchannels, outchannels, capture_driver_uid, playback_driver_uid, samplerate); @@ -148,7 +149,11 @@ namespace Jack outchannels = out_max; } - if (OpenStream() < 0) { + // Core driver may have changed the in/out values + fCaptureChannels = inchannels; + fPlaybackChannels = outchannels; + + if ((err = OpenStream(buffer_size)) != paNoError) { jack_error("Pa_OpenStream error = %s", Pa_GetErrorText(err)); goto error; } @@ -159,10 +164,6 @@ namespace Jack fEngineControl->fConstraint = fEngineControl->fPeriodUsecs * 1000; #endif - // Core driver may have changed the in/out values - fCaptureChannels = inchannels; - fPlaybackChannels = outchannels; - assert(strlen(capture_driver_uid) < JACK_CLIENT_NAME_SIZE); assert(strlen(playback_driver_uid) < JACK_CLIENT_NAME_SIZE); @@ -220,7 +221,7 @@ error: return -1; } - if (OpenStream() < 0) { + if ((err = OpenStream(buffer_size)) != paNoError) { jack_error("Pa_OpenStream error = %s", Pa_GetErrorText(err)); return -1; } else { diff --git a/windows/portaudio/JackPortAudioDriver.h b/windows/portaudio/JackPortAudioDriver.h index c49d391d..d4e15a55 100644 --- a/windows/portaudio/JackPortAudioDriver.h +++ b/windows/portaudio/JackPortAudioDriver.h @@ -49,7 +49,7 @@ class JackPortAudioDriver : public JackAudioDriver void* userData); void UpdateLatencies(); - int OpenStream(); + PaError OpenStream(jack_nframes_t buffer_size); public: