Commit graph portaudio/src/hostapi/wasapi/pa_win_wasapi.cpp
Author SHA1 Message Date
dmitrykos
dcf2adaab7 +++ wasapi:
- converted PA WASAPI module to pure C
 - implemented compilation support for GCC [MinGW(32-bit)/MinGW64(64-bit)] compiler, special notes regarding MinGW compilation are included in 'readme.txt' file
2010-03-03 22:57:16 +00:00
dmitrykos
33e54c8adf +++ wasapi: corrected PaWasapi_Initialize() behavior in case of OS back-end failure: WASAPI will not be added to a list of available APIs now (instead of throwing error to InitializeHostApis() that causes PA initialization break), error is thrown only on low-memory condition (default behavior) 2010-03-02 19:08:13 +00:00
dmitrykos
84cdf84588 wasapi:
- removed dependency from strsafe.h
- fixed crash in InitializeHostApis() if PaWasapi_Initialize() failed due to internal WASAPI error (error code was returned as paNoError in such case)
2010-03-02 17:42:36 +00:00
dmitrykos
885ae2d3f3 fixed dummy compilation of pa_win_wasapi.cpp using MinGW(GCC) compilers by adding missing Avrt type 2010-03-02 12:17:03 +00:00
dmitrykos
bb8331b47d +++ wasapi: Event-driven/Full-Duplex/Exclusive mode will be calling user-provided callbacks simultaneously when both input/output buffers are ready for IO 2010-02-26 08:57:44 +00:00
dmitrykos
d2e38acc08 wasapi: improved paFramesPerBufferUnspecified handling in case device does not provide default period, paInvalidSampleRate will be returned if sampleRate parameter is 0 for Pa_IsFormatSupported/Pa_OpenStream 2010-02-20 12:03:57 +00:00
dmitrykos
15aeb7c1c0 wasapi: fixed capturing callback not called if paWinWasapiPolling flag specified, or WOW64 workaround is used, same bug was causing div/0 crash 2010-02-20 11:55:20 +00:00
dmitrykos
89406b53db windows WASAPI fixes/improvements:
- fixed dependency of framesPerBuffer parameter in Pa_OpenStream and latency (now only latency setting affects device latency which is correct behavior);
- paFramesPerBufferUnspecified is now supported for Pa_OpenStream;
- sound distortion fixed for Shared mode if framesPerBuffer is lower than device limit and when latency was set to 0;
- fixed timeout for Exclusive mode due to buffer misalignment;
- improved precision of DAC/ADC time for running stream;
- avoided memory leaks on failure of Pa_OpenStream;
- NULL checks on stream pointer for all external methods;
- correct host buffer mode for paWinWasapiPolling mode to deliver fixed number of frames to user space;
- implemented workaround for Vista x64 WOW64 bug if Event-mode is used for Shared mode (due to incorrect Event signaling audio dropouts were happening): will fall back to safe Polling method automatically.
2010-02-19 11:16:01 +00:00
dmitrykos
75e59cb874 improved PaWasapi_ThreadPriorityBoost by providing enum PaWasapiThreadPriority with explicit thread priority values for convenience. it is possible to override default thread priority setting for Event/Poll-driven modes by specifying new flag paWinWasapiThreadPriority and setting priority value through PaWasapiStreamInfo::threadPriority member. 2010-02-17 10:11:40 +00:00
dmitrykos
8185016b2a fixed crash on NULL pointer usage if hostApiSpecificStreamInfo was NULL in Pa_OpenStream method 2010-02-16 11:52:19 +00:00
dmitrykos
01a0391237 finished WASAPI implementation:
- Callback/Blocking interface
 - Playback/Capture
 - Shared/Exclusive mode
to compile you must have installed recent Windows SDK(Vista SDK or higher) and min Visual Studio 2005 SP1. WASAPI is enabled by default, to disable you must define PA_NO_WASAPI prior compilation.
2010-02-16 09:46:08 +00:00
davidv
a321952e95 fixed a bug in WAVEFORMATEX casts, and warnings on sprintf 2009-04-04 20:04:53 +00:00
gordon_gidluck
28c21245bd ticket #84. Fix for Cygwin. Added a #define called CREATE_THREAD. Cygwin will call CreateThread, whereas other dev environments will generate code to call _beginthreadex. endthreadex was handled in the same way. 2008-10-05 15:14:25 +00:00
gordon_gidluck
5c79d5bcaf ticket#84. Ran into a problem with conversion from CreateFile to _beginthreadex. Changing it back for now. 2008-09-14 15:24:58 +00:00
gordon_gidluck
5e3ba55d49 change CreateThread to _beginthreadex (related to ticket #84) 2008-09-14 14:29:34 +00:00
bjornroche
c1e1d067d2 moved trunk into place 2008-03-20 14:24:39 +00:00