diff --git a/windows/JackRouter/JackRouter.cpp b/windows/JackRouter/JackRouter.cpp index 149c5805..121bd830 100644 --- a/windows/JackRouter/JackRouter.cpp +++ b/windows/JackRouter/JackRouter.cpp @@ -342,11 +342,11 @@ void JackRouter::processInputs() { int pos = (fToggle) ? 0 : fBufferSize; - for (i = 0; i < fActiveInputs; i++) { + for (int i = 0; i < fActiveInputs; i++) { if (!fFloatSample) { jack_default_audio_sample_t* buffer = (jack_default_audio_sample_t*)jack_port_get_buffer(fInputPorts[i], fBufferSize); long* in = (long*)fInputBuffers[i] + pos; - for (j = 0; j < fBufferSize; j++) { + for (int j = 0; j < fBufferSize; j++) { in[j] = buffer[j] * jack_default_audio_sample_t(0x7fffffff); } } else { @@ -362,12 +362,12 @@ void JackRouter::processOutputs() { int pos = (fToggle) ? 0 : fBufferSize; - for (i = 0; i < fActiveOutputs; i++) { + for (int i = 0; i < fActiveOutputs; i++) { if (!fFloatSample) { jack_default_audio_sample_t* buffer = (jack_default_audio_sample_t*)jack_port_get_buffer(fOutputPorts[i], fBufferSize); long* out = (long*)fOutputBuffers[i] + pos; jack_default_audio_sample_t gain = jack_default_audio_sample_t(1)/jack_default_audio_sample_t(0x7fffffff); - for (j = 0; j < fBufferSize; j++) { + for (int j = 0; j < fBufferSize; j++) { buffer[j] = out[j] * gain; } } else { diff --git a/windows/Release/bin/portaudio_x86.dll b/windows/Release/bin/portaudio_x86.dll index 531c8520..f3993ab2 100644 Binary files a/windows/Release/bin/portaudio_x86.dll and b/windows/Release/bin/portaudio_x86.dll differ diff --git a/windows/Release64/bin/portaudio_x86_64.dll b/windows/Release64/bin/portaudio_x86_64.dll index a439d9e1..042fbeca 100644 Binary files a/windows/Release64/bin/portaudio_x86_64.dll and b/windows/Release64/bin/portaudio_x86_64.dll differ diff --git a/windows/Setup/src/32bits/JackRouter.dll b/windows/Setup/src/32bits/JackRouter.dll index b8ad6ffe..f6776062 100644 Binary files a/windows/Setup/src/32bits/JackRouter.dll and b/windows/Setup/src/32bits/JackRouter.dll differ diff --git a/windows/Setup/src/64bits/JackRouter.dll b/windows/Setup/src/64bits/JackRouter.dll index 7755f443..8d7b8627 100644 Binary files a/windows/Setup/src/64bits/JackRouter.dll and b/windows/Setup/src/64bits/JackRouter.dll differ diff --git a/windows/jack_unload.cbp b/windows/jack_unload.cbp index d89df5ba..9ef16ee8 100644 --- a/windows/jack_unload.cbp +++ b/windows/jack_unload.cbp @@ -19,8 +19,8 @@ + - @@ -36,8 +36,8 @@ + - @@ -54,11 +54,11 @@ + - - + @@ -85,15 +85,15 @@ - + + + - - @@ -104,16 +104,16 @@ - + + + - - diff --git a/windows/jackd.workspace b/windows/jackd.workspace index 12b959c5..518863c9 100644 --- a/windows/jackd.workspace +++ b/windows/jackd.workspace @@ -1,7 +1,7 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/windows/libjack.cbp b/windows/libjack.cbp index 74a2e278..21f93516 100644 --- a/windows/libjack.cbp +++ b/windows/libjack.cbp @@ -298,6 +298,7 @@ + diff --git a/windows/libjacknet.cbp b/windows/libjacknet.cbp index 9086c606..e7a61097 100644 --- a/windows/libjacknet.cbp +++ b/windows/libjacknet.cbp @@ -224,6 +224,7 @@ + diff --git a/windows/libjackserver.cbp b/windows/libjackserver.cbp index cf79513a..908f960b 100644 --- a/windows/libjackserver.cbp +++ b/windows/libjackserver.cbp @@ -242,6 +242,7 @@ + diff --git a/windows/portaudio/pa_asio.h b/windows/portaudio/pa_asio.h index 64e075b6..8f4624e6 100644 --- a/windows/portaudio/pa_asio.h +++ b/windows/portaudio/pa_asio.h @@ -1,7 +1,7 @@ #ifndef PA_ASIO_H #define PA_ASIO_H /* - * $Id: pa_asio.h,v 1.1.2.2 2006/06/20 14:44:48 letz Exp $ + * $Id: pa_asio.h 1667 2011-05-02 15:49:20Z rossb $ * PortAudio Portable Real-Time Audio Library * ASIO specific extensions * @@ -18,10 +18,6 @@ * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * - * Any person wishing to distribute modifications to the Software is - * requested to send the modifications to the original developer so that - * they can be incorporated into the canonical version. - * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29,14 +25,25 @@ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The text above constitutes the entire PortAudio license; however, + * the PortAudio community also makes the following non-binding requests: * + * Any person wishing to distribute modifications to the Software is + * requested to send the modifications to the original developer so that + * they can be incorporated into the canonical version. It is also + * requested that these non-binding requests be included along with the + * license above. */ + /** @file + @ingroup public_header @brief ASIO-specific PortAudio API extension header file. */ - #include "portaudio.h" #ifdef __cplusplus @@ -45,75 +52,95 @@ extern "C" #endif /* __cplusplus */ - /** Retrieve legal latency settings for the specificed device, in samples. - - @param device The global index of the device about which the query is being made. - @param minLatency A pointer to the location which will recieve the minimum latency value. - @param maxLatency A pointer to the location which will recieve the maximum latency value. - @param preferredLatency A pointer to the location which will recieve the preferred latency value. - @param granularity A pointer to the location which will recieve the granularity. This value - determines which values between minLatency and maxLatency are available. ie the step size, - if granularity is -1 then available latency settings are powers of two. - - @see ASIOGetBufferSize in the ASIO SDK. - - @todo This function should have a better name, any suggestions? - */ - PaError PaAsio_GetAvailableLatencyValues( PaDeviceIndex device, - long *minLatency, long *maxLatency, long *preferredLatency, long *granularity ); +/** Retrieve legal native buffer sizes for the specificed device, in sample frames. + @param device The global index of the device about which the query is being made. + @param minBufferSizeFrames A pointer to the location which will receive the minimum buffer size value. + @param maxBufferSizeFrames A pointer to the location which will receive the maximum buffer size value. + @param preferredBufferSizeFrames A pointer to the location which will receive the preferred buffer size value. + @param granularity A pointer to the location which will receive the "granularity". This value determines + the step size used to compute the legal values between minBufferSizeFrames and maxBufferSizeFrames. + If granularity is -1 then available buffer size values are powers of two. - /** Display the ASIO control panel for the specified device. - - @param device The global index of the device whose control panel is to be displayed. - @param systemSpecific On Windows, the calling application's main window handle, - on Macintosh this value should be zero. - */ - PaError PaAsio_ShowControlPanel( PaDeviceIndex device, void* systemSpecific ); + @see ASIOGetBufferSize in the ASIO SDK. + @note: this function used to be called PaAsio_GetAvailableLatencyValues. There is a + #define that maps PaAsio_GetAvailableLatencyValues to this function for backwards compatibility. +*/ +PaError PaAsio_GetAvailableBufferSizes( PaDeviceIndex device, + long *minBufferSizeFrames, long *maxBufferSizeFrames, long *preferredBufferSizeFrames, long *granularity ); +/** Backwards compatibility alias for PaAsio_GetAvailableBufferSizes - /** Retrieve a pointer to a string containing the name of the specified - input channel. The string is valid until Pa_Terminate is called. - - The string will be no longer than 32 characters including the null terminator. - */ - PaError PaAsio_GetInputChannelName( PaDeviceIndex device, int channelIndex, - const char** channelName ); + @see PaAsio_GetAvailableBufferSizes +*/ +#define PaAsio_GetAvailableLatencyValues PaAsio_GetAvailableBufferSizes - /** Retrieve a pointer to a string containing the name of the specified - input channel. The string is valid until Pa_Terminate is called. - - The string will be no longer than 32 characters including the null terminator. - */ - PaError PaAsio_GetOutputChannelName( PaDeviceIndex device, int channelIndex, - const char** channelName ); +/** Display the ASIO control panel for the specified device. + + @param device The global index of the device whose control panel is to be displayed. + @param systemSpecific On Windows, the calling application's main window handle, + on Macintosh this value should be zero. +*/ +PaError PaAsio_ShowControlPanel( PaDeviceIndex device, void* systemSpecific ); + + + + +/** Retrieve a pointer to a string containing the name of the specified + input channel. The string is valid until Pa_Terminate is called. + + The string will be no longer than 32 characters including the null terminator. +*/ +PaError PaAsio_GetInputChannelName( PaDeviceIndex device, int channelIndex, + const char** channelName ); + + +/** Retrieve a pointer to a string containing the name of the specified + input channel. The string is valid until Pa_Terminate is called. + + The string will be no longer than 32 characters including the null terminator. +*/ +PaError PaAsio_GetOutputChannelName( PaDeviceIndex device, int channelIndex, + const char** channelName ); + + +/** Set the sample rate of an open paASIO stream. + + @param stream The stream to operate on. + @param sampleRate The new sample rate. + + Note that this function may fail if the stream is alredy running and the + ASIO driver does not support switching the sample rate of a running stream. + + Returns paIncompatibleStreamHostApi if stream is not a paASIO stream. +*/ +PaError PaAsio_SetStreamSampleRate( PaStream* stream, double sampleRate ); #define paAsioUseChannelSelectors (0x01) - typedef struct PaAsioStreamInfo { - unsigned long size; /**< sizeof(PaAsioStreamInfo) */ - PaHostApiTypeId hostApiType; /**< paASIO */ - unsigned long version; /**< 1 */ - - unsigned long flags; - - /* Support for opening only specific channels of an ASIO device. - If the paAsioUseChannelSelectors flag is set, channelSelectors is a - pointer to an array of integers specifying the device channels to use. - When used, the length of the channelSelectors array must match the - corresponding channelCount parameter to Pa_OpenStream() otherwise a - crash may result. - The values in the selectors array must specify channels within the - range of supported channels for the device or paInvalidChannelCount will - result. - */ - int *channelSelectors; - } - PaAsioStreamInfo; +typedef struct PaAsioStreamInfo{ + unsigned long size; /**< sizeof(PaAsioStreamInfo) */ + PaHostApiTypeId hostApiType; /**< paASIO */ + unsigned long version; /**< 1 */ + + unsigned long flags; + + /* Support for opening only specific channels of an ASIO device. + If the paAsioUseChannelSelectors flag is set, channelSelectors is a + pointer to an array of integers specifying the device channels to use. + When used, the length of the channelSelectors array must match the + corresponding channelCount parameter to Pa_OpenStream() otherwise a + crash may result. + The values in the selectors array must specify channels within the + range of supported channels for the device or paInvalidChannelCount will + result. + */ + int *channelSelectors; +}PaAsioStreamInfo; #ifdef __cplusplus