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
dmitrykos
a525c38289
wasapi: fixed failure to initialize when Capture device is not provided by OS, silenced warnings in log functions
2018-01-10 20:58:14 +02:00
Ross Bencina
1bdcb9e413
Merge branch 'winrt' into 'master'
...
WASAPI: corrections for Windows 10 UWP
+1: Ross Bencina, Anonymous, Roland Winklmeier
Merged-on: https://assembla.com/code/portaudio/git/merge_requests/4995123
2017-11-13 06:42:49 +00:00
dmitrykos
bc40f42cba
wasapi: corrected GetWindowsVersion() to return Windows 10 (was max Windows 8)
...
wasapi: use IAudioClient3 for Windows 10 for best compatibility
wasapi: fix compilation when Windows 10 SDK (10.0.15063.0) is used by removing SignalObjectAndWait() definition which creates duplicates with the system defined SignalObjectAndWait() (since 10.0.15063.0 it is supported by the OS again)
2017-05-29 22:44:36 +03:00
Ross Bencina
18b2ab2339
Fix for ticket #257 : MinGW-w64: Inclusion of <winioctl.h> triggers multiple redefinition errors.
2016-10-02 20:34:04 +11: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
Phil Burk
339e875f42
pa_mac_core: fix whitespace and missing semicolon
...
It compiled without the semicolon because it was followed by a VDBUG,
which was followed by a semicolon. The VDBUG was disabled so its
semicolon finished the line above.
2016-09-24 08:53:28 -07:00
Phil Burk
cacc5dc4ba
pa_mac_core: use MAX(inputFrames,outputFrames)
...
Double-check whether the stream does ouput before draining the buffer.
2016-09-22 09:05:38 -07:00
Phil Burk
a38df79293
pa_mac_core_blocking: Fix timeout.
...
Change alignment of comment.
2016-09-21 15:46:30 -07:00
Ross Bencina
1cf10aa43f
remove Microsoft copyright include files from src/hostapi/wasapi/mingw-include
2016-09-17 18:21:52 +10:00
Phil Burk
f17d549093
pa_linux_alsa: fix hang in callback caused by abort
...
The author of this patch is Alan Horstmann.
Fixes ticket #251
2016-09-14 08:50:33 -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
dmitrykos
e1d4ec6664
wasapi: made ActivateAudioInterface_WINRT more universal in terms of getting other audio interfaces, for example IAudioEndpointVolume
2016-09-01 09:00:38 +03:00
dmitrykos
72dd5db968
wasapi: return E_NOINTERFACE in PaActivateAudioInterfaceCompletionHandler::QueryInterface, use C-style API for calling interface functions (in order to be unified with the rest of WASAPI code)
2016-08-29 09:54:49 +03:00
dmitrykos
319b19203a
wasapi: replaced InterlockedCompareExchange with InterlockedOr and added clarifying comment why Interlocked API is used
2016-08-26 22:31:45 +03:00
dmitrykos
dae0d7f8e7
wasapi: reverted the usage of Interlocked APIs for PaWasapiStream::running
2016-08-26 09:43:50 +03:00
dmitrykos
46bce3c39f
wasapi: use InterlockedXXX APIs to secure inter-thread r/w access to variables to avoid possible deadlocks or logic corruption
2016-08-24 22:04:17 +03:00
dmitrykos
ef449bb5bf
wasapi: more cleanup - normalized WIN32_WINRT to PA_WINRT, removed excessive declarations from SignalObjectAndWait, ActivateAudioInterfaceCompletionHandler set of functions
2016-08-14 19:01:20 +03:00
dmitrykos
326549c55e
wasapi: use Windows common Sleep() API instead of PA_Sleep()
...
use GetTickCount64() API which is awailable for Windows Store app instead of _ftime_s()
remove WAVEFORMAT and WAVEFORMATEX declaration and use the corresponding Windows include file instead
2016-08-14 10:52:36 +03:00
dmitrykos
26c0dc4458
wasapi: code cleanup, removed compiler warnings
2016-08-08 21:09:15 +03:00
dmitrykos
2e7545f17f
wasapi: ported to WinRT (UWP)
...
os: compatibility fixes for compilation of PortAudio as Windows Store library (only WASAPI hostapi is compatible with Windows Store APIs)
2016-08-03 22:39:41 +03:00
Phil Burk
315309f60e
Mac: test adjustable number of channels.
2016-05-21 17:25:18 -07:00
Phil Burk
110043f842
Fix assert when reading or writing with non-power of 2 channels.
2016-05-18 22:29:45 -07:00
Phil Burk
ed463ba658
Normalize all the line endings
2016-05-18 22:13:20 -07:00
Phil Burk
e18ea33d22
pa_mac_core.c: Removed some comments. Cleaned up logic.
2016-05-16 22:30:28 -07:00
Phil Burk
09588cc5d6
pa_mac_core: stop stream instead of asserting
...
Bug: 158
2016-05-01 18:10:23 -07:00
dmitrykos
f7b2d1542f
wasapi: correction to the previous commit
2015-10-21 14:25:07 +00:00
dmitrykos
58eca02986
wasapi: workaround to avoid PaWasapi_Initialize() failure when enumerating devices and device fails to report min/default periods with IAudioClient::GetDevicePeriod(): ignore error and assign WASAPI common known period values for min/default
2015-10-20 16:02:39 +00: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
rbencina
039bc21bda
pa/wmme: avoid potential (but highly unlikely) overflow in buffer size in call to WideCharToMultiByte if a device name length exceeds INT_MAX. should also fix compiler warning about size_t to int assignment.
2015-01-21 06:52:11 +00:00
rbencina
b3216e814b
disabled deprecated API warning for GetVersionEx in dsound, wmme and wdmks host APIs.
2015-01-21 06:24:32 +00:00
rbencina
7f4f7e44cb
PA/CoreAudio: fixed copy-pasto: last host error was being associated with paInDevelopment host api not paCoreAudio
2014-11-05 01:03:57 +00:00
robiwan
6733684fca
Added more debugging info in wdmks/pa_win_wdmks.c
2014-08-28 05:59:40 +00:00
robiwan
d7085cb226
Committing Lelands patch for WDM-KS, should take care of some of the problems referenced here http://music.columbia.edu/pipermail/portaudio/2014-August/016246.html
2014-08-15 06:35:32 +00:00
bejayoharen
55adee0a90
olivier's device name patch for os x
2014-06-28 16:28:17 +00:00
rbencina
4c720adbfa
pa_win_ds.c converted tabs to spaces (only a small amount of code was incorrectly using tabs).
2014-04-11 05:46:40 +00:00
rbencina
666f30ea67
DirectSound: correctly output device names as UTF-8 when compiled with UNICODE defined. Note that this patch may not be correct if UNICODE is not defined. Patch from Tobias Erichsen. See ticket #224 for details.
2014-04-11 05:44:50 +00:00
rbencina
9222d8bfb4
pa_win_wmme.c: converted tabs to spaces (just a few sections)
2014-04-11 05:31:13 +00:00
rbencina
7a3b2d1dd9
WMME: correctly convert device names to UTF-8, see ticket #224 . Thanks to Tobias Erichsen for the patch.
2014-04-11 05:25:48 +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
gineera
e62b586273
Jack: Add a port-type filter expression to calls to jack_get_ports() so that only audio ports are listed (removing eg Midi etc) as reported by 'sqweek'.
2013-11-15 12:27:07 +00:00
gineera
e2662ae2ad
Alsa: Revise the use of the environment variable 'PA_ALSA_PLUGHW' so it correctly influences the Device-List and the capabilities reported. Also rename a mis-leading variable and add one additional DEBUG line.
2013-10-17 12:44:09 +00:00
rbencina
c23e362fcb
pa_mac_core.c line 664 fixed incorrect memset size (was using sizeof(ptr) not sizeof(struct type)
2013-08-29 00:36:56 +00:00
gineera
3029485a0e
Alsa: Add function to prevent duplicate parts in the visible pa device name string, that occur when the pcm-device name starts with the card name (since they are both used). Achieved by trimming the pcm-device string beginning.
2013-08-27 17:14:51 +00:00
gineera
bbf60ab137
Alsa: Fix memory leak as nonMmapBuffers were not freed (since change to realloc). Clean out corresponding dead code chunk.
2013-08-22 22:01:17 +00:00
gineera
d17353a602
Alsa: Rename some variables in pa_linux_alsa where the meaning is mis-leading or wrong in the Alsa context. Also tweak one debug message and a few typos.
2013-08-22 19:43:07 +00:00
gineera
b1a62661bf
Alsa: Fix handling of poll descriptors in PaAlsaStream_WaitForFrames(). Otherwise if capture signals before playback a duplex stream could poll the wrong descriptor, causing a loop (reported by Alexander Kartashov).
2013-08-13 20:37:04 +00:00
gineera
80c77d9ae4
OSS: revise default latency reporting: previous fixed values could not actually be achieved with OSS power-of-2 sizes. Instead try a configuration and correctly report the default latency based on one less than the number of fragments; also fix the stream component 'bufSz' calculation.
2013-06-08 19:30:41 +00:00
gineera
28f9ee0965
Alsa: revise latency use and calculations, since the latency should be equivalent to one Alsa period less than the Alsa ringbuffer (was based on the whole). Also fixes failure if zero latency was specified.
2013-06-08 19:12:25 +00:00
rbencina
a51584e3b1
factored out InitPaDeviceInfoFromAsioDriver function. skip device rather than failing entire init process if a single ASIO driver returns an error during init. This was happening with MOTU devices if the device wasn't present. See ticket #221
2013-05-02 01:06:01 +00:00