mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-25 21:28:38 -05:00
Remove portaudio deps
This commit is contained in:
parent
03edda18e5
commit
6fe3cf98d3
81
external/portaudio/LICENSE.txt
vendored
81
external/portaudio/LICENSE.txt
vendored
@ -1,81 +0,0 @@
|
|||||||
Portable header file to contain:
|
|
||||||
>>>>>
|
|
||||||
/*
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* PortAudio API Header File
|
|
||||||
* Latest version available at: http://www.portaudio.com
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2006 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
<<<<<
|
|
||||||
|
|
||||||
|
|
||||||
Implementation files to contain:
|
|
||||||
>>>>>
|
|
||||||
/*
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* Latest version at: http://www.portaudio.com
|
|
||||||
* <platform> Implementation
|
|
||||||
* Copyright (c) 1999-2000 <author(s)>
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
<<<<<
|
|
150
external/portaudio/include/pa_asio.h
vendored
150
external/portaudio/include/pa_asio.h
vendored
@ -1,150 +0,0 @@
|
|||||||
#ifndef PA_ASIO_H
|
|
||||||
#define PA_ASIO_H
|
|
||||||
/*
|
|
||||||
* $Id: pa_asio.h 1667 2011-05-02 15:49:20Z rossb $
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* ASIO specific extensions
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2000 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
|
|
||||||
/** 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.
|
|
||||||
|
|
||||||
@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
|
|
||||||
|
|
||||||
@see PaAsio_GetAvailableBufferSizes
|
|
||||||
*/
|
|
||||||
#define PaAsio_GetAvailableLatencyValues PaAsio_GetAvailableBufferSizes
|
|
||||||
|
|
||||||
|
|
||||||
/** 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;
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_ASIO_H */
|
|
95
external/portaudio/include/pa_win_ds.h
vendored
95
external/portaudio/include/pa_win_ds.h
vendored
@ -1,95 +0,0 @@
|
|||||||
#ifndef PA_WIN_DS_H
|
|
||||||
#define PA_WIN_DS_H
|
|
||||||
/*
|
|
||||||
* $Id: $
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* DirectSound specific extensions
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2007 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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 DirectSound-specific PortAudio API extension header file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "portaudio.h"
|
|
||||||
#include "pa_win_waveformat.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
|
|
||||||
#define paWinDirectSoundUseLowLevelLatencyParameters (0x01)
|
|
||||||
#define paWinDirectSoundUseChannelMask (0x04)
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct PaWinDirectSoundStreamInfo{
|
|
||||||
unsigned long size; /**< sizeof(PaWinDirectSoundStreamInfo) */
|
|
||||||
PaHostApiTypeId hostApiType; /**< paDirectSound */
|
|
||||||
unsigned long version; /**< 2 */
|
|
||||||
|
|
||||||
unsigned long flags; /**< enable other features of this struct */
|
|
||||||
|
|
||||||
/**
|
|
||||||
low-level latency setting support
|
|
||||||
Sets the size of the DirectSound host buffer.
|
|
||||||
When flags contains the paWinDirectSoundUseLowLevelLatencyParameters
|
|
||||||
this size will be used instead of interpreting the generic latency
|
|
||||||
parameters to Pa_OpenStream(). If the flag is not set this value is ignored.
|
|
||||||
|
|
||||||
If the stream is a full duplex stream the implementation requires that
|
|
||||||
the values of framesPerBuffer for input and output match (if both are specified).
|
|
||||||
*/
|
|
||||||
unsigned long framesPerBuffer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
support for WAVEFORMATEXTENSIBLE channel masks. If flags contains
|
|
||||||
paWinDirectSoundUseChannelMask this allows you to specify which speakers
|
|
||||||
to address in a multichannel stream. Constants for channelMask
|
|
||||||
are specified in pa_win_waveformat.h
|
|
||||||
|
|
||||||
*/
|
|
||||||
PaWinWaveFormatChannelMask channelMask;
|
|
||||||
|
|
||||||
}PaWinDirectSoundStreamInfo;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_WIN_DS_H */
|
|
391
external/portaudio/include/pa_win_wasapi.h
vendored
391
external/portaudio/include/pa_win_wasapi.h
vendored
@ -1,391 +0,0 @@
|
|||||||
#ifndef PA_WIN_WASAPI_H
|
|
||||||
#define PA_WIN_WASAPI_H
|
|
||||||
/*
|
|
||||||
* $Id: $
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* DirectSound specific extensions
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2007 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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 WASAPI-specific PortAudio API extension header file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "portaudio.h"
|
|
||||||
#include "pa_win_waveformat.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
|
|
||||||
/* Setup flags */
|
|
||||||
typedef enum PaWasapiFlags
|
|
||||||
{
|
|
||||||
/* puts WASAPI into exclusive mode */
|
|
||||||
paWinWasapiExclusive = (1 << 0),
|
|
||||||
|
|
||||||
/* allows to skip internal PA processing completely */
|
|
||||||
paWinWasapiRedirectHostProcessor = (1 << 1),
|
|
||||||
|
|
||||||
/* assigns custom channel mask */
|
|
||||||
paWinWasapiUseChannelMask = (1 << 2),
|
|
||||||
|
|
||||||
/* selects non-Event driven method of data read/write
|
|
||||||
Note: WASAPI Event driven core is capable of 2ms latency!!!, but Polling
|
|
||||||
method can only provide 15-20ms latency. */
|
|
||||||
paWinWasapiPolling = (1 << 3),
|
|
||||||
|
|
||||||
/* forces custom thread priority setting. must be used if PaWasapiStreamInfo::threadPriority
|
|
||||||
is set to custom value. */
|
|
||||||
paWinWasapiThreadPriority = (1 << 4)
|
|
||||||
}
|
|
||||||
PaWasapiFlags;
|
|
||||||
#define paWinWasapiExclusive (paWinWasapiExclusive)
|
|
||||||
#define paWinWasapiRedirectHostProcessor (paWinWasapiRedirectHostProcessor)
|
|
||||||
#define paWinWasapiUseChannelMask (paWinWasapiUseChannelMask)
|
|
||||||
#define paWinWasapiPolling (paWinWasapiPolling)
|
|
||||||
#define paWinWasapiThreadPriority (paWinWasapiThreadPriority)
|
|
||||||
|
|
||||||
|
|
||||||
/* Host processor. Allows to skip internal PA processing completely.
|
|
||||||
You must set paWinWasapiRedirectHostProcessor flag to PaWasapiStreamInfo::flags member
|
|
||||||
in order to have host processor redirected to your callback.
|
|
||||||
Use with caution! inputFrames and outputFrames depend solely on final device setup.
|
|
||||||
To query maximal values of inputFrames/outputFrames use PaWasapi_GetFramesPerHostBuffer.
|
|
||||||
*/
|
|
||||||
typedef void (*PaWasapiHostProcessorCallback) (void *inputBuffer, long inputFrames,
|
|
||||||
void *outputBuffer, long outputFrames,
|
|
||||||
void *userData);
|
|
||||||
|
|
||||||
/* Device role */
|
|
||||||
typedef enum PaWasapiDeviceRole
|
|
||||||
{
|
|
||||||
eRoleRemoteNetworkDevice = 0,
|
|
||||||
eRoleSpeakers,
|
|
||||||
eRoleLineLevel,
|
|
||||||
eRoleHeadphones,
|
|
||||||
eRoleMicrophone,
|
|
||||||
eRoleHeadset,
|
|
||||||
eRoleHandset,
|
|
||||||
eRoleUnknownDigitalPassthrough,
|
|
||||||
eRoleSPDIF,
|
|
||||||
eRoleHDMI,
|
|
||||||
eRoleUnknownFormFactor
|
|
||||||
}
|
|
||||||
PaWasapiDeviceRole;
|
|
||||||
|
|
||||||
|
|
||||||
/* Jack connection type */
|
|
||||||
typedef enum PaWasapiJackConnectionType
|
|
||||||
{
|
|
||||||
eJackConnTypeUnknown,
|
|
||||||
eJackConnType3Point5mm,
|
|
||||||
eJackConnTypeQuarter,
|
|
||||||
eJackConnTypeAtapiInternal,
|
|
||||||
eJackConnTypeRCA,
|
|
||||||
eJackConnTypeOptical,
|
|
||||||
eJackConnTypeOtherDigital,
|
|
||||||
eJackConnTypeOtherAnalog,
|
|
||||||
eJackConnTypeMultichannelAnalogDIN,
|
|
||||||
eJackConnTypeXlrProfessional,
|
|
||||||
eJackConnTypeRJ11Modem,
|
|
||||||
eJackConnTypeCombination
|
|
||||||
}
|
|
||||||
PaWasapiJackConnectionType;
|
|
||||||
|
|
||||||
|
|
||||||
/* Jack geometric location */
|
|
||||||
typedef enum PaWasapiJackGeoLocation
|
|
||||||
{
|
|
||||||
eJackGeoLocUnk = 0,
|
|
||||||
eJackGeoLocRear = 0x1, /* matches EPcxGeoLocation::eGeoLocRear */
|
|
||||||
eJackGeoLocFront,
|
|
||||||
eJackGeoLocLeft,
|
|
||||||
eJackGeoLocRight,
|
|
||||||
eJackGeoLocTop,
|
|
||||||
eJackGeoLocBottom,
|
|
||||||
eJackGeoLocRearPanel,
|
|
||||||
eJackGeoLocRiser,
|
|
||||||
eJackGeoLocInsideMobileLid,
|
|
||||||
eJackGeoLocDrivebay,
|
|
||||||
eJackGeoLocHDMI,
|
|
||||||
eJackGeoLocOutsideMobileLid,
|
|
||||||
eJackGeoLocATAPI,
|
|
||||||
eJackGeoLocReserved5,
|
|
||||||
eJackGeoLocReserved6,
|
|
||||||
}
|
|
||||||
PaWasapiJackGeoLocation;
|
|
||||||
|
|
||||||
|
|
||||||
/* Jack general location */
|
|
||||||
typedef enum PaWasapiJackGenLocation
|
|
||||||
{
|
|
||||||
eJackGenLocPrimaryBox = 0,
|
|
||||||
eJackGenLocInternal,
|
|
||||||
eJackGenLocSeparate,
|
|
||||||
eJackGenLocOther
|
|
||||||
}
|
|
||||||
PaWasapiJackGenLocation;
|
|
||||||
|
|
||||||
|
|
||||||
/* Jack's type of port */
|
|
||||||
typedef enum PaWasapiJackPortConnection
|
|
||||||
{
|
|
||||||
eJackPortConnJack = 0,
|
|
||||||
eJackPortConnIntegratedDevice,
|
|
||||||
eJackPortConnBothIntegratedAndJack,
|
|
||||||
eJackPortConnUnknown
|
|
||||||
}
|
|
||||||
PaWasapiJackPortConnection;
|
|
||||||
|
|
||||||
|
|
||||||
/* Thread priority */
|
|
||||||
typedef enum PaWasapiThreadPriority
|
|
||||||
{
|
|
||||||
eThreadPriorityNone = 0,
|
|
||||||
eThreadPriorityAudio, //!< Default for Shared mode.
|
|
||||||
eThreadPriorityCapture,
|
|
||||||
eThreadPriorityDistribution,
|
|
||||||
eThreadPriorityGames,
|
|
||||||
eThreadPriorityPlayback,
|
|
||||||
eThreadPriorityProAudio, //!< Default for Exclusive mode.
|
|
||||||
eThreadPriorityWindowManager
|
|
||||||
}
|
|
||||||
PaWasapiThreadPriority;
|
|
||||||
|
|
||||||
|
|
||||||
/* Stream descriptor. */
|
|
||||||
typedef struct PaWasapiJackDescription
|
|
||||||
{
|
|
||||||
unsigned long channelMapping;
|
|
||||||
unsigned long color; /* derived from macro: #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16))) */
|
|
||||||
PaWasapiJackConnectionType connectionType;
|
|
||||||
PaWasapiJackGeoLocation geoLocation;
|
|
||||||
PaWasapiJackGenLocation genLocation;
|
|
||||||
PaWasapiJackPortConnection portConnection;
|
|
||||||
unsigned int isConnected;
|
|
||||||
}
|
|
||||||
PaWasapiJackDescription;
|
|
||||||
|
|
||||||
|
|
||||||
/* Stream descriptor. */
|
|
||||||
typedef struct PaWasapiStreamInfo
|
|
||||||
{
|
|
||||||
unsigned long size; /**< sizeof(PaWasapiStreamInfo) */
|
|
||||||
PaHostApiTypeId hostApiType; /**< paWASAPI */
|
|
||||||
unsigned long version; /**< 1 */
|
|
||||||
|
|
||||||
unsigned long flags; /**< collection of PaWasapiFlags */
|
|
||||||
|
|
||||||
/* Support for WAVEFORMATEXTENSIBLE channel masks. If flags contains
|
|
||||||
paWinWasapiUseChannelMask this allows you to specify which speakers
|
|
||||||
to address in a multichannel stream. Constants for channelMask
|
|
||||||
are specified in pa_win_waveformat.h. Will be used only if
|
|
||||||
paWinWasapiUseChannelMask flag is specified.
|
|
||||||
*/
|
|
||||||
PaWinWaveFormatChannelMask channelMask;
|
|
||||||
|
|
||||||
/* Delivers raw data to callback obtained from GetBuffer() methods skipping
|
|
||||||
internal PortAudio processing inventory completely. userData parameter will
|
|
||||||
be the same that was passed to Pa_OpenStream method. Will be used only if
|
|
||||||
paWinWasapiRedirectHostProcessor flag is specified.
|
|
||||||
*/
|
|
||||||
PaWasapiHostProcessorCallback hostProcessorOutput;
|
|
||||||
PaWasapiHostProcessorCallback hostProcessorInput;
|
|
||||||
|
|
||||||
/* Specifies thread priority explicitly. Will be used only if paWinWasapiThreadPriority flag
|
|
||||||
is specified.
|
|
||||||
|
|
||||||
Please note, if Input/Output streams are opened simultaniously (Full-Duplex mode)
|
|
||||||
you shall specify same value for threadPriority or othervise one of the values will be used
|
|
||||||
to setup thread priority.
|
|
||||||
*/
|
|
||||||
PaWasapiThreadPriority threadPriority;
|
|
||||||
}
|
|
||||||
PaWasapiStreamInfo;
|
|
||||||
|
|
||||||
|
|
||||||
/** Returns default sound format for device. Format is represented by PaWinWaveFormat or
|
|
||||||
WAVEFORMATEXTENSIBLE structure.
|
|
||||||
|
|
||||||
@param pFormat Pointer to PaWinWaveFormat or WAVEFORMATEXTENSIBLE structure.
|
|
||||||
@param nFormatSize Size of PaWinWaveFormat or WAVEFORMATEXTENSIBLE structure in bytes.
|
|
||||||
@param nDevice Device index.
|
|
||||||
|
|
||||||
@return Non-negative value indicating the number of bytes copied into format decriptor
|
|
||||||
or, a PaErrorCode (which are always negative) if PortAudio is not initialized
|
|
||||||
or an error is encountered.
|
|
||||||
*/
|
|
||||||
int PaWasapi_GetDeviceDefaultFormat( void *pFormat, unsigned int nFormatSize, PaDeviceIndex nDevice );
|
|
||||||
|
|
||||||
|
|
||||||
/** Returns device role (PaWasapiDeviceRole enum).
|
|
||||||
|
|
||||||
@param nDevice device index.
|
|
||||||
|
|
||||||
@return Non-negative value indicating device role or, a PaErrorCode (which are always negative)
|
|
||||||
if PortAudio is not initialized or an error is encountered.
|
|
||||||
*/
|
|
||||||
int/*PaWasapiDeviceRole*/ PaWasapi_GetDeviceRole( PaDeviceIndex nDevice );
|
|
||||||
|
|
||||||
|
|
||||||
/** Boost thread priority of calling thread (MMCSS). Use it for Blocking Interface only for thread
|
|
||||||
which makes calls to Pa_WriteStream/Pa_ReadStream.
|
|
||||||
|
|
||||||
@param hTask Handle to pointer to priority task. Must be used with PaWasapi_RevertThreadPriority
|
|
||||||
method to revert thread priority to initial state.
|
|
||||||
|
|
||||||
@param nPriorityClass Id of thread priority of PaWasapiThreadPriority type. Specifying
|
|
||||||
eThreadPriorityNone does nothing.
|
|
||||||
|
|
||||||
@return Error code indicating success or failure.
|
|
||||||
@see PaWasapi_RevertThreadPriority
|
|
||||||
*/
|
|
||||||
PaError PaWasapi_ThreadPriorityBoost( void **hTask, PaWasapiThreadPriority nPriorityClass );
|
|
||||||
|
|
||||||
|
|
||||||
/** Boost thread priority of calling thread (MMCSS). Use it for Blocking Interface only for thread
|
|
||||||
which makes calls to Pa_WriteStream/Pa_ReadStream.
|
|
||||||
|
|
||||||
@param hTask Task handle obtained by PaWasapi_BoostThreadPriority method.
|
|
||||||
@return Error code indicating success or failure.
|
|
||||||
@see PaWasapi_BoostThreadPriority
|
|
||||||
*/
|
|
||||||
PaError PaWasapi_ThreadPriorityRevert( void *hTask );
|
|
||||||
|
|
||||||
|
|
||||||
/** Get number of frames per host buffer. This is maximal value of frames of WASAPI buffer which
|
|
||||||
can be locked for operations. Use this method as helper to findout maximal values of
|
|
||||||
inputFrames/outputFrames of PaWasapiHostProcessorCallback.
|
|
||||||
|
|
||||||
@param pStream Pointer to PaStream to query.
|
|
||||||
@param nInput Pointer to variable to receive number of input frames. Can be NULL.
|
|
||||||
@param nOutput Pointer to variable to receive number of output frames. Can be NULL.
|
|
||||||
@return Error code indicating success or failure.
|
|
||||||
@see PaWasapiHostProcessorCallback
|
|
||||||
*/
|
|
||||||
PaError PaWasapi_GetFramesPerHostBuffer( PaStream *pStream, unsigned int *nInput, unsigned int *nOutput );
|
|
||||||
|
|
||||||
|
|
||||||
/** Get number of jacks associated with a WASAPI device. Use this method to determine if
|
|
||||||
there are any jacks associated with the provided WASAPI device. Not all audio devices
|
|
||||||
will support this capability. This is valid for both input and output devices.
|
|
||||||
@param nDevice device index.
|
|
||||||
@param jcount Number of jacks is returned in this variable
|
|
||||||
@return Error code indicating success or failure
|
|
||||||
@see PaWasapi_GetJackDescription
|
|
||||||
*/
|
|
||||||
PaError PaWasapi_GetJackCount(PaDeviceIndex nDevice, int *jcount);
|
|
||||||
|
|
||||||
|
|
||||||
/** Get the jack description associated with a WASAPI device and jack number
|
|
||||||
Before this function is called, use PaWasapi_GetJackCount to determine the
|
|
||||||
number of jacks associated with device. If jcount is greater than zero, then
|
|
||||||
each jack from 0 to jcount can be queried with this function to get the jack
|
|
||||||
description.
|
|
||||||
@param nDevice device index.
|
|
||||||
@param jindex Which jack to return information
|
|
||||||
@param KSJACK_DESCRIPTION This structure filled in on success.
|
|
||||||
@return Error code indicating success or failure
|
|
||||||
@see PaWasapi_GetJackCount
|
|
||||||
*/
|
|
||||||
PaError PaWasapi_GetJackDescription(PaDeviceIndex nDevice, int jindex, PaWasapiJackDescription *pJackDescription);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
IMPORTANT:
|
|
||||||
|
|
||||||
WASAPI is implemented for Callback and Blocking interfaces. It supports Shared and Exclusive
|
|
||||||
share modes.
|
|
||||||
|
|
||||||
Exclusive Mode:
|
|
||||||
|
|
||||||
Exclusive mode allows to deliver audio data directly to hardware bypassing
|
|
||||||
software mixing.
|
|
||||||
Exclusive mode is specified by 'paWinWasapiExclusive' flag.
|
|
||||||
|
|
||||||
Callback Interface:
|
|
||||||
|
|
||||||
Provides best audio quality with low latency. Callback interface is implemented in
|
|
||||||
two versions:
|
|
||||||
|
|
||||||
1) Event-Driven:
|
|
||||||
This is the most powerful WASAPI implementation which provides glitch-free
|
|
||||||
audio at around 3ms latency in Exclusive mode. Lowest possible latency for this mode is
|
|
||||||
3 ms for HD Audio class audio chips. For the Shared mode latency can not be
|
|
||||||
lower than 20 ms.
|
|
||||||
|
|
||||||
2) Poll-Driven:
|
|
||||||
Polling is another 2-nd method to operate with WASAPI. It is less efficient than Event-Driven
|
|
||||||
and provides latency at around 10-13ms. Polling must be used to overcome a system bug
|
|
||||||
under Windows Vista x64 when application is WOW64(32-bit) and Event-Driven method simply
|
|
||||||
times out (event handle is never signalled on buffer completion). Please note, such WOW64 bug
|
|
||||||
does not exist in Vista x86 or Windows 7.
|
|
||||||
Polling can be setup by speciying 'paWinWasapiPolling' flag. Our WASAPI implementation detects
|
|
||||||
WOW64 bug and sets 'paWinWasapiPolling' automatically.
|
|
||||||
|
|
||||||
Thread priority:
|
|
||||||
|
|
||||||
Normally thread priority is set automatically and does not require modification. Although
|
|
||||||
if user wants some tweaking thread priority can be modified by setting 'paWinWasapiThreadPriority'
|
|
||||||
flag and specifying 'PaWasapiStreamInfo::threadPriority' with value from PaWasapiThreadPriority
|
|
||||||
enum.
|
|
||||||
|
|
||||||
Blocking Interface:
|
|
||||||
|
|
||||||
Blocking interface is implemented but due to above described Poll-Driven method can not
|
|
||||||
deliver lowest possible latency. Specifying too low latency in Shared mode will result in
|
|
||||||
distorted audio although Exclusive mode adds stability.
|
|
||||||
|
|
||||||
Pa_IsFormatSupported:
|
|
||||||
|
|
||||||
To check format with correct Share Mode (Exclusive/Shared) you must supply
|
|
||||||
PaWasapiStreamInfo with flags paWinWasapiExclusive set through member of
|
|
||||||
PaStreamParameters::hostApiSpecificStreamInfo structure.
|
|
||||||
|
|
||||||
Pa_OpenStream:
|
|
||||||
|
|
||||||
To set desired Share Mode (Exclusive/Shared) you must supply
|
|
||||||
PaWasapiStreamInfo with flags paWinWasapiExclusive set through member of
|
|
||||||
PaStreamParameters::hostApiSpecificStreamInfo structure.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_WIN_WASAPI_H */
|
|
199
external/portaudio/include/pa_win_waveformat.h
vendored
199
external/portaudio/include/pa_win_waveformat.h
vendored
@ -1,199 +0,0 @@
|
|||||||
#ifndef PA_WIN_WAVEFORMAT_H
|
|
||||||
#define PA_WIN_WAVEFORMAT_H
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* Windows WAVEFORMAT* data structure utilities
|
|
||||||
* portaudio.h should be included before this file.
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007 Ross Bencina
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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 Windows specific PortAudio API extension and utilities header file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
The following #defines for speaker channel masks are the same
|
|
||||||
as those in ksmedia.h, except with PAWIN_ prepended, KSAUDIO_ removed
|
|
||||||
in some cases, and casts to PaWinWaveFormatChannelMask added.
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef unsigned long PaWinWaveFormatChannelMask;
|
|
||||||
|
|
||||||
/* Speaker Positions: */
|
|
||||||
#define PAWIN_SPEAKER_FRONT_LEFT ((PaWinWaveFormatChannelMask)0x1)
|
|
||||||
#define PAWIN_SPEAKER_FRONT_RIGHT ((PaWinWaveFormatChannelMask)0x2)
|
|
||||||
#define PAWIN_SPEAKER_FRONT_CENTER ((PaWinWaveFormatChannelMask)0x4)
|
|
||||||
#define PAWIN_SPEAKER_LOW_FREQUENCY ((PaWinWaveFormatChannelMask)0x8)
|
|
||||||
#define PAWIN_SPEAKER_BACK_LEFT ((PaWinWaveFormatChannelMask)0x10)
|
|
||||||
#define PAWIN_SPEAKER_BACK_RIGHT ((PaWinWaveFormatChannelMask)0x20)
|
|
||||||
#define PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER ((PaWinWaveFormatChannelMask)0x40)
|
|
||||||
#define PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER ((PaWinWaveFormatChannelMask)0x80)
|
|
||||||
#define PAWIN_SPEAKER_BACK_CENTER ((PaWinWaveFormatChannelMask)0x100)
|
|
||||||
#define PAWIN_SPEAKER_SIDE_LEFT ((PaWinWaveFormatChannelMask)0x200)
|
|
||||||
#define PAWIN_SPEAKER_SIDE_RIGHT ((PaWinWaveFormatChannelMask)0x400)
|
|
||||||
#define PAWIN_SPEAKER_TOP_CENTER ((PaWinWaveFormatChannelMask)0x800)
|
|
||||||
#define PAWIN_SPEAKER_TOP_FRONT_LEFT ((PaWinWaveFormatChannelMask)0x1000)
|
|
||||||
#define PAWIN_SPEAKER_TOP_FRONT_CENTER ((PaWinWaveFormatChannelMask)0x2000)
|
|
||||||
#define PAWIN_SPEAKER_TOP_FRONT_RIGHT ((PaWinWaveFormatChannelMask)0x4000)
|
|
||||||
#define PAWIN_SPEAKER_TOP_BACK_LEFT ((PaWinWaveFormatChannelMask)0x8000)
|
|
||||||
#define PAWIN_SPEAKER_TOP_BACK_CENTER ((PaWinWaveFormatChannelMask)0x10000)
|
|
||||||
#define PAWIN_SPEAKER_TOP_BACK_RIGHT ((PaWinWaveFormatChannelMask)0x20000)
|
|
||||||
|
|
||||||
/* Bit mask locations reserved for future use */
|
|
||||||
#define PAWIN_SPEAKER_RESERVED ((PaWinWaveFormatChannelMask)0x7FFC0000)
|
|
||||||
|
|
||||||
/* Used to specify that any possible permutation of speaker configurations */
|
|
||||||
#define PAWIN_SPEAKER_ALL ((PaWinWaveFormatChannelMask)0x80000000)
|
|
||||||
|
|
||||||
/* DirectSound Speaker Config */
|
|
||||||
#define PAWIN_SPEAKER_DIRECTOUT 0
|
|
||||||
#define PAWIN_SPEAKER_MONO (PAWIN_SPEAKER_FRONT_CENTER)
|
|
||||||
#define PAWIN_SPEAKER_STEREO (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT)
|
|
||||||
#define PAWIN_SPEAKER_QUAD (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT)
|
|
||||||
#define PAWIN_SPEAKER_SURROUND (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_BACK_CENTER)
|
|
||||||
#define PAWIN_SPEAKER_5POINT1 (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
|
|
||||||
PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT)
|
|
||||||
#define PAWIN_SPEAKER_7POINT1 (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
|
|
||||||
PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER | PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER)
|
|
||||||
#define PAWIN_SPEAKER_5POINT1_SURROUND (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
|
|
||||||
PAWIN_SPEAKER_SIDE_LEFT | PAWIN_SPEAKER_SIDE_RIGHT)
|
|
||||||
#define PAWIN_SPEAKER_7POINT1_SURROUND (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
|
|
||||||
PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
|
|
||||||
PAWIN_SPEAKER_SIDE_LEFT | PAWIN_SPEAKER_SIDE_RIGHT)
|
|
||||||
/*
|
|
||||||
According to the Microsoft documentation:
|
|
||||||
The following are obsolete 5.1 and 7.1 settings (they lack side speakers). Note this means
|
|
||||||
that the default 5.1 and 7.1 settings (KSAUDIO_SPEAKER_5POINT1 and KSAUDIO_SPEAKER_7POINT1 are
|
|
||||||
similarly obsolete but are unchanged for compatibility reasons).
|
|
||||||
*/
|
|
||||||
#define PAWIN_SPEAKER_5POINT1_BACK PAWIN_SPEAKER_5POINT1
|
|
||||||
#define PAWIN_SPEAKER_7POINT1_WIDE PAWIN_SPEAKER_7POINT1
|
|
||||||
|
|
||||||
/* DVD Speaker Positions */
|
|
||||||
#define PAWIN_SPEAKER_GROUND_FRONT_LEFT PAWIN_SPEAKER_FRONT_LEFT
|
|
||||||
#define PAWIN_SPEAKER_GROUND_FRONT_CENTER PAWIN_SPEAKER_FRONT_CENTER
|
|
||||||
#define PAWIN_SPEAKER_GROUND_FRONT_RIGHT PAWIN_SPEAKER_FRONT_RIGHT
|
|
||||||
#define PAWIN_SPEAKER_GROUND_REAR_LEFT PAWIN_SPEAKER_BACK_LEFT
|
|
||||||
#define PAWIN_SPEAKER_GROUND_REAR_RIGHT PAWIN_SPEAKER_BACK_RIGHT
|
|
||||||
#define PAWIN_SPEAKER_TOP_MIDDLE PAWIN_SPEAKER_TOP_CENTER
|
|
||||||
#define PAWIN_SPEAKER_SUPER_WOOFER PAWIN_SPEAKER_LOW_FREQUENCY
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
PaWinWaveFormat is defined here to provide compatibility with
|
|
||||||
compilation environments which don't have headers defining
|
|
||||||
WAVEFORMATEXTENSIBLE (e.g. older versions of MSVC, Borland C++ etc.
|
|
||||||
|
|
||||||
The fields for WAVEFORMATEX and WAVEFORMATEXTENSIBLE are declared as an
|
|
||||||
unsigned char array here to avoid clients who include this file having
|
|
||||||
a dependency on windows.h and mmsystem.h, and also to to avoid having
|
|
||||||
to write separate packing pragmas for each compiler.
|
|
||||||
*/
|
|
||||||
#define PAWIN_SIZEOF_WAVEFORMATEX 18
|
|
||||||
#define PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE (PAWIN_SIZEOF_WAVEFORMATEX + 22)
|
|
||||||
|
|
||||||
typedef struct{
|
|
||||||
unsigned char fields[ PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE ];
|
|
||||||
unsigned long extraLongForAlignment; /* ensure that compiler aligns struct to DWORD */
|
|
||||||
} PaWinWaveFormat;
|
|
||||||
|
|
||||||
/*
|
|
||||||
WAVEFORMATEXTENSIBLE fields:
|
|
||||||
|
|
||||||
union {
|
|
||||||
WORD wValidBitsPerSample;
|
|
||||||
WORD wSamplesPerBlock;
|
|
||||||
WORD wReserved;
|
|
||||||
} Samples;
|
|
||||||
DWORD dwChannelMask;
|
|
||||||
GUID SubFormat;
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define PAWIN_INDEXOF_WVALIDBITSPERSAMPLE (PAWIN_SIZEOF_WAVEFORMATEX+0)
|
|
||||||
#define PAWIN_INDEXOF_DWCHANNELMASK (PAWIN_SIZEOF_WAVEFORMATEX+2)
|
|
||||||
#define PAWIN_INDEXOF_SUBFORMAT (PAWIN_SIZEOF_WAVEFORMATEX+6)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Valid values to pass for the waveFormatTag PaWin_InitializeWaveFormatEx and
|
|
||||||
PaWin_InitializeWaveFormatExtensible functions below. These must match
|
|
||||||
the standard Windows WAVE_FORMAT_* values.
|
|
||||||
*/
|
|
||||||
#define PAWIN_WAVE_FORMAT_PCM (1)
|
|
||||||
#define PAWIN_WAVE_FORMAT_IEEE_FLOAT (3)
|
|
||||||
#define PAWIN_WAVE_FORMAT_DOLBY_AC3_SPDIF (0x0092)
|
|
||||||
#define PAWIN_WAVE_FORMAT_WMA_SPDIF (0x0164)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
returns PAWIN_WAVE_FORMAT_PCM or PAWIN_WAVE_FORMAT_IEEE_FLOAT
|
|
||||||
depending on the sampleFormat parameter.
|
|
||||||
*/
|
|
||||||
int PaWin_SampleFormatToLinearWaveFormatTag( PaSampleFormat sampleFormat );
|
|
||||||
|
|
||||||
/*
|
|
||||||
Use the following two functions to initialize the waveformat structure.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void PaWin_InitializeWaveFormatEx( PaWinWaveFormat *waveFormat,
|
|
||||||
int numChannels, PaSampleFormat sampleFormat, int waveFormatTag, double sampleRate );
|
|
||||||
|
|
||||||
|
|
||||||
void PaWin_InitializeWaveFormatExtensible( PaWinWaveFormat *waveFormat,
|
|
||||||
int numChannels, PaSampleFormat sampleFormat, int waveFormatTag, double sampleRate,
|
|
||||||
PaWinWaveFormatChannelMask channelMask );
|
|
||||||
|
|
||||||
|
|
||||||
/* Map a channel count to a speaker channel mask */
|
|
||||||
PaWinWaveFormatChannelMask PaWin_DefaultChannelMask( int numChannels );
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_WIN_WAVEFORMAT_H */
|
|
106
external/portaudio/include/pa_win_wdmks.h
vendored
106
external/portaudio/include/pa_win_wdmks.h
vendored
@ -1,106 +0,0 @@
|
|||||||
#ifndef PA_WIN_WDMKS_H
|
|
||||||
#define PA_WIN_WDMKS_H
|
|
||||||
/*
|
|
||||||
* $Id: pa_win_wdmks.h 1812 2012-02-14 09:32:57Z robiwan $
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* WDM/KS specific extensions
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2007 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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 WDM Kernel Streaming-specific PortAudio API extension header file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "portaudio.h"
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
typedef struct PaWinWDMKSInfo{
|
|
||||||
unsigned long size; /**< sizeof(PaWinWDMKSInfo) */
|
|
||||||
PaHostApiTypeId hostApiType; /**< paWDMKS */
|
|
||||||
unsigned long version; /**< 1 */
|
|
||||||
|
|
||||||
/* The number of packets to use for WaveCyclic devices, range is [2, 8]. Set to zero for default value of 2. */
|
|
||||||
unsigned noOfPackets;
|
|
||||||
} PaWinWDMKSInfo;
|
|
||||||
|
|
||||||
typedef enum PaWDMKSType
|
|
||||||
{
|
|
||||||
Type_kNotUsed,
|
|
||||||
Type_kWaveCyclic,
|
|
||||||
Type_kWaveRT,
|
|
||||||
Type_kCnt,
|
|
||||||
} PaWDMKSType;
|
|
||||||
|
|
||||||
typedef enum PaWDMKSSubType
|
|
||||||
{
|
|
||||||
SubType_kUnknown,
|
|
||||||
SubType_kNotification,
|
|
||||||
SubType_kPolled,
|
|
||||||
SubType_kCnt,
|
|
||||||
} PaWDMKSSubType;
|
|
||||||
|
|
||||||
typedef struct PaWinWDMKSDeviceInfo {
|
|
||||||
wchar_t filterPath[MAX_PATH]; /**< KS filter path in Unicode! */
|
|
||||||
wchar_t topologyPath[MAX_PATH]; /**< Topology filter path in Unicode! */
|
|
||||||
PaWDMKSType streamingType;
|
|
||||||
GUID deviceProductGuid; /**< The product GUID of the device (if supported) */
|
|
||||||
} PaWinWDMKSDeviceInfo;
|
|
||||||
|
|
||||||
typedef struct PaWDMKSDirectionSpecificStreamInfo
|
|
||||||
{
|
|
||||||
PaDeviceIndex device;
|
|
||||||
unsigned channels; /**< No of channels the device is opened with */
|
|
||||||
unsigned framesPerHostBuffer; /**< No of frames of the device buffer */
|
|
||||||
int endpointPinId; /**< Endpoint pin ID (on topology filter if topologyName is not empty) */
|
|
||||||
int muxNodeId; /**< Only valid for input */
|
|
||||||
PaWDMKSSubType streamingSubType; /**< Not known until device is opened for streaming */
|
|
||||||
} PaWDMKSDirectionSpecificStreamInfo;
|
|
||||||
|
|
||||||
typedef struct PaWDMKSSpecificStreamInfo {
|
|
||||||
PaWDMKSDirectionSpecificStreamInfo input;
|
|
||||||
PaWDMKSDirectionSpecificStreamInfo output;
|
|
||||||
} PaWDMKSSpecificStreamInfo;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_WIN_DS_H */
|
|
185
external/portaudio/include/pa_win_wmme.h
vendored
185
external/portaudio/include/pa_win_wmme.h
vendored
@ -1,185 +0,0 @@
|
|||||||
#ifndef PA_WIN_WMME_H
|
|
||||||
#define PA_WIN_WMME_H
|
|
||||||
/*
|
|
||||||
* $Id: pa_win_wmme.h 1592 2011-02-04 10:41:58Z rossb $
|
|
||||||
* PortAudio Portable Real-Time Audio Library
|
|
||||||
* MME specific extensions
|
|
||||||
*
|
|
||||||
* Copyright (c) 1999-2000 Ross Bencina and Phil Burk
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
* a copy of this software and associated documentation files
|
|
||||||
* (the "Software"), to deal in the Software without restriction,
|
|
||||||
* including without limitation the rights to use, copy, modify, merge,
|
|
||||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
* and to permit persons to whom the Software is furnished to do so,
|
|
||||||
* subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be
|
|
||||||
* included in all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
||||||
* 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 WMME-specific PortAudio API extension header file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "portaudio.h"
|
|
||||||
#include "pa_win_waveformat.h"
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
|
|
||||||
/* The following are flags which can be set in
|
|
||||||
PaWinMmeStreamInfo's flags field.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define paWinMmeUseLowLevelLatencyParameters (0x01)
|
|
||||||
#define paWinMmeUseMultipleDevices (0x02) /* use mme specific multiple device feature */
|
|
||||||
#define paWinMmeUseChannelMask (0x04)
|
|
||||||
|
|
||||||
/* By default, the mme implementation drops the processing thread's priority
|
|
||||||
to THREAD_PRIORITY_NORMAL and sleeps the thread if the CPU load exceeds 100%
|
|
||||||
This flag disables any priority throttling. The processing thread will always
|
|
||||||
run at THREAD_PRIORITY_TIME_CRITICAL.
|
|
||||||
*/
|
|
||||||
#define paWinMmeDontThrottleOverloadedProcessingThread (0x08)
|
|
||||||
|
|
||||||
/* Flags for non-PCM spdif passthrough.
|
|
||||||
*/
|
|
||||||
#define paWinMmeWaveFormatDolbyAc3Spdif (0x10)
|
|
||||||
#define paWinMmeWaveFormatWmaSpdif (0x20)
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct PaWinMmeDeviceAndChannelCount{
|
|
||||||
PaDeviceIndex device;
|
|
||||||
int channelCount;
|
|
||||||
}PaWinMmeDeviceAndChannelCount;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct PaWinMmeStreamInfo{
|
|
||||||
unsigned long size; /**< sizeof(PaWinMmeStreamInfo) */
|
|
||||||
PaHostApiTypeId hostApiType; /**< paMME */
|
|
||||||
unsigned long version; /**< 1 */
|
|
||||||
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
/* low-level latency setting support
|
|
||||||
These settings control the number and size of host buffers in order
|
|
||||||
to set latency. They will be used instead of the generic parameters
|
|
||||||
to Pa_OpenStream() if flags contains the PaWinMmeUseLowLevelLatencyParameters
|
|
||||||
flag.
|
|
||||||
|
|
||||||
If PaWinMmeStreamInfo structures with PaWinMmeUseLowLevelLatencyParameters
|
|
||||||
are supplied for both input and output in a full duplex stream, then the
|
|
||||||
input and output framesPerBuffer must be the same, or the larger of the
|
|
||||||
two must be a multiple of the smaller, otherwise a
|
|
||||||
paIncompatibleHostApiSpecificStreamInfo error will be returned from
|
|
||||||
Pa_OpenStream().
|
|
||||||
*/
|
|
||||||
unsigned long framesPerBuffer;
|
|
||||||
unsigned long bufferCount; /* formerly numBuffers */
|
|
||||||
|
|
||||||
/* multiple devices per direction support
|
|
||||||
If flags contains the PaWinMmeUseMultipleDevices flag,
|
|
||||||
this functionality will be used, otherwise the device parameter to
|
|
||||||
Pa_OpenStream() will be used instead.
|
|
||||||
If devices are specified here, the corresponding device parameter
|
|
||||||
to Pa_OpenStream() should be set to paUseHostApiSpecificDeviceSpecification,
|
|
||||||
otherwise an paInvalidDevice error will result.
|
|
||||||
The total number of channels accross all specified devices
|
|
||||||
must agree with the corresponding channelCount parameter to
|
|
||||||
Pa_OpenStream() otherwise a paInvalidChannelCount error will result.
|
|
||||||
*/
|
|
||||||
PaWinMmeDeviceAndChannelCount *devices;
|
|
||||||
unsigned long deviceCount;
|
|
||||||
|
|
||||||
/*
|
|
||||||
support for WAVEFORMATEXTENSIBLE channel masks. If flags contains
|
|
||||||
paWinMmeUseChannelMask this allows you to specify which speakers
|
|
||||||
to address in a multichannel stream. Constants for channelMask
|
|
||||||
are specified in pa_win_waveformat.h
|
|
||||||
|
|
||||||
*/
|
|
||||||
PaWinWaveFormatChannelMask channelMask;
|
|
||||||
|
|
||||||
}PaWinMmeStreamInfo;
|
|
||||||
|
|
||||||
|
|
||||||
/** Retrieve the number of wave in handles used by a PortAudio WinMME stream.
|
|
||||||
Returns zero if the stream is output only.
|
|
||||||
|
|
||||||
@return A non-negative value indicating the number of wave in handles
|
|
||||||
or, a PaErrorCode (which are always negative) if PortAudio is not initialized
|
|
||||||
or an error is encountered.
|
|
||||||
|
|
||||||
@see PaWinMME_GetStreamInputHandle
|
|
||||||
*/
|
|
||||||
int PaWinMME_GetStreamInputHandleCount( PaStream* stream );
|
|
||||||
|
|
||||||
|
|
||||||
/** Retrieve a wave in handle used by a PortAudio WinMME stream.
|
|
||||||
|
|
||||||
@param stream The stream to query.
|
|
||||||
@param handleIndex The zero based index of the wave in handle to retrieve. This
|
|
||||||
should be in the range [0, PaWinMME_GetStreamInputHandleCount(stream)-1].
|
|
||||||
|
|
||||||
@return A valid wave in handle, or NULL if an error occurred.
|
|
||||||
|
|
||||||
@see PaWinMME_GetStreamInputHandle
|
|
||||||
*/
|
|
||||||
HWAVEIN PaWinMME_GetStreamInputHandle( PaStream* stream, int handleIndex );
|
|
||||||
|
|
||||||
|
|
||||||
/** Retrieve the number of wave out handles used by a PortAudio WinMME stream.
|
|
||||||
Returns zero if the stream is input only.
|
|
||||||
|
|
||||||
@return A non-negative value indicating the number of wave out handles
|
|
||||||
or, a PaErrorCode (which are always negative) if PortAudio is not initialized
|
|
||||||
or an error is encountered.
|
|
||||||
|
|
||||||
@see PaWinMME_GetStreamOutputHandle
|
|
||||||
*/
|
|
||||||
int PaWinMME_GetStreamOutputHandleCount( PaStream* stream );
|
|
||||||
|
|
||||||
|
|
||||||
/** Retrieve a wave out handle used by a PortAudio WinMME stream.
|
|
||||||
|
|
||||||
@param stream The stream to query.
|
|
||||||
@param handleIndex The zero based index of the wave out handle to retrieve.
|
|
||||||
This should be in the range [0, PaWinMME_GetStreamOutputHandleCount(stream)-1].
|
|
||||||
|
|
||||||
@return A valid wave out handle, or NULL if an error occurred.
|
|
||||||
|
|
||||||
@see PaWinMME_GetStreamOutputHandleCount
|
|
||||||
*/
|
|
||||||
HWAVEOUT PaWinMME_GetStreamOutputHandle( PaStream* stream, int handleIndex );
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
#endif /* PA_WIN_WMME_H */
|
|
1174
external/portaudio/include/portaudio.h
vendored
1174
external/portaudio/include/portaudio.h
vendored
File diff suppressed because it is too large
Load Diff
BIN
external/portaudio/libs/32/portaudio_x86.dll
vendored
BIN
external/portaudio/libs/32/portaudio_x86.dll
vendored
Binary file not shown.
BIN
external/portaudio/libs/32/portaudio_x86.lib
vendored
BIN
external/portaudio/libs/32/portaudio_x86.lib
vendored
Binary file not shown.
BIN
external/portaudio/libs/64/libportaudio_static_x86.a
vendored
BIN
external/portaudio/libs/64/libportaudio_static_x86.a
vendored
Binary file not shown.
BIN
external/portaudio/libs/64/libportaudio_x86.dll
vendored
BIN
external/portaudio/libs/64/libportaudio_x86.dll
vendored
Binary file not shown.
BIN
external/portaudio/libs/64/libportaudio_x86.dll.a
vendored
BIN
external/portaudio/libs/64/libportaudio_x86.dll.a
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user