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