cannam@124: Hello cannam@124: cannam@124: This is a small list of steps in order to build portaudio cannam@124: (Currently v19-devel) into a VS2005 DLL and lib file. cannam@124: This DLL contains all 5 current Win32 PA APIS (MME/DS/ASIO/WASAPI/WDMKS) cannam@124: cannam@124: 1)Copy the source dirs that comes with the ASIO SDK inside src\hostapi\asio\ASIOSDK cannam@124: so you should now have example: cannam@124: cannam@124: portaudio19svn\src\hostapi\asio\ASIOSDK\common cannam@124: portaudio19svn\src\hostapi\asio\ASIOSDK\host cannam@124: portaudio19svn\src\hostapi\asio\ASIOSDK\host\sample cannam@124: portaudio19svn\src\hostapi\asio\ASIOSDK\host\pc cannam@124: portaudio19svn\src\hostapi\asio\ASIOSDK\host\mac (not needed) cannam@124: cannam@124: You dont need "driver" cannam@124: cannam@124: To build without ASIO (or another Host API) see the "Building without ASIO support" section below. cannam@124: cannam@124: 2) cannam@124: *If you have Visual Studio 6.0*, please make sure you have it updated with the latest (and final) cannam@124: microsoft libraries for it, namely: cannam@124: cannam@124: Service pack 5: cannam@124: Latest known URL: cannam@124: http://msdn2.microsoft.com/en-us/vstudio/aa718363.aspx cannam@124: Yes there EXISTS a service pack 6 , but the processor pack (below) isnt compatible with it. cannam@124: cannam@124: Processor Pack(only works with above SP5) cannam@124: Latest known URL: cannam@124: http://msdn2.microsoft.com/en-us/vstudio/Aa718349.aspx cannam@124: This isn't absolutely required for portaudio, but if you plan on using SSE intrinsics and similar things. cannam@124: Up to you to decide upon Service pack 5 or 6 depending on your need for intrinsics. cannam@124: cannam@124: Platform SDK (Feb 2003) : cannam@124: Latest known URL: cannam@124: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm cannam@124: (This will allow your code base to be x64 friendly, with correct defines cannam@124: for LONG_PTR and such) cannam@124: NOTE A) Yes you have to use IE activex scripts to install that - wont work in Firefox, you cannam@124: may have to temporarily change tyour default browser(aint life unfair) cannam@124: NOTE B) Dont forget to hit "Register PSDK Directories with Visual Studio". cannam@124: you can make sure its right in VC6 if you open tools/options/directories/include files and you see SDK 2003 as the FIRST entry cannam@124: (it must be the same for libs) cannam@124: cannam@124: DirectX 9.0 SDK Update - (Summer 2003) cannam@124: Latest known URL: cannam@124: http://www.microsoft.com/downloads/details.aspx?familyid=9216652f-51e0-402e-b7b5-feb68d00f298&displaylang=en cannam@124: Again register the links in VC6, and check inside vc6 if headers are in second place right after SDk 2003 cannam@124: cannam@124: *If you have 7.0(VC.NET/2001) or 7.1(VC.2003) * cannam@124: then I suggest you open portaudio.dsp (and convert if needed) cannam@124: cannam@124: *If you have Visual Studio 2005 * (or later), I suggest you open the portaudio.sln file cannam@124: which contains 2 projects (portaudio & portaudio_static) each with 6 configurations: Win32/x64 in both Debug, Release and ReleaseMinDependency, cannam@124: last of which removes dependency of all but basic OS system DLLs. cannam@124: cannam@124: hit compile and hope for the best. cannam@124: cannam@124: 3)Now in any project, in which you require portaudio, cannam@124: you can just link with portaudio_x86.lib, (or _x64) and of course include the cannam@124: relevant headers cannam@124: (portaudio.h, and/or pa_asio.h , pa_x86_plain_converters.h) See (*) cannam@124: cannam@124: 4) Your new exe should now use portaudio_xXX.dll. cannam@124: cannam@124: cannam@124: Have fun! cannam@124: cannam@124: (*): you may want to add/remove some DLL entry points. cannam@124: Right now those 6 entries are _not_ from portaudio.h cannam@124: cannam@124: (from portaudio.def) cannam@124: (...) cannam@124: PaAsio_GetAvailableLatencyValues @50 cannam@124: PaAsio_ShowControlPanel @51 cannam@124: PaUtil_InitializeX86PlainConverters @52 cannam@124: PaAsio_GetInputChannelName @53 cannam@124: PaAsio_GetOutputChannelName @54 cannam@124: PaUtil_SetLogPrintFunction @55 cannam@124: cannam@124: cannam@124: *** Building without ASIO support *** cannam@124: cannam@124: To build PortAudio without ASIO support you need to: cannam@124: A. Make sure your project doesn't try to build any ASIO SDK files. cannam@124: If you're using one of the shipped projects, remove the ASIO related files cannam@124: from the project. cannam@124: cannam@124: B. Make sure your project doesn't try to build the PortAudio ASIO cannam@124: implementation files: cannam@124: src/hostapi/pa_asio.cpp cannam@124: src/hostapi/iasiothiscallresolver.cpp cannam@124: If you're using one of the shipped projects remove them from the project. cannam@124: cannam@124: C. Set the PA_USE_ASIO preprocessor symbol to zero (i.e. PA_USE_ASIO=0) in the project properties. cannam@124: In VS2005 this can be added under cannam@124: Project Properties > Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions cannam@124: cannam@124: Setting PA_USE_ASIO=0 stops src/os/win/pa_win_hostapis.c cannam@124: from trying to initialize the PA ASIO implementation. cannam@124: cannam@124: D. Remove PaAsio_* entry points from portaudio.def, or comment them out with ; cannam@124: cannam@124: cannam@124: A similar procedure can be used to omit any of the other host APIs from the cannam@124: build. The relevant preprocessor symbols used by pa_win_hostapis.c are: cannam@124: PA_USE_WMME, PA_USE_DSOUND, PA_USE_ASIO, PA_USE_WASAPI and PA_USE_WDMKS cannam@124: cannam@124: ----- cannam@124: David Viens, davidv@plogue.com cannam@124: Robert Bielik, robert@xponaut.se