- JACK: delete broken pause implementation. Previously, calling
soundio_outstream_pause
orsoundio_instream_pause
during thewrite_callback
orread_callback
would cause a deadlock. Now, attempting to pause always results inSoundIoErrorBackendIncompatible
. - PulseAudio: improve latency handling code. It now passes the latency test along with all the other backends.
- PulseAudio: fix incorrect outstream
software_latency
. - libsoundio source code is now pure C, no C++ mixed in.
- ALSA: better device detection.
- No longer suppress sysdefault.
- If default and sysdefault are missing, use the first device as the default device.
- Workaround for Raspberry Pi driver that incorrectly reports itself as Output when it is actually Input.
- ALSA: let alsa lib choose period settings. Fixes behavior with many ALSA devices.
- ALSA: fix potential cleanup deadlock.
- ALSA: fix crash for devices with null description, thanks to Charles Lehner.
- CoreAudio: drop support for MacOS 10.9. There was a bug for this system that was never resolved, so it didn't work in the first place.
- Record example handles device not found and probe errors gracefully.
- Fix typo in microphone example, thanks to James Dyson.
- Improve documentation.
- New functions available:
soundio_version_string
,soundio_version_major
,soundio_version_minor
,soundio_version_patch
. - libsoundio source code now builds with MSVC, thanks to Raphaël Londeix.
- Architecture independent header files.
- Add --latency and --sample-rate to sine example.
- ALSA: fix deadlock under some circumstances.
- dummy: fix deadlock when pause called from
write_callback
. - Fix double clean-up corruption when opening stream fails.
- Add --device and --raw to underflow test.
- ALSA: use period size to calculate buffer size, fixes opening output stream sometimes resulting in an error.
- build: fix GNUInstallDirs not working.
- docs: fix incorrect docs for
soundio_instream_pause
. - PulseAudio: fix
soundio_outstream_pause
triggering assertion when called from withinwrite_callback
. - fix mirrored memory not working on Linux (fixes corrupted data in ring buffer).
- os: fix crash when creating non high priority thread fails.
- docs: fix typos and cleanup.
- fix and add test for
soundio_device_nearest_sample_rate
.
- libsoundio no longer depends on or links against libm.
- ALSA: treat ALSA as unavailable when /dev/snd does not exist.
- ALSA: remove duplicate assert.
- ALSA: remove stray print statement.
- ALSA: pausing returns error code when state is invalid instead of reaching assertion failure in pcm.c.
- JACK: fix infinite loop when refreshing devices.
- PulseAudio: better clear buffer implementation.
- dummy backend: fix sometimes calling
write_callback
withframe_count_max
equal to 0. - os: fix some variables accidentally not declared static.
- macos: fix not cleaning up condition variables.
- macos: avoid allocation when getting time.
- docs: note that
read_callback
andwrite_callback
must be real time safe. - docs: record example demonstrates proper real time safety by not calling
fwrite in
read_callback
. - docs: add note to record example about shutting down.
- docs: make microphone example latency a command line argument.
- build: fix build on linux with clang.
- build: static libs, examples, and tests are optional.
- Initial public release.