Commit graph portaudio/src/hostapi
Author SHA1 Message Date
dmitrykos
779ef401ac wasapi: fixed initialization stage of PaWasapi_Initialize() which was returning error if WASAPI wasn't found (for example under Windows XP), this was causing PA's whole initialization to fail completely 2010-03-04 11:02:06 +00:00
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
rossb
1aaa8dab51 fix for undefined DirectSoundFullDuplex8 when PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE wasn't defined. thanks Dmitry 2010-02-03 00:28:29 +00:00
rossb
fa4ad81354 Added code to PortAudio/DirectSound to use DX8 DirectSoundFullDuplexCreate API for full duplex streams where available. Define PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE in your project to enable this feature. 2010-02-02 09:01:13 +00:00
rossb
d9af10e0c9 implemented paPrimeOutputBuffersUsingStreamCallback for DirectSound (previously this was the default). invoke some buffer reset code to from StartStream (actually ClearOutputBuffer) instead of OpenStream which should give cleaner startup behavior if the stream is started and stopped multiple times. fixed leaks under error in InitOutputBuffer and fixed leak of primary buffer (previously was never released) 2010-01-24 13:17:31 +00:00
rossb
011c1c0880 DirectSound don't crash when starting a blocking io (non-callback) stream. blocking io still not implemented though. 2010-01-24 12:09:34 +00:00
rossb
0c322e7aba reworked DirectSound stream completion to correctly flush the buffer processor and zero DS buffers when the callback returns paComplete or paAbort. resolves ticket #86. use test patest_stop_playout.c to verify. 2010-01-24 11:42:56 +00:00
rossb
91d13a5866 clean up resources better if DirectSound OpenStream fails 2010-01-24 09:34:48 +00:00
rossb
ecd151713f fixes to DirectSound implementation to work in unicode builds 2010-01-24 09:21:50 +00:00
rossb
1349e5a344 use a win32 Event object (aka condition variable) to signal timer process completio to Pa_StopStream in DirectSound implementation. resolves race condition when stopping direct sounds streams. 2010-01-24 09:20:23 +00:00
rossb
dc6f3c8ec2 added cast to IsDebuggerPresentPtr, fixes compilation of asio on some systems 2009-12-10 08:09:21 +00:00
rossb
0263158765 derive ds output channel count from speaker configuration when pnpInterface is unavailable (eg wavemapper). Thanks to Dmitry Kostjuchenko for the patch. 2009-12-09 01:55:50 +00:00
rossb
ed9e516fca fix for bad x64 DWORD_PTR define 2009-12-09 01:42:59 +00:00
rossb
61d1252b34 Fixed bug (when PAWIN_USE_WDMKS_DEVICE_INFO is defined) where wmme device channel count would be incorrect for default device resulting in distorted sound if user tries to open device with more channels than device can handle. Thanks to Dmitry Kostjuchenko for the patch. 2009-12-09 01:31:44 +00:00
rossb
bdc279551c Patch from Dmitry Kostjuchenko: Fixes x64 issue with mis-casting DWORD_PTRs to DWORDs, support proper conversion of device names in UNICODE builds, use of CreateThread instead of _beginthreadex with cygwin. 2009-12-08 09:26:33 +00:00
bjornroche
9e8176d71e added and removed dummy property listener as this may be required by OS X 10.6. Also, returned no error on property timeout. 2009-12-02 17:48:05 +00:00
bjornroche
72b656b6a6 cleanup of property change checking and error handling 2009-12-01 15:58:37 +00:00
bjornroche
b7e64ed868 added return char 2009-12-01 15:38:55 +00:00
bjornroche
3a3bef5adb removed some redundant code 2009-12-01 15:38:08 +00:00
bjornroche
8901efea70 fixes for hardware samplerate changes 2009-11-30 21:07:43 +00:00
bjornroche
21a768824d added assert back as suggested by Dmitry Kostjuchenko 2009-11-18 21:07:31 +00:00
bjornroche
c55f47de78 fix for ringbuffer problem on 64-bit macs. Also, this should make it possible to migrate away from using the long datatype on pa_ringbuffer. 2009-11-18 16:09:05 +00:00
bjornroche
f0279d9be3 added two includes which should not be necessary but seem to help compiling in snow leopard 2009-10-22 17:51:07 +00:00
rossb
0e141b2d19 removed reaper asio driver blacklisting 2009-06-16 16:12:41 +00:00
aknudsen
a9238346fe Fix latency calculation in PA ALSA 2009-06-03 18:57:56 +00:00
aknudsen
822c292009 Add PA ALSA extension to allow setting number of retries when busy 2009-05-24 17:02:10 +00:00
aknudsen
85a522fc4a Apply Kevin Kofler's non-mmap patch 2009-05-24 16:54:22 +00:00
rossb
836bd46253 fix for half duplex and build issues from Toni Wilen. 2009-05-14 14:37:37 +00:00
davidv
a321952e95 fixed a bug in WAVEFORMATEX casts, and warnings on sprintf 2009-04-04 20:04:53 +00:00
rossb
e1cf376aa6 fixed bug in asio blocking i/o stream initialization which would cause crash (bad ptr). enabled timeout code in read/writestream. patch from sven fischer 2009-03-13 16:31:28 +00:00
rossb
5bf449b175 always disable wmme clip and dither if an spdif passthrough wave format is requested 2009-03-08 08:10:55 +00:00
rossb
78131d9a78 minor code logic cleanup 2009-03-08 07:15:03 +00:00
rossb
eb0ad74411 wmme host api: take account of paWinMmeWaveFormatDolbyAc3Spdif and paWinMmeWaveFormatWmaSpdif flags in Pa_IsFormatSupported 2009-01-29 06:28:30 +00:00
rossb
1de1b421f9 initial support for ac3+wma spdif passthrough for pa_win_wmme. see flags in pa_win_wmme.h. flags currently work for OpenStream but are ignored for IsFormatSupported 2009-01-21 12:07:32 +00:00
rossb
b4b747fc10 factored asio sample rate setting code into separate functions. added PaAsio_SetStreamSampleRate() function. 2009-01-05 09:08:44 +00:00
rossb
24a7e81401 cleaned up logic related to theAsioStream singleton pointer (now gets set in OpenStream and cleared in CloseStream. added callback-completion waiting to StopStream (was only in AbortStream before). cleaned up isStopped/isActive logic 2009-01-05 08:59:14 +00:00
rossb
96fd679385 cleanup: moved blocking stream asio callback function next to other blocking related code 2009-01-04 08:28:42 +00:00
bjornroche
fe733fde8d fixed bug as suggested by Michael allen. This fixes issues with blocking IO on the mac when using different number of channels for input and output. 2008-10-24 14:10:04 +00:00
gordon_gidluck
9f62980024 ticket#84 2008-10-05 15:15:34 +00:00
gordon_gidluck
d8a17a3854 ticket#84 2008-10-05 15:15:15 +00:00