45 Commits

Author SHA1 Message Date
dmitrykos
c3fee03ff1 wasapi: support Exclusive mode on UWP (use new function PaWasapi_SetDefaultInterfaceId to set device's interface id to make Exclusive mode work);
- support for explicit 8.24 format (24-bit inside 32-bit container) by specifying paCustomFormat (see IMPORTANT notes in the header file);
 - new flag paWinWasapiExplicitSampleFormat to force explicit format and avoid fallback to a closest working;
 - new function PaWasapi_GetDeviceCurrentFormat to get device format of the opened stream;
 - support PaWasapi_ThreadPriorityXXX API on UWP to boot thread priority;
 - improved selection of the closest format in Exclusive mode.
2018-09-06 20:45:22 +03:00
Dmitry Kostjuchenko
64ad96ea3c Merge branch 'winrt' into 'master'
New PaWasapi_GetAudioClient() API and workaround to get real Windows version and thus use correct AudioClient interface version.

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6574173
2018-07-01 10:04:04 +00:00
dmitrykos
a802290e83 wasapi: new PaWasapi_GetAudioClient() API to get pointer to IAudioClient from PaStream, workaround to get real Windows version in order to be able to create correct version of IAudioClient interface (Windows 10 was reported as Windows 8 when using just GetVersion()) 2018-06-30 12:21:59 +03:00
Phil Burk
8dc6d59877 Merge branch 'ticket_275_pass_void' into 'master'
Add void argument to Pa_GetVersionInfo()

+1: Anonymous

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/6415893
2018-05-26 04:49:10 +00:00
dmitrykos
d3e65ce690 wasapi: correction to PaWasapi_UpdateDeviceList() API by making it unavailable by default unless PA_WASAPI_MAX_CONST_DEVICE_COUNT is explicitly defined 2018-04-02 22:15:49 +03:00
dmitrykos
eb62287494 wasapi: new WASAPI specific API PaWasapi_UpdateDeviceList() which allows to update WASAPI device list dynamically without a need to call Pa_Terminate() and then Pa_Initialize().
This new implementation overcomes current limitation of Pa_GetDeviceCount() API which gives constant device count by making WASAPI device list constant (32 devices by default) where 32 device slots can either be filled with a real device info or be empty for a future device changes.

Constant device list size can be altered by PA_WASAPI_MAX_CONST_DEVICE_COUNT define during a compile time. If PA_WASAPI_MAX_CONST_DEVICE_COUNT is set to 0 then PaWasapi_UpdateDeviceList() will be unavailable as well as dynamic device list update functionality.

This implementation also detects the audio device format change if user alters it via Windows Audio Controller GUI.

This implementation also makes WASAPI backend ready for a future implementation of device list updates via PortAudio public API. See internal PaError UpdateDeviceList().
2018-04-02 21:50:16 +03:00
Ross Bencina
12f967356b Added Available as of version 19.6.0 doc comments for new wasapi host-api-specific APIs. 2016-09-25 17:55:12 +10:00
Ross Bencina
e50b31bd40 Update doxygen comments for WDM/KS to indicate that new APIs are available in 19.5.0 2016-09-25 17:49:15 +10:00
Ross Bencina
d940dcb8b8 Fix formatting of version API doxygen comments in portaudio.h. Add additional documentation details, see also, and version information (e.g. Available as of 19.5.0). 2016-09-25 17:34:16 +10:00
Phil Burk
b69214bcb4 Merge branch 'ticket_252_nohang' into 'master'
pa_mac_core_blocking: fix hang when running stream stopped (fixed merge)

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3829453
2016-09-24 16:01:14 +00:00
Ross Bencina
c2326aa8f0 updated doc comments to reflect that versionControlRevision is now a git revision hash 2016-09-23 21:10:21 +10:00
Phil Burk
a38df79293 pa_mac_core_blocking: Fix timeout.
Change alignment of comment.
2016-09-21 15:46:30 -07:00
Phil Burk
0bc7cf9465 pa_mac_core_blocking: fix hang when running stream stopped
One thread was filling the buffer while
another thread was waiting for it to be empty.

Add thread safety warnings.

Fix ticket #252
2016-09-13 18:49:00 -07:00
Phil Burk
ed463ba658 Normalize all the line endings 2016-05-18 22:13:20 -07:00
dmitrykos
4e194eaecf wasapi: support for setting the WASAPI's AudioClientProperties options via PaWasapiStreamInfo struct (__IAudioClient2_INTERFACE_DEFINED__ must be defined by Windows SDK (for Windows 8 and up) to have effect from these new options, otherwise it will be noop) 2015-10-19 11:03:31 +00:00
philburk
199e88fa66 Add Pa_GetVersionInfo()
Add scripts to update pa_svnrevision.h
2015-04-10 04:00:09 +00:00
philburk
cd6b1868de Add version numbering with major.minor.subminor format.
Bump version to 19.5.0
2015-03-03 17:28:15 +00:00
robiwan
4aa340a57e CMake: Added PA_WDMKS_NO_KSGUID_LIB to WDMKS and solution folders
WDMKS: Support for default device (see caveat for input devices though in ScanDeviceInfos)
       Added possibility to set channel mask
2014-04-09 14:27:21 +00:00
bejayoharen
109bb6fe1f minor fix for OS X 10.7: include AudioToolbox 2012-10-07 15:31:25 +00:00
philburk
468c6bceb7 Fix some typos in docs.
Fix some compiler warnings for win32.
2012-09-01 00:10:13 +00:00
robiwan
c5874f23c4 Merged WaveRT branch (excluding stuff pertaining to ticket #169) 2012-02-14 09:32:57 +00:00
rossb
4b2f4dcd37 added function to query core audio buffer size range 2012-01-11 13:03:11 +00:00
rossb
e996fc8ff6 Implemented host-API specific mechanism for setting DirectSound buffer sizes in frames. resolves #129 2011-11-24 18:11:33 +00:00
rossb
91d6a84b55 added stream callback documentation describing real-time constraints including not calling non-real-time code, and that it should be safe to consume 70% or more of available CPU time in the callback. resolves #96 2011-08-25 17:44:01 +00:00
rossb
4939e41248 Fixed directsound PaDeviceInfo default latency and PaStreamInfo latency fields. Fixed host buffer size calculations based on suggestedLatency parameters. Switched to using 48kHz as default sample rate when other info isn't available. Fixed edge case in TimeSlice() where a full duplex stream could read data even though either input or output reported zero bytes available. Renamed some variables for clarity. Fixes ticket #160 (PaStreamInfo latency). Addresses #122 (although we're still using old default latency values from V18 codebase). Addresses #99 (correct interpretation of suggestedLatency down to zero). 2011-08-25 15:59:32 +00:00
rossb
ddc1a3ce11 cleaned up doc comments for PaStreamCallbackTimeInfo and PaStreamCallbackResult 2011-07-20 03:24:00 +00:00
bjornroche
7d6950a757 Fix for doxygen for pa_mac_core.h. Ticket #70. Patch from chris share modified slightly. 2011-07-09 15:01:52 +00:00
rossb
1938ce6628 renamed PaAsio_GetAvailableLatencyValues to PaAsio_GetAvailableBufferSizes and included a backward compatibility #define. see ticket #111. 2011-05-02 15:49:20 +00:00
dmitrykos
9c4c92fef6 alsa:
- implemented dynamic ALSA loading, you shall define PA_ALSA_DYNAMIC when compiling PortAudio library, by default PortAudio will use compile time linkage;
- added PA_ALSA_PATHNAME define to redefine ALSA library path and filename to some other name and location, has effect only together with PA_ALSA_DYNAMIC;
- added extension function (PaAlsa_SetLibraryPathName) which allows to set ALSA library path and filename during application run-time overwriting default set by PA_ALSA_PATHNAME during compilation;
- added API compatibility with Android OS (although ALSA may not be available on your device and usually requires 'root' access rights to open an audio device), some missing ALSA functions are replaced with stubs (needs more input from interested parties), to compile on Android you need to add ALSA headers (get it from Android GIT source-code tree) to compiler's searchable path.
2011-02-11 00:15:51 +00:00
rossb
5027e95e70 corrected typos as per jf_menards's patch in ticket #58 2011-02-05 14:33:29 +00:00
rossb
7060043727 added #include portaudio.h to pa_mac_core.h so it is consistent with all other host-api specific headers. closes ticket #7 2011-02-04 10:41:58 +00:00
rossb
76c3e0f31c clarified documentation for PaTime and Pa_GetStreamTime 2011-02-02 17:29:26 +00:00
rossb
edf4166f07 removed old doxygen @todo comments 2011-02-01 13:11:22 +00:00
rossb
e286d2c10a removed doxygen TODO items from pa_asio implementation. migrated them to new trac tasks: #103, #104, #105, #106, #107, #108, #109, #110, #111 2011-02-01 12:52:14 +00:00
rossb
e47e43deb8 improved documentation of paNoInterleaved flag 2010-10-14 03:34:34 +00:00
dmitrykos
9c7974c76c wasapi:
- fixed alignment missing for host buffer if overall buffer size was set to less than 3ms that results in device timeout
 - advanced Event driven mode and extended the range of host buffer size which can operate in this mode up up to 20.66 ms, e.g. your device buffer size will vary in range 3 - 20.66 ms, if goes above then Poll driven mode is switched on automatically
2010-08-06 20:25:07 +00:00
dmitrykos
f2badb7725 wasapi:
- added functionality to enumerate jacks and their description
 - added example which demonstrates jacks enumeration technique
Thanks Reid Bishop for providing the idea for this extended functionality and patch with implementation.
2010-07-23 10:04:03 +00:00
dmitrykos
50986ea63b wasapi:
- new method PaWasapi_GetFramesPerHostBuffer which allows to get number of input/output frames per host (WASAPI) buffer, this method helps to find out maximal values for PaWasapiHostProcessorCallback
 - documentation fixes
2010-04-16 08:31:19 +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
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
aknudsen
822c292009 Add PA ALSA extension to allow setting number of retries when busy 2009-05-24 17:02:10 +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
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
6cff10c3f4 doccomment for PaAsio_SetStreamSampleRate() 2009-01-21 10:20:42 +00:00
bjornroche
c1e1d067d2 moved trunk into place 2008-03-20 14:24:39 +00:00