Commit graph

7 commits

Author SHA1 Message Date
Andrew Kelley c2836e494b alsa: refactor for readability 2016-01-26 20:18:39 -07:00
Charles Lehner cdadcee7ed Handle ALSA devices with null description 2016-01-26 21:42:44 -05:00
Raphaël Londeix 406ffa668c Wrap atomic_flag usage behind SoundIo macros and types
As done for other atomic types, we hide atomic_flag real type in
    order to use both the C and the C++ standard libraries.
2015-12-05 13:33:47 +00: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
Renamed from src/alsa.cpp (Browse further)