Commit Graph

910 Commits

Author SHA1 Message Date
David Reid fc3ee39339 audio(4): Some tweaks to device IO. 2018-08-24 22:13:48 +00:00
David Reid c5d30341a1 audio(4): Experiment with non-blocking mode. 2018-08-22 11:26:14 +00:00
David Reid 0e6f0f3075 audio(4): Properly set the exclusive mode flag. 2018-08-21 08:59:46 +00:00
David Reid 85837cd8c2 Try fixing some compilation errors on MinGW. 2018-08-20 20:53:12 +10:00
David Reid d2d13076ef Disable automatic device switching in exclusive mode.
This was causing issues for me on WASAPI where it would return an error
indicating that the device was already in use: AUDCLNT_E_DEVICE_IN_USE.

If this is a bug in mini_al I'm happy to re-enable this once it's
fixed, but I've been unable to figure out what's wrong so far.

For consistency I have also disabled the generic automatic device
switching feature.
2018-08-20 20:48:42 +10:00
David Reid cb596d5484 WASAPI: Simplify device initialization. 2018-08-20 19:04:17 +10:00
David Reid c0105c711e Fix C++ compilation error. 2018-08-20 18:31:30 +10:00
David Reid 205e3fe8ff Remove an overly specific feature point. 2018-08-19 16:33:37 +10:00
David Reid 37b7e6c5c7 Clarify support for UWP. 2018-08-19 16:31:09 +10:00
David Reid 325b15a013 WASAPI: Add support for hardware offloading and low-latency shared mode 2018-08-19 16:21:12 +10:00
David Reid 821abec74f WASAPI: Experiment with hardware offloading. 2018-08-19 15:05:43 +10:00
David Reid 9862f6f193 WASAPI: Add support for compiling the UWP build as C. 2018-08-19 14:29:16 +10:00
David Reid dd3638f5fb Add declarations for IAudioClient2 and IAudioClient3. 2018-08-19 12:41:29 +10:00
David Reid 0b864d30c0 Core Audio: Fix runtime linking. 2018-08-19 11:08:53 +10:00
David Reid e837b5006b Core Audio: Extract the device name at initialization time. 2018-08-19 10:52:51 +10:00
David Reid fb0857461b Core Audio: Fix an error with stream routing. 2018-08-19 10:47:47 +10:00
David Reid 02af2cffea Core Audio: Add support for stream routing. 2018-08-19 10:40:17 +10:00
David Reid fadbcc31cb Update VS test project. 2018-08-18 20:14:35 +10:00
David Reid 614813b2e1 WASAPI: Implement stream routing.
With this change, mini_al will automatically switch the internal device
to that of the new default device when the user changes it via the
operating system's sound preferences.
2018-08-18 20:14:08 +10:00
David Reid 35352cca8a Update notes. 2018-08-16 19:58:54 +10:00
David Reid 47579f135e Update gitignore. 2018-08-16 18:41:03 +10:00
David Reid a3cad4a8b9 Add unplugging test to VS project. 2018-08-16 18:39:33 +10:00
David Reid 39910dce3d Fix a typo. 2018-08-15 17:26:15 +10:00
David Reid 337aaea321 Clean up some old code. 2018-08-15 16:40:30 +10:00
David Reid c4b6d4042a Initial work on default device reinitialization. 2018-08-15 16:01:26 +10:00
David Reid b51cdd3651 Bump version. 2018-08-12 13:40:20 +10:00
David Reid 13441af622 Add mal_sine_wave_read_ex(). 2018-08-12 10:03:31 +10:00
David Reid 22240e51b6 Add unplugging test. 2018-08-12 09:26:32 +10:00
David Reid 002a37b9af Fix a bug where it's possible for the internal channel map to be wrong. 2018-08-12 08:30:00 +10:00
David Reid 57101f618a WASAPI and WinMM: Stop the device an internal error occurs. 2018-08-12 08:15:53 +10:00
David Reid 21e15a4ca1 Fix some errors with the previous commit. 2018-08-11 21:31:05 +10:00
David Reid 30b705ccee Rename the audioio backend to audio(4). 2018-08-11 21:07:31 +10:00
David Reid 56a442a8ad PulseAudio: Small tweak to the default buffer size on PulseAudio. 2018-08-11 20:59:16 +10:00
David Reid 582a87983c Add standard channel map based on FreeBSD's sound(4) man page. 2018-08-11 19:44:46 +10:00
David Reid 93e2d23e98 Update readme. 2018-08-11 19:21:34 +10:00
David Reid b00c05366f Update notes. 2018-08-11 19:20:51 +10:00
David Reid 7649f6203e Update dr_mp3. 2018-08-11 18:57:08 +10:00
David Reid f53291c890 Add support for audioio to OpenBSD. 2018-07-30 17:17:05 +10:00
David Reid 1e3c8faf4b Clean up. 2018-08-11 13:57:45 +10:00
David Reid d5530a4691 ALSA: Try fixing a crackling bug. 2018-08-11 03:39:41 +00:00
David Reid 8732f9aa11 Update revision history. 2018-08-11 11:41:01 +10:00
David Reid 27488061c2 Clean up. 2018-08-11 11:38:27 +10:00
David Reid a6d777f149 audioio: Fix a bug where the buffer size is set incorrectly. 2018-08-06 12:20:58 +00:00
David Reid 931d669ff9 Add support for setting the device's buffer size in milliseconds.
Setting the buffer size in frames is still supported. If
bufferSizeInFrames is set to 0, bufferSizeInMilliseconds will be used
instead. If both are zero, defaults are used.
2018-08-11 11:06:49 +10:00
David Reid d4916abdc9 Remove the experimental profiling based default buffer sizes.
The problem with this idea is that it complicates the buffer size
calculations in the backends. It also results in situations where
the buffer size is inconsistent which is annoying.

Future commits will be adding support for specifying the size of the
buffer in milliseconds which should offer more flexibility.
2018-08-11 08:56:59 +10:00
David Reid 176d5a3cc6 Add MAL_COINIT_VALUE. 2018-08-09 18:56:00 +10:00
David Reid f894b83e97 Fix a sinc resampling bug where too much data is read from the client. 2018-08-08 21:39:25 +10:00
David Reid f452b6daaf Update extras. 2018-08-07 18:28:57 +10:00
David Reid 6e606e073f Bump version. 2018-08-06 22:07:26 +10:00
David Reid 22eee7160b Minor tweaks to sndio. 2018-07-30 07:14:14 +10:00