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
b202f6746b
underflow test: add --device and --raw params
2015-10-13 00:20:56 -07:00
Travis
7cff66fb83
tests: include limits lib to fix build on debian
2015-10-07 23:05:48 -04:00
Andrew Kelley
be6e654098
fix and add test for soundio_device_nearest_sample_rate
2015-09-18 22:08:36 -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
4a0b3579d4
soundio_disconnect: allow NULL parameter
2015-09-11 19:10:09 -07:00
Andrew Kelley
c62c2e4661
macos: avoid allocation when getting time
2015-09-11 10:20:46 -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
59fca8cb75
latency test emits periodic pulses
...
See #2
2015-09-02 12:22:06 -07:00
Andrew Kelley
5ce24c5382
WASAPI: not expected to pass overflow test
2015-08-27 21:03:42 -07:00
Andrew Kelley
0deb6242b4
CoreAudio: not expected to pass overflow test
2015-08-27 21:02:11 -07:00
Andrew Kelley
16437bd357
various code adjustments
...
* doc clarifications
* examples compile with c99 not c11
* fix pulseaudio on_backend_disconnected not firing only during
flush events
* make wait events more efficient
* fix alsa devices race condition
* fix backend disconnected code handling
* add overflow test
* fix on_events_signal not called at correct times
* refactor pulseaudio device scanning
* fix SoundIoErrorNoSuchDevice string value
2015-08-27 20:57:53 -07:00
Andrew Kelley
d6e41672f7
add test for recovering from backend disconnecting
2015-08-26 17:45:59 -07:00
Andrew Kelley
c96405a091
rt prio warning behavior is overridable
2015-08-26 12:54:13 -07:00
Andrew Kelley
90fa377c99
WASAPI: sine wave example works with raw device
2015-08-21 17:11:46 -07:00
Andrew Kelley
3b49292897
use hidden visibility by default and explicitly export
...
Also don't expose os functions.
And do the dllexport/dllimport thing.
2015-08-20 14:48:19 -07:00
Andrew Kelley
fbc7318268
remove the concept of period duration from the API
...
also more progress on WASAPI
2015-08-13 22:54:15 -07:00
Andrew Kelley
c381526205
callbacks supply min and max frame count parameters
...
This changes the semantics of the callbacks so that instead of
a single `requested_frame_count` or `available_frame_count`,
the callbacks get a minimum frame count and maximum frame count.
The callback must write at least the minimum or get an underflow.
The minimum will be 0 on ALSA, PulseAudio, and Dummy, and will
equal the maximum on CoreAudio and JACK.
This ensures optimal behavior regardless of buffer size.
2015-08-04 21:57:46 -07:00
Andrew Kelley
f87961275d
write and read functions no longer allow setting frame count
...
CoreAudio and JACK both have this limitation
2015-08-04 00:56:03 -07:00
Andrew Kelley
c52e76928f
fix build on linux
2015-08-01 22:40:55 -07:00
Andrew Kelley
860370d859
rename examples, install them, and correct #include path
2015-07-30 14:16:22 -07:00
Andrew Kelley
2a70bdb745
add a test for underflow handling and expose os API
2015-07-30 12:07:58 -07:00
Andrew Kelley
34039b4858
microphone example working with ALSA
2015-07-23 20:55:36 -07:00
Andrew Kelley
eca4bc6074
ALSA: poll instead of async handler
2015-07-21 21:21:00 -07:00
Andrew Kelley
7045cb3988
ALSA sine example is making noise
2015-07-15 20:57:00 -07:00
Andrew Kelley
1e4d87e608
ALSA: open output device with parameters
2015-07-13 21:30:37 -07:00
Andrew Kelley
5b3fd175f8
stream API update; expose multiple channel layouts
2015-07-13 09:17:20 -07:00
Andrew Kelley
6c2226a6d7
list_devices example: more detailed output
2015-07-10 03:00:29 -07:00
Andrew Kelley
7d45b15036
rename SoundIoOutputDevice to SoundIoOutStream
...
and SoundIoInputDevice to SoundIoInStream
2015-07-10 02:42:29 -07:00
Andrew Kelley
3b8d896c8e
ALSA backend determines what formats a device supports
2015-07-10 02:21:47 -07:00
Andrew Kelley
8887a528ef
sample formats: take into account ALSA
2015-07-10 00:46:03 -07:00
Andrew Kelley
c760bc4df7
default sample rate is not as important as I thought
2015-07-08 00:42:17 -07:00
Andrew Kelley
fe61322b23
beginning of ALSA support - list_devices works
2015-07-07 02:55:32 -07:00
Andrew Kelley
5048d7aa57
ring buffer works on windows
2015-07-06 16:02:20 -07:00
Andrew Kelley
a69ff6025c
add and export a ring buffer implementation
2015-07-06 01:05:22 -07:00
Andrew Kelley
a35a2b7e0a
add a couple unit tests, fix a couple bugs
2015-07-04 02:57:06 -07:00
Andrew Kelley
6a5db549f5
list_devices example works with dummy backend
2015-07-01 02:37:51 -07:00
Andrew Kelley
c40ef12ec6
compile success
2015-06-30 14:13:02 -07:00
Andrew Kelley
c2fa8b4b4d
skeleton
2015-06-30 14:04:45 -07:00