Andrew Kelley
de55b924ab
--default-symver
2015-11-18 15:10:31 -07:00
Andrew Kelley
66c7d1b1ac
add symbol versioning
...
closes #40
2015-11-18 14:29:31 -07:00
Andrew Kelley
f61acfd953
ALSA: fix potential cleanup deadlock
...
The main ALSA poll now includes another file descriptor which we
write to when cleaning up, to ensure that the poll terminates
when soundio_outstream_destroy is invoked.
closes #36
2015-11-14 22:16:29 -07:00
Andrew Kelley
8f1e1b8752
ALSA: let alsa lib choose period settings
...
Closes #46
2015-11-14 21:48:58 -07:00
Andrew Kelley
d168a7d192
ALSA: better device detection
...
* Don't suppress sysdefault.
* If default and sysdefault are missing, use the first device as
the default device.
* In sio_record example, don't segfault when device not found or
probe error.
* Workaround for Raspberry Pi driver that incorrectly reports
itself as Output when it is actually Input.
See #44 .
2015-11-10 04:23:27 -07:00
Andrew Kelley
ee7c0d3e11
convert source code to pure C
...
List<T> is now a really ugly macro.
Added a workaround for jack.h not putting `void` in function
prototypes for functions that take no arguments. I made upstream
pull requests to jack1 and jack2 but I don't have high hopes
about them getting merged.
I removed the lock-free atomic asserts. clang reports
non-lock-free atomics when in fact it does have lock-free
atomics. I inspected the generated code for gcc and clang
for fetch_add, load, and store, on x86_64 and armhf, and
it's all lock free.
Closes #45 .
2015-11-10 02:24:18 -07:00
Andrew Kelley
2633b1bd60
PulseAudio: pass the latency test
2015-11-01 12:39:21 -07:00
Andrew Kelley
8e30053962
JACK: delete broken pause implementation
...
Previously, calling soundio_outstream_pause or soundio_instream_pause
during the write_callback or read_callback would cause a deadlock. Now,
attempting to pause always results in SoundIoErrorBackendIncompatible.
Closes #39
2015-10-28 16:01:08 -07:00
Andrew Kelley
2f14aa569e
ALSA: use period size to calculate buffer size
...
determining the buffer size before the period size sometimes results
in EINVAL.
closes #33
2015-10-13 00:47:18 -07:00
Andrew Kelley
db0e3d136c
fix double clean up corruption when opening stream fails
...
affects ALSA, CoreAudio, JACK, WASAPI, and Dummy.
2015-10-08 17:10:21 -07:00
Andrew Kelley
277bb3106b
dummy: fix deadlock when pause called from write_callback
2015-10-06 19:36:57 -07:00
Andrew Kelley
a3c4f85489
ALSA: fix deadlock under some circumstances
...
If the write_callback came upon an error during the prepare
phase, and never wrote any frames to the hardware buffer,
and another thread tried to soundio_outstream_destroy, this
would cause a deadlock.
This is now fixed.
2015-10-06 18:50:56 -07:00
Andrew Kelley
0a0715eb72
architecture independent header files
...
Do endian detection in the header file instead of cmake.
2015-09-24 09:26:17 -07:00
Andrew Kelley
be6e654098
fix and add test for soundio_device_nearest_sample_rate
2015-09-18 22:08:36 -07:00
Andrew Kelley
71e31b88fe
os: fix crash when creating non high priority thread fails
2015-09-17 15:04:34 -07:00
Andrew Kelley
dbed33abd2
os: remove superfluous condition on init
...
remove superfluous #include math.h
2015-09-17 13:55:47 -07:00
Andrew Kelley
f52080a1fd
fix mirrored memory not working on linux
...
add mirrored memory unit test
2015-09-14 14:56:13 -07:00
Andrew Kelley
7e95d9f9c0
PulseAudio: fix soundio_outstream_pause triggering assertion
...
when called from within write_callback. closes #24
2015-09-14 04:15:02 -07:00
Andrew Kelley
2a68f63079
ALSA: pause gives error when state is invalid
2015-09-11 20:33:40 -07:00
Andrew Kelley
4a0b3579d4
soundio_disconnect: allow NULL parameter
2015-09-11 19:10:09 -07:00
Andrew Kelley
0887b1ee3d
soundio_disconnect: null out more function pointers
2015-09-11 18:25:06 -07:00
Andrew Kelley
c3e3af2061
dummy backend: fix sometimes calling write_callback with 0 avail
2015-09-11 10:24:30 -07:00
Andrew Kelley
c62c2e4661
macos: avoid allocation when getting time
2015-09-11 10:20:46 -07:00
Andrew Kelley
b6c0c84294
macos: fix not cleaning up condition variables
2015-09-10 17:14:16 -07:00
Andrew Kelley
f0356597e2
ALSA: remove stray print statement
2015-09-08 15:05:44 -07:00
Andrew Kelley
369ea0f608
os: fix some variables not static
2015-09-08 10:03:23 -07:00
Andrew Kelley
749654b922
PulseAudio: better clear buffer implementation
...
seek instead of pa_stream_flush
2015-09-07 16:58:46 -07:00
Andrew Kelley
e2e483a4d5
no longer depend on or link against libm
2015-09-05 14:56:36 -07:00
Andrew Kelley
f8cb816139
ALSA: remove duplicate assert
...
Thanks to Devin Anderson for pointing it out.
2015-09-04 11:11:14 -07:00
Andrew Kelley
9cc6495306
JACK: fix infinite loop when refreshing devices
...
closes #9
2015-09-03 20:20:59 -07:00
Andrew Kelley
918183adc6
ALSA: be ready for /dev/snd to not be available
...
If this occurs, the system has no ALSA support in the kernel,
and it is appropriate for the backend to fail.
closes #6
2015-09-03 15:40:36 -07:00
Andrew Kelley
85c2190675
build: fix build on linux with clang
...
closes #8
2015-09-03 14:05:19 -07:00
Andrew Kelley
b55a225b9c
CoreAudio: pass the latency test
...
See #2
2015-09-03 10:47:38 -07:00
Andrew Kelley
f422fcddf3
WASAPI: pass the latency test
...
See #2
2015-09-03 10:26:55 -07:00
Andrew Kelley
1381cf21d3
ALSA: pass the latency test
...
See #2
2015-09-03 09:52:21 -07:00
Andrew Kelley
d8a7a794d3
PulseAudio: fix microphone regression
...
introduced by adb3cd88ee
2015-09-03 09:35:37 -07:00
Andrew Kelley
e444b8823b
JACK: pass the latency test
...
See #2
2015-09-02 15:23:41 -07:00
Andrew Kelley
adb3cd88ee
PulseAudio: pass the latency test
...
See #2
2015-09-02 14:46:36 -07:00
Andrew Kelley
e5cd076e2e
dummy: pass the latency test
...
See #2
2015-09-02 13:31:50 -07:00
Andrew Kelley
debab8e70f
get latency skeleton
...
See #2
2015-09-02 12:22:03 -07:00
Andrew Kelley
06dc7704a3
ALSA: fix sometimes calling write_callback with 0 frame_count_max
2015-09-02 10:24:04 -07:00
Andrew Kelley
760aee2e54
JACK: better pause/resume behavior
...
See #3
2015-09-01 17:14:56 -07:00
Andrew Kelley
7b2a10f7e5
WASAPI: simplify and fix device thread logic
...
closes #5
2015-09-01 17:00:13 -07:00
Andrew Kelley
c14d61fa32
WASAPI: better pause/unpause and clear buffer behavior
...
See #3
2015-09-01 16:31:56 -07:00
Andrew Kelley
c88e79cb7b
dummy: better clear buffer behavior
...
See #3
2015-09-01 15:39:03 -07:00
Andrew Kelley
cd72f45f06
ALSA: fix clear buffer behavior
2015-09-01 15:06:33 -07:00
Andrew Kelley
fe4a04d93c
ALSA: better pause/unpause behavior
2015-09-01 14:43:50 -07:00
Andrew Kelley
dd6b7003d9
ALSA: better handling of raw devices
...
* Recover from xruns
* Better period size choice
2015-08-27 22:58:17 -07:00
Andrew Kelley
7a714298c1
add soundio_force_device_scan API
2015-08-27 21:45:22 -07:00
Andrew Kelley
2d8f8e7f31
ALSA: look for the control file rather than pcm files
2015-08-27 21:22:30 -07:00