Commit graph

83 commits

Author SHA1 Message Date
Andrew Kelley e82c3e89da WASAPI: get period duration for raw devices 2015-08-13 10:18:46 -07:00
Andrew Kelley 9a06d22608 WASAPI: detect channel layout of exclusive device 2015-08-13 00:58:05 -07:00
Andrew Kelley 1f58cdc0bd WASAPI: get formats for shared and exclusive devices 2015-08-13 00:11:54 -07:00
Andrew Kelley 709fc5fa19 WASAPI: detect raw devices 2015-08-12 19:29:01 -07:00
Andrew Kelley ba65bdb131 WASAPI: shared mode devices support any sample rate 2015-08-12 18:57:34 -07:00
Andrew Kelley c420bf9e71 WASAPI: get channel layout from devices 2015-08-12 17:50:36 -07:00
Andrew Kelley 75185d17d7 WASAPI: get the list of supported formats from devices 2015-08-12 17:11:03 -07:00
Andrew Kelley f4ad630769 WASAPI: get the period duration of devices 2015-08-12 15:32:44 -07:00
Andrew Kelley 20b0515582 WASAPI: default device detection 2015-08-12 11:01:06 -07:00
Andrew Kelley 97abe08f0e WASAPI: get the number of available audio devices 2015-08-10 15:22:08 -07:00
Andrew Kelley 7238d29666 sample rate is exposed as a list of min/max pairs 2015-08-08 14:44:31 -07:00
Andrew Kelley eb7308d992 CoreAudio: microphone example works 2015-08-08 11:45:21 -07:00
Andrew Kelley cdb02e2b46 CoreAudio: underflow test passes 2015-08-07 13:13:10 -07:00
Andrew Kelley a6c5f99b27 README: fix synopsis example 2015-08-04 22:04:40 -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 8da5ae0798 PulseAudio: opening out stream populates buffer_duration 2015-08-04 13:09:45 -07:00
Andrew Kelley 29a914ceba no constructors or destructors 2015-08-04 11:03:19 -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 a774a72958 CoreAudio: get the full list of available sample rates 2015-08-03 17:06:38 -07:00
Andrew Kelley c52e76928f fix build on linux 2015-08-01 22:40:55 -07:00
Andrew Kelley f77663399f CoreAudio: obtain most device information 2015-08-01 22:10:43 -07:00
Andrew Kelley 7bab3f0189 small docs update 2015-07-31 18:53:39 -07:00
Andrew Kelley 4c5742eb29 CoreAudio skeleton 2015-07-31 18:52:51 -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 6a439dffb9 document device pairs 2015-07-30 10:46:25 -07:00
Andrew Kelley e6112b40ed rename purpose to aim 2015-07-30 10:39:10 -07:00
Andrew Kelley 4ba1fd91a1 rename device name and description to id and name 2015-07-30 10:26:36 -07:00
Andrew Kelley 12db5fd970 remove all calls to soundio_panic
Return codes are the way errors are communicated, not
crashing the entire program.
2015-07-30 00:46:13 -07:00
Andrew Kelley 5503072fc8 ALSA: recover from underflow gracefully 2015-07-29 22:39:27 -07:00
Andrew Kelley 2900616e9b flesh out buffer semantics 2015-07-29 21:50:12 -07:00
Andrew Kelley 44569708a0 Delete the concept of prebuffering 2015-07-29 20:55:28 -07:00
Andrew Kelley d3cf8f02db PulseAudio: fix using 100% CPU
soundio_wait_events wasn't blocking but now it is.
2015-07-29 13:12:04 -07:00
Andrew Kelley a5e1c0024d ALSA: detect 'default' (no colon) as default device 2015-07-29 01:15:01 -07:00
Andrew Kelley 97ee72ce5f JACK: fix playback glitchfest 2015-07-28 23:20:30 -07:00
Andrew Kelley 754343bba6 microphone example works with JACK 2015-07-28 18:47:28 -07:00
Andrew Kelley 1eca206a24 follow PulseAudio's lead for default channel layouts 2015-07-28 15:23:08 -07:00
Andrew Kelley 70441184a1 JACK: detect channel layout based on port names 2015-07-28 14:53:54 -07:00
Andrew Kelley eeae08e1a3 JACK emits on_backend_shutdown event 2015-07-28 13:36:31 -07:00
Andrew Kelley 6df84096f3 sine example works with JACK 2015-07-28 11:28:07 -07:00
Andrew Kelley 70decb39f5 SoundIoOutStream, SoundIoInStream: void * -> union
For better cache locality and lower mlock requirements.
2015-07-27 17:06:12 -07:00
Andrew Kelley db1195877a SoundIo, SoundIoDevice: unions instead of void *
for better cache locality
2015-07-27 16:37:45 -07:00
Andrew Kelley 447a241c2e JACK deal with the global msg callbacks 2015-07-24 19:16:48 -07:00
Andrew Kelley 3dd9e513bc add JACK backend skeleton 2015-07-24 18:43:14 -07:00
Andrew Kelley 5906bc93d9 ALSA implement clear buffer 2015-07-24 14:03:49 -07:00
Andrew Kelley 3d3f9f91a2 microphone example: no more glitches 2015-07-24 13:26:46 -07:00
Andrew Kelley 34039b4858 microphone example working with ALSA 2015-07-23 20:55:36 -07:00
Andrew Kelley 511fcafc3b dummy: implement prebuffering 2015-07-23 16:49:44 -07:00
Andrew Kelley 69764e1afa microphone example working with dummy backend 2015-07-23 15:04:41 -07:00
Andrew Kelley e7dc300cc6 microphone example working with PulseAudio 2015-07-22 15:43:45 -07:00
Andrew Kelley a3388e792a default device index is -1 if no devices available 2015-07-22 12:07:20 -07:00