Commit Graph

1028 Commits

Author SHA1 Message Date
David Reid 5b4b7fa266 More work on full-duplex with WebAudio. 2019-02-24 13:26:18 +10:00
David Reid 51ebb048be Work in progress for full-duplex for WebAudio. 2019-02-23 15:09:39 +10:00
David Reid 212cee5982 Integrate the ring buffer into mini_al.h 2019-02-21 18:06:32 +10:00
David Reid 198b844d8b Add mal_pcm_rb to the ring buffer research code.
This is the same as the normal ring buffer except everything is done in
terms of PCM frames instead of bytes. This is useful to simplify the
case of using the ring buffer for storing PCM audio data.
2019-02-21 17:55:35 +10:00
David Reid c78aadff9c Fix device initialization with audio(4) on OpenBSD. 2019-02-20 20:01:16 +10:00
David Reid d1f26b4d3b Fix bugs with sndio. 2019-02-19 20:40:22 +10:00
David Reid 7fba7e5c13 Fix OpenBSD build. 2019-02-19 20:08:23 +10:00
David Reid 9f8a4b9a8a Bug fixes for audio(4). 2018-08-25 05:12:25 +00:00
David Reid 5f85f42b92 Fix NetBSD build. 2018-08-25 05:06:50 +00:00
David Reid 581b90d2d3 Fix OSS build. 2019-02-19 08:15:18 +10:00
David Reid 79e833135c Work in progress on full-duplex for sndio. 2019-02-17 15:22:33 +10:00
David Reid a311b9068d Work in progress on full-duplex for audio(4). 2019-02-17 13:59:22 +10:00
David Reid 9f294cf81e Work in progress on full-duplex support for OSS. 2019-02-16 15:41:22 +10:00
David Reid 31329a65eb Work on full-duplex support for OpenSL. 2019-02-16 08:47:31 +10:00
David Reid fc9cee7697 Work in progress on full-duplex for AAudio. 2019-02-14 18:32:18 +10:00
David Reid 79c46d2771 Work on full-duplex for ALSA. 2019-02-14 17:51:20 +10:00
David Reid d0dfd37c6d Work on full-duplex for PulseAudio. 2019-02-10 19:33:48 +10:00
David Reid d2ca42edd7 Work on removing unnecessary attributes from mal_device. 2019-02-10 08:55:41 +10:00
David Reid 574c1adccd Get full-duplex working with DirectSound. 2019-02-10 06:38:33 +10:00
David Reid f37df9a814 Remove some unused properties from device and config structures. 2019-02-09 20:33:01 +10:00
David Reid 32c64703dd Initial working implementation of full-duplex on WASAPI. 2019-02-09 17:39:49 +10:00
David Reid 934c7d5e63 WinMM: Prep work for full-duplex. 2019-02-06 18:19:08 +10:00
David Reid b525fc8005 DirectSound: Prep work full-duplex. 2019-02-03 20:45:02 +10:00
David Reid 8986a410cc Fix compiler errors on the Windows build. 2019-02-03 18:50:08 +10:00
David Reid 8adce03d72 Core Audio: Refactoring in preparation for full-duplex. 2019-02-03 12:35:23 +10:00
David Reid d59b08d4b8 Begin work on rearranging mal_config in preparation for full-duplex. 2019-02-03 06:44:20 +10:00
David Reid 8c276c07d3 Remove the redundant "name" parameter from mal_device.
This is now stored separately for playback can capture in the playback
and capture sub-objects respectively.
2019-02-02 19:15:55 +10:00
David Reid fd3a7e2595 WASAPI: Infrastructure work in preparation for full-duplex. 2019-02-02 17:35:58 +10:00
David Reid 6548f4e2f1 Set up some infrastructure for separate in/out device IDs. 2019-01-27 12:45:09 +10:00
David Reid e8e4198440 A little bit of prep work for the full-duplex example. 2019-01-27 06:56:35 +10:00
David Reid 97c7c0a72d API CHANGE: Remove the onLog parameter from mal_context_config_init().
This commit also renames the onLog member of mal_context_config to
logCallback for consistency with mal_device_config callback naming
convention.
2019-01-27 06:53:48 +10:00
David Reid 88b75fdbc1 Typos. 2019-01-14 20:10:17 +10:00
David Reid 2dd522b62e Update documentation for mal_device_init(). 2019-01-13 10:51:16 +10:00
David Reid 4d03928b74 Remove some unused backend functions. 2019-01-13 10:38:54 +10:00
David Reid 23c917516d Rename more variables for consistency. 2019-01-13 10:26:22 +10:00
David Reid 54e82c74d0 Rename some variables for consistency. 2019-01-13 10:20:12 +10:00
David Reid 24167ba3c2 API CHANGE: Remove the device type and ID from mal_device_init/_ex(). 2019-01-13 09:31:08 +10:00
David Reid 661115f130 API CHANGE: Simplify API for device config initialization.
There is now only a single API for initializing a device config which
is mal_device_config_init() and takes the device type as it's only
parameter. By default this will use the device's native configuration.

The device ID is also set in the device config. The next commits will
be changing mal_device_init() to remove the device type and ID from the
parameter list since they are now specified in the config.
2019-01-12 16:04:28 +10:00
David Reid 4980fcf3c5 Reorder parameters in the callback.
This swaps the order of the input and output pointers so that it's
consistent with the order used by memcpy().
2019-01-12 11:04:11 +10:00
David Reid 67db06350d API CHANGE: Change the data callback in preparation for full-duplex.
This removes the two separate callbacks for sending and receiving data
to/from the device to a unified callback that's used for both input and
output. The new callback takes a pointer to both an input and output
buffer. When the device is opened in playback mode the input pointer
will be set to null. Likewise the output pointer will be set to null
for capture devices. Both input and output pointers will be non-null
for full-duplex devices.
2019-01-12 09:34:30 +10:00
David Reid 3badd55b32 Rename a parameter in mal_convert_frames/_ex(). 2019-01-05 18:53:09 +10:00
David Reid 6d85a886a1 OSS: Remove some unnecessary state. 2018-07-30 10:44:01 +10:00
David Reid f61634246c audio(4): Work on the new blocking read/write API. 2018-08-25 04:24:06 +00:00
David Reid 0683b3990e sndio: Work on blocking read/write API. 2018-07-30 23:46:30 +10:00
David Reid 6caa823ea2 OSS: Work on the blocking read/write API. 2018-07-30 10:34:09 +10:00
David Reid 4e6f702f55 Update test_0 and project files. 2019-01-05 13:19:28 +10:00
David Reid a392eefb33 Add blocking API test. 2019-01-05 13:13:33 +10:00
David Reid af39fd06a2 ALSA: Work on the blocking read/write API. 2019-01-05 13:03:38 +10:00
David Reid 036cb46db2 ALSA: Rename a function in preparation for blocking read/write. 2019-01-05 10:04:12 +10:00
David Reid 7271b20d0e Improvements to the Null backend.
This change makes a device run it's own loop with a timer to better
simulate an actual device.
2019-01-04 11:00:38 +10:00