Ticket #132
This commit is contained in:
parent
bc81ee0ed2
commit
59f8c8975c
11 changed files with 682 additions and 180 deletions
|
|
@ -9,6 +9,8 @@ Global
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
|
ReleaseMinDependency|Win32 = ReleaseMinDependency|Win32
|
||||||
|
ReleaseMinDependency|x64 = ReleaseMinDependency|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
|
@ -19,6 +21,10 @@ Global
|
||||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32
|
||||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64
|
||||||
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64
|
||||||
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseMinDependency|Win32.ActiveCfg = ReleaseMinDependency|Win32
|
||||||
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseMinDependency|Win32.Build.0 = ReleaseMinDependency|Win32
|
||||||
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseMinDependency|x64.ActiveCfg = ReleaseMinDependency|x64
|
||||||
|
{0A18A071-125E-442F-AFF7-A3F68ABECF99}.ReleaseMinDependency|x64.Build.0 = ReleaseMinDependency|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +1,8 @@
|
||||||
Hello
|
Hello
|
||||||
|
|
||||||
This is a small list of steps in order to build portaudio
|
This is a small list of steps in order to build portaudio
|
||||||
(Currently v19-devel) into a VC6 DLL and lib file.
|
(Currently v19-devel) into a VS2005 DLL and lib file.
|
||||||
This DLL contains all 3 current win32 PA APIS (MM/DS/ASIO)
|
This DLL contains all 5 current Win32 PA APIS (MME/DS/ASIO/WASAPI/WDMKS)
|
||||||
|
|
||||||
1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK
|
1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK
|
||||||
so you should now have example:
|
so you should now have example:
|
||||||
|
|
@ -29,7 +29,7 @@ This DLL contains all 3 current win32 PA APIS (MM/DS/ASIO)
|
||||||
Processor Pack(only works with above SP5)
|
Processor Pack(only works with above SP5)
|
||||||
Latest known URL:
|
Latest known URL:
|
||||||
http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx
|
http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx
|
||||||
This isnt absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things.
|
This isn't absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things.
|
||||||
Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics.
|
Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics.
|
||||||
|
|
||||||
Platform SDK (Feb 2003) :
|
Platform SDK (Feb 2003) :
|
||||||
|
|
@ -51,8 +51,9 @@ This DLL contains all 3 current win32 PA APIS (MM/DS/ASIO)
|
||||||
*If you have 7.0(VC.NET/2001) or 7.1(VC.2003) *
|
*If you have 7.0(VC.NET/2001) or 7.1(VC.2003) *
|
||||||
then I suggest you open portaudio.dsp (and convert if needed)
|
then I suggest you open portaudio.dsp (and convert if needed)
|
||||||
|
|
||||||
*If you have Visual Studio 2005*, I suggest you open the portaudio.sln file
|
*If you have Visual Studio 2005 * (or later), I suggest you open the portaudio.sln file
|
||||||
which contains 4 configurations. Win32/x64 in both Release and Debug variants
|
which contains 2 projects (portaudio & portaudio_static) each with 6 configurations: Win32/x64 in both Debug, Release and ReleaseMinDependency,
|
||||||
|
last of which removes dependency of all but basic OS system DLLs.
|
||||||
|
|
||||||
hit compile and hope for the best.
|
hit compile and hope for the best.
|
||||||
|
|
||||||
|
|
@ -88,22 +89,24 @@ To build PortAudio without ASIO support you need to:
|
||||||
|
|
||||||
B. Make sure your project doesn't try to build the PortAudio ASIO
|
B. Make sure your project doesn't try to build the PortAudio ASIO
|
||||||
implementation files:
|
implementation files:
|
||||||
src/hostapi/pa_asio.cpp src/hostapi/iasiothiscallresolver.cpp
|
src/hostapi/pa_asio.cpp
|
||||||
|
src/hostapi/iasiothiscallresolver.cpp
|
||||||
If you're using one of the shipped projects remove them from the project.
|
If you're using one of the shipped projects remove them from the project.
|
||||||
|
|
||||||
C. Define the PA_NO_ASIO preprocessor symbol in the project properties.
|
C. Set the PA_USE_ASIO preprocessor symbol to zero (i.e. PA_USE_ASIO=0) in the project properties.
|
||||||
In VS2005 this can be added under
|
In VS2005 this can be added under
|
||||||
Project Properties > Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions
|
Project Properties > Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions
|
||||||
|
|
||||||
Defining PA_NO_ASIO stops src/os/win/pa_win_hostapis.c
|
Setting PA_USE_ASIO=0 stops src/os/win/pa_win_hostapis.c
|
||||||
from trying to initialize the PA ASIO implementation.
|
from trying to initialize the PA ASIO implementation.
|
||||||
|
|
||||||
D. Remove PaAsio_* entry points from portaudio.def
|
D. Remove PaAsio_* entry points from portaudio.def, or comment them out with ;
|
||||||
|
|
||||||
|
|
||||||
A similar procedure can be used to omit any of the other host APIs from the
|
A similar procedure can be used to omit any of the other host APIs from the
|
||||||
build. The relevant preprocessor symbols used by pa_win_hostapis.c are:
|
build. The relevant preprocessor symbols used by pa_win_hostapis.c are:
|
||||||
PA_NO_WMME, PA_NO_DS, PA_NO_ASIO, PA_NO_WASAPI and PA_NO_WDMKS
|
PA_USE_WMME, PA_USE_DSOUND, PA_USE_ASIO, PA_USE_WASAPI and PA_USE_WDMKS
|
||||||
|
|
||||||
|
|
||||||
-----
|
-----
|
||||||
David Viens, davidv@plogue.com
|
David Viens, davidv@plogue.com
|
||||||
|
Robert Bielik, robert@xponaut.se
|
||||||
|
|
|
||||||
BIN
configure
vendored
BIN
configure
vendored
Binary file not shown.
14
configure.in
14
configure.in
|
|
@ -223,7 +223,7 @@ case "${host_os}" in
|
||||||
PADLL="portaudio.dll"
|
PADLL="portaudio.dll"
|
||||||
THREAD_CFLAGS="-mthreads"
|
THREAD_CFLAGS="-mthreads"
|
||||||
SHARED_FLAGS="-shared"
|
SHARED_FLAGS="-shared"
|
||||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/include -DPA_NO_WMME -DPA_NO_ASIO -DPA_NO_WDMKS -DPA_NO_DS -DPA_NO_WASAPI"
|
CFLAGS="$CFLAGS -I\$(top_srcdir)/include -DPA_USE_WMME=0 -DPA_USE_ASIO=0 -DPA_USE_WDMKS=0 -DPA_USE_DS=0 -DPA_USE_WASAPI=0"
|
||||||
|
|
||||||
if [[ "x$with_directx" = "xyes" ]]; then
|
if [[ "x$with_directx" = "xyes" ]]; then
|
||||||
DXDIR="$with_dxdir"
|
DXDIR="$with_dxdir"
|
||||||
|
|
@ -232,7 +232,7 @@ case "${host_os}" in
|
||||||
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
|
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
|
||||||
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
||||||
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
||||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win -I$DXDIR/include -UPA_NO_DS"
|
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win -I$DXDIR/include -UPA_USE_DS -DPA_USE_DS=1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "x$with_asio" = "xyes" ]]; then
|
if [[ "x$with_asio" = "xyes" ]]; then
|
||||||
|
|
@ -240,7 +240,7 @@ case "${host_os}" in
|
||||||
add_objects src/hostapi/asio/pa_asio.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/hostapi/asio/iasiothiscallresolver.o $ASIODIR/common/asio.o $ASIODIR/host/asiodrivers.o $ASIODIR/host/pc/asiolist.o
|
add_objects src/hostapi/asio/pa_asio.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/hostapi/asio/iasiothiscallresolver.o $ASIODIR/common/asio.o $ASIODIR/host/asiodrivers.o $ASIODIR/host/pc/asiolist.o
|
||||||
LIBS="-lwinmm -lm -lole32 -luuid"
|
LIBS="-lwinmm -lm -lole32 -luuid"
|
||||||
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
|
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
|
||||||
CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -I\$(top_srcdir)/src/common -I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common -I$ASIODIR/host -UPA_NO_ASIO -DWINDOWS"
|
CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -I\$(top_srcdir)/src/common -I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common -I$ASIODIR/host -UPA_USE_ASIO -DPA_USE_ASIO=1 -DWINDOWS"
|
||||||
CXXFLAGS="$CFLAGS"
|
CXXFLAGS="$CFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -251,21 +251,21 @@ case "${host_os}" in
|
||||||
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
|
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
|
||||||
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
|
||||||
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
#CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
|
||||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I$DXDIR/include -UPA_NO_WDMKS"
|
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I$DXDIR/include -UPA_USE_WDMKS -DPA_USE_WDMKS=1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "x$with_wmme" = "xyes" ]]; then
|
if [[ "x$with_wmme" = "xyes" ]]; then
|
||||||
add_objects src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
|
add_objects src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
|
||||||
LIBS="-lwinmm -lm -lole32 -luuid"
|
LIBS="-lwinmm -lm -lole32 -luuid"
|
||||||
DLL_LIBS="${DLL_LIBS} -lwinmm"
|
DLL_LIBS="${DLL_LIBS} -lwinmm"
|
||||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -UPA_NO_WMME"
|
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -UPA_USE_WMME -DPA_USE_WMME=1"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "x$with_wasapi" = "xyes" ]]; then
|
if [[ "x$with_wasapi" = "xyes" ]]; then
|
||||||
add_objects src/hostapi/wasapi/pa_win_wasapi.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
|
add_objects src/hostapi/wasapi/pa_win_wasapi.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
|
||||||
LIBS="-lwinmm -lm -lole32 -luuid"
|
LIBS="-lwinmm -lm -lole32 -luuid"
|
||||||
DLL_LIBS="${DLL_LIBS} -lwinmm"
|
DLL_LIBS="${DLL_LIBS} -lwinmm"
|
||||||
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I\$(top_srcdir)/src/hostapi/wasapi/mingw-include -UPA_NO_WASAPI"
|
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/common -I\$(top_srcdir)/src/hostapi/wasapi/mingw-include -UPA_USE_WASAPI -DPA_USE_WASAPI=1"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
@ -273,7 +273,7 @@ case "${host_os}" in
|
||||||
dnl Cygwin configuration
|
dnl Cygwin configuration
|
||||||
|
|
||||||
OTHER_OBJS="src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o"
|
OTHER_OBJS="src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o"
|
||||||
CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_WDMKS -DPA_NO_ASIO -DPA_NO_WASAPI"
|
CFLAGS="$CFLAGS -DPA_USE_DS=0 -DPA_USE_WDMKS=0 -DPA_USE_ASIO=0 -DPA_USE_WASAPI=0 -DPA_USE_WMME=1"
|
||||||
LIBS="-lwinmm -lm"
|
LIBS="-lwinmm -lm"
|
||||||
PADLL="portaudio.dll"
|
PADLL="portaudio.dll"
|
||||||
THREAD_CFLAGS="-mthreads"
|
THREAD_CFLAGS="-mthreads"
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,59 @@
|
||||||
to manage and communicate with host API implementations.
|
to manage and communicate with host API implementations.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "portaudio.h"
|
#include "portaudio.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
The PA_NO_* host API macros are now deprecated in favor of PA_USE_* macros.
|
||||||
|
PA_USE_* indicates whether a particular host API will be initialized by PortAudio.
|
||||||
|
An undefined or 0 value indicates that the host API will not be used. A value of 1
|
||||||
|
indicates that the host API will be used. PA_USE_* macros should be left undefined
|
||||||
|
or defined to either 0 or 1.
|
||||||
|
|
||||||
|
The code below ensures that PA_USE_* macros are always defined and have value
|
||||||
|
0 or 1. Undefined symbols are defaulted to 0. Symbols that are neither 0 nor 1
|
||||||
|
are defaulted to 1.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(PA_NO_ASIO) || defined(PA_NO_DS) || defined(PA_NO_WMME) || defined(PA_NO_WASAPI) || defined(PA_NO_WDMKS)
|
||||||
|
#error "Portaudio: PA_NO_<APINAME> is no longer supported, please remove definition and use PA_USE_<APINAME> instead"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PA_USE_ASIO
|
||||||
|
#define PA_USE_ASIO 0
|
||||||
|
#elif (PA_USE_ASIO != 0) && (PA_USE_ASIO != 1)
|
||||||
|
#undef PA_USE_ASIO
|
||||||
|
#define PA_USE_ASIO 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PA_USE_DS
|
||||||
|
#define PA_USE_DS 0
|
||||||
|
#elif (PA_USE_DS != 0) && (PA_USE_DS != 1)
|
||||||
|
#undef PA_USE_DS
|
||||||
|
#define PA_USE_DS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PA_USE_WMME
|
||||||
|
#define PA_USE_WMME 0
|
||||||
|
#elif (PA_USE_WMME != 0) && (PA_USE_WMME != 1)
|
||||||
|
#undef PA_USE_WMME
|
||||||
|
#define PA_USE_WMME 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PA_USE_WASAPI
|
||||||
|
#define PA_USE_WASAPI 0
|
||||||
|
#elif (PA_USE_WASAPI != 0) && (PA_USE_WASAPI != 1)
|
||||||
|
#undef PA_USE_WASAPI
|
||||||
|
#define PA_USE_WASAPI 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PA_USE_WDMKS
|
||||||
|
#define PA_USE_WDMKS 0
|
||||||
|
#elif (PA_USE_WDMKS != 0) && (PA_USE_WDMKS != 1)
|
||||||
|
#undef PA_USE_WDMKS
|
||||||
|
#define PA_USE_WDMKS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2380,8 +2380,8 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
|
||||||
reports the added latency separately.
|
reports the added latency separately.
|
||||||
*/
|
*/
|
||||||
PA_DEBUG(("PaAsio : ASIO InputLatency = %ld (%ld ms),\n added buffProc:%ld (%ld ms),\n added blocking:%ld (%ld ms)\n",
|
PA_DEBUG(("PaAsio : ASIO InputLatency = %ld (%ld ms),\n added buffProc:%ld (%ld ms),\n added blocking:%ld (%ld ms)\n",
|
||||||
stream->inputLatency,
|
stream->asioInputLatencyFrames,
|
||||||
(long)( stream->inputLatency * (1000.0 / sampleRate) ),
|
(long)( stream->asioInputLatencyFrames * (1000.0 / sampleRate) ),
|
||||||
PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor),
|
PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor),
|
||||||
(long)( PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor) * (1000.0 / sampleRate) ),
|
(long)( PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor) * (1000.0 / sampleRate) ),
|
||||||
PaUtil_GetBufferProcessorInputLatency(&stream->blockingState->bufferProcessor) + (lBlockingBufferSize / framesPerBuffer - 1) * framesPerBuffer,
|
PaUtil_GetBufferProcessorInputLatency(&stream->blockingState->bufferProcessor) + (lBlockingBufferSize / framesPerBuffer - 1) * framesPerBuffer,
|
||||||
|
|
@ -2471,8 +2471,8 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
|
||||||
reports the added latency separately.
|
reports the added latency separately.
|
||||||
*/
|
*/
|
||||||
PA_DEBUG(("PaAsio : ASIO OutputLatency = %ld (%ld ms),\n added buffProc:%ld (%ld ms),\n added blocking:%ld (%ld ms)\n",
|
PA_DEBUG(("PaAsio : ASIO OutputLatency = %ld (%ld ms),\n added buffProc:%ld (%ld ms),\n added blocking:%ld (%ld ms)\n",
|
||||||
stream->outputLatency,
|
stream->asioOutputLatencyFrames,
|
||||||
(long)( stream->inputLatency * (1000.0 / sampleRate) ),
|
(long)( stream->asioOutputLatencyFrames * (1000.0 / sampleRate) ),
|
||||||
PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor),
|
PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor),
|
||||||
(long)( PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor) * (1000.0 / sampleRate) ),
|
(long)( PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor) * (1000.0 / sampleRate) ),
|
||||||
PaUtil_GetBufferProcessorOutputLatency(&stream->blockingState->bufferProcessor) + (lBlockingBufferSize / framesPerBuffer - 1) * framesPerBuffer,
|
PaUtil_GetBufferProcessorOutputLatency(&stream->blockingState->bufferProcessor) + (lBlockingBufferSize / framesPerBuffer - 1) * framesPerBuffer,
|
||||||
|
|
@ -2527,15 +2527,15 @@ static PaError OpenStream( struct PaUtilHostApiRepresentation *hostApi,
|
||||||
// the code below prints the ASIO latency which doesn't include the
|
// the code below prints the ASIO latency which doesn't include the
|
||||||
// buffer processor latency. it reports the added latency separately
|
// buffer processor latency. it reports the added latency separately
|
||||||
PA_DEBUG(("PaAsio : ASIO InputLatency = %ld (%ld ms), added buffProc:%ld (%ld ms)\n",
|
PA_DEBUG(("PaAsio : ASIO InputLatency = %ld (%ld ms), added buffProc:%ld (%ld ms)\n",
|
||||||
stream->inputLatency,
|
stream->asioInputLatencyFrames,
|
||||||
(long)((stream->inputLatency*1000)/ sampleRate),
|
(long)((stream->asioInputLatencyFrames*1000)/ sampleRate),
|
||||||
PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor),
|
PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor),
|
||||||
(long)((PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor)*1000)/ sampleRate)
|
(long)((PaUtil_GetBufferProcessorInputLatency(&stream->bufferProcessor)*1000)/ sampleRate)
|
||||||
));
|
));
|
||||||
|
|
||||||
PA_DEBUG(("PaAsio : ASIO OuputLatency = %ld (%ld ms), added buffProc:%ld (%ld ms)\n",
|
PA_DEBUG(("PaAsio : ASIO OuputLatency = %ld (%ld ms), added buffProc:%ld (%ld ms)\n",
|
||||||
stream->outputLatency,
|
stream->asioOutputLatencyFrames,
|
||||||
(long)((stream->outputLatency*1000)/ sampleRate),
|
(long)((stream->asioOutputLatencyFrames*1000)/ sampleRate),
|
||||||
PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor),
|
PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor),
|
||||||
(long)((PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor)*1000)/ sampleRate)
|
(long)((PaUtil_GetBufferProcessorOutputLatency(&stream->bufferProcessor)*1000)/ sampleRate)
|
||||||
));
|
));
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@
|
||||||
@ingroup hostapi_src
|
@ingroup hostapi_src
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h> /* strlen() */
|
#include <string.h> /* strlen() */
|
||||||
|
|
@ -76,6 +75,9 @@
|
||||||
#include "pa_win_waveformat.h"
|
#include "pa_win_waveformat.h"
|
||||||
#include "pa_win_wdmks_utils.h"
|
#include "pa_win_wdmks_utils.h"
|
||||||
|
|
||||||
|
#ifndef PA_USE_WMME
|
||||||
|
#error "Portaudio internal error: PA_USE_WMME=0/1 not defined. pa_hostapi.h should ensure that it is."
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
|
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
|
||||||
#pragma comment( lib, "dsound.lib" )
|
#pragma comment( lib, "dsound.lib" )
|
||||||
|
|
@ -678,7 +680,7 @@ static PaError AddOutputDeviceInfoFromDirectSound(
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifndef PA_NO_WMME
|
#if PA_USE_WMME
|
||||||
if( caps.dwFlags & DSCAPS_EMULDRIVER )
|
if( caps.dwFlags & DSCAPS_EMULDRIVER )
|
||||||
{
|
{
|
||||||
/* If WMME supported, then reject Emulated drivers because they are lousy. */
|
/* If WMME supported, then reject Emulated drivers because they are lousy. */
|
||||||
|
|
@ -894,7 +896,7 @@ static PaError AddInputDeviceInfoFromDirectSoundCapture(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef PA_NO_WMME
|
#if PA_USE_WMME
|
||||||
if( caps.dwFlags & DSCAPS_EMULDRIVER )
|
if( caps.dwFlags & DSCAPS_EMULDRIVER )
|
||||||
{
|
{
|
||||||
/* If WMME supported, then reject Emulated drivers because they are lousy. */
|
/* If WMME supported, then reject Emulated drivers because they are lousy. */
|
||||||
|
|
@ -2832,5 +2834,3 @@ static signed long GetStreamWriteAvailable( PaStream* s )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,10 @@
|
||||||
#define DYNAMIC_GUID(data) DYNAMIC_GUID_THUNK(data)
|
#define DYNAMIC_GUID(data) DYNAMIC_GUID_THUNK(data)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */
|
||||||
|
#pragma comment( lib, "setupapi.lib" )
|
||||||
|
#endif
|
||||||
|
|
||||||
/* use CreateThread for CYGWIN, _beginthreadex for all others */
|
/* use CreateThread for CYGWIN, _beginthreadex for all others */
|
||||||
#ifndef __CYGWIN__
|
#ifndef __CYGWIN__
|
||||||
#define CREATE_THREAD (HANDLE)_beginthreadex( 0, 0, ProcessingThreadProc, stream, 0, &stream->processingThreadId )
|
#define CREATE_THREAD (HANDLE)_beginthreadex( 0, 0, ProcessingThreadProc, stream, 0, &stream->processingThreadId )
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@
|
||||||
@brief Win32 host API initialization function table.
|
@brief Win32 host API initialization function table.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "pa_hostapi.h"
|
#include "pa_hostapi.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
@ -65,27 +64,25 @@ PaError PaWasapi_Initialize( PaUtilHostApiRepresentation **hostApi, PaHostApiInd
|
||||||
PaUtilHostApiInitializer *paHostApiInitializers[] =
|
PaUtilHostApiInitializer *paHostApiInitializers[] =
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifndef PA_NO_WMME
|
#if PA_USE_WMME
|
||||||
PaWinMme_Initialize,
|
PaWinMme_Initialize,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PA_NO_DS
|
#if PA_USE_DS
|
||||||
PaWinDs_Initialize,
|
PaWinDs_Initialize,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PA_NO_ASIO
|
#if PA_USE_ASIO
|
||||||
PaAsio_Initialize,
|
PaAsio_Initialize,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PA_NO_WASAPI
|
#if PA_USE_WASAPI
|
||||||
PaWasapi_Initialize,
|
PaWasapi_Initialize,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
#if PA_USE_WDMKS
|
||||||
#ifndef PA_NO_WDMKS
|
PaWinWdm_Initialize,
|
||||||
PaWinWdm_Initialize,
|
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
|
|
||||||
//PaSkeleton_Initialize, /* just for testing */
|
//PaSkeleton_Initialize, /* just for testing */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
@brief List available devices, including device information.
|
@brief List available devices, including device information.
|
||||||
@author Phil Burk http://www.softsynth.com
|
@author Phil Burk http://www.softsynth.com
|
||||||
|
|
||||||
@note Define PA_NO_ASIO to compile this code on Windows without
|
@note Define PA_USE_ASIO=0 to compile this code on Windows without
|
||||||
ASIO support.
|
ASIO support.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
#include "portaudio.h"
|
#include "portaudio.h"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#ifndef PA_NO_ASIO
|
#if PA_USE_ASIO
|
||||||
#include "pa_asio.h"
|
#include "pa_asio.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -167,7 +167,7 @@ int main(void)
|
||||||
printf( "Default high output latency = %8.3f\n", deviceInfo->defaultHighOutputLatency );
|
printf( "Default high output latency = %8.3f\n", deviceInfo->defaultHighOutputLatency );
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#ifndef PA_NO_ASIO
|
#if PA_USE_ASIO
|
||||||
/* ASIO specific latency information */
|
/* ASIO specific latency information */
|
||||||
if( Pa_GetHostApiInfo( deviceInfo->hostApi )->type == paASIO ){
|
if( Pa_GetHostApiInfo( deviceInfo->hostApi )->type == paASIO ){
|
||||||
long minLatency, maxLatency, preferredLatency, granularity;
|
long minLatency, maxLatency, preferredLatency, granularity;
|
||||||
|
|
@ -184,7 +184,7 @@ int main(void)
|
||||||
else
|
else
|
||||||
printf( "ASIO buffer granularity = %ld\n", granularity );
|
printf( "ASIO buffer granularity = %ld\n", granularity );
|
||||||
}
|
}
|
||||||
#endif /* !PA_NO_ASIO */
|
#endif /* PA_USE_ASIO */
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
printf( "Default sample rate = %8.2f\n", deviceInfo->defaultSampleRate );
|
printf( "Default sample rate = %8.2f\n", deviceInfo->defaultSampleRate );
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue