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