Commit Graph

112 Commits

Author SHA1 Message Date
David Reid c1f35b583e Minor changes to OpenSL|ES backend. 2016-10-25 10:43:23 +10:00
David Reid d3f17c223b OpenSL|ES: Add untested work for capture support. 2016-10-25 10:09:10 +10:00
David Reid f540e10fd7 Fix typos. 2016-10-25 10:03:18 +10:00
David Reid b7b1cd6b72 OpenSL|ES: Use ANDROIDSIMPLEBUFFERQUEUE instead of BUFFERQUEUE. 2016-10-25 10:02:08 +10:00
David Reid 1b20f53291 Add some very basic support for playback with OpenSL|ES/Android. 2016-10-23 10:41:38 +10:00
David Reid 11f4e21b3a Fix a comment. 2016-10-22 11:29:58 +10:00
David Reid dd26ad9d45 Fix the Android build and fix a few typos. 2016-10-22 08:30:26 +10:00
David Reid 7fb3a30412 Clean up some whitespace. 2016-10-21 18:07:07 +10:00
David Reid 6881209021 Put the declaration of mal_device_set_stop_callback() in a sensible location. 2016-10-21 13:46:20 +10:00
David Reid ce99f62f63 Convert tabs to spaces and remove trailing spaces. 2016-10-21 13:35:21 +10:00
David Reid b5831564da Use C syntax highlighting for example. 2016-10-21 13:25:58 +10:00
David Reid f2d0fac903 Add gitignore. 2016-10-21 13:25:17 +10:00
David Reid 3a1072e30f Update example in readme. 2016-10-21 13:24:33 +10:00
David Reid 596a3ef966 Add onStop callback which is called when a device is stopped either explicitly or internally as a result of an error. 2016-10-21 12:54:14 +10:00
David Reid 26ccabc834 Add examples. 2016-10-21 12:53:38 +10:00
David Reid bfc4d3ffc5 DirectSound: Add back notifications to better handle waking up the worker thread based on periods. 2016-10-21 10:59:25 +10:00
David Reid 46aaa53f2c Update documentation and add support for default buffer sizes and periods. 2016-10-21 10:33:13 +10:00
David Reid 5cbbf0b988 Have the onSend and onRecv callbacks work on frames rather than samples.
The rationale for this change is to keep it consistent with the rest of the library.
2016-10-21 08:34:14 +10:00
David Reid 6ec93e902e DirectSound: Improve rewind latency. 2016-10-21 08:19:18 +10:00
David Reid d984e39e1b Improve the main loop for DirectSound by making better use of periods. 2016-10-21 08:08:30 +10:00
David Reid 3180cadb4a Fix ALSA build. 2016-10-20 21:47:30 +10:00
David Reid bf093f22db Remove unnecessary notifications from the DirectSound backend. 2016-10-20 21:40:08 +10:00
David Reid 05c85e5bd2 Fix some thread-safety issues with callbacks. 2016-10-20 21:22:11 +10:00
David Reid 6ed399d57b Remove the notion of fragments and use a simplified buffer size and periods concept instead. 2016-10-20 21:16:49 +10:00
David Reid 08db9fbda8 Rename mal_device__read_samples_from_client() to mal_device__read_frames_from_client() and mal_device__send_samples_to_client() to mal_device__send_frames_to_client().
Rationale for this is to keep it consistent with the rest of the library.
2016-10-20 13:18:20 +10:00
David Reid 7039d4c9bf Add support for rewinding to the DirectSound backend. 2016-10-20 12:58:55 +10:00
David Reid 59feeafc03 Add some infrastructure for better thread-safety. 2016-10-19 21:42:43 +10:00
David Reid 9698068d3e ALSA: Have the id of enumerated devices be returned in "hw:%d,%d" format.
The rationale for this change is that during testing I noticed that
snd_pcm_open() would sometimes fail with "Invalid value for card"
when using the "NAME" hint returned by snd_device_name_get_hint()
verbatim. Using "hw:%d,%d" seems to fix this problem.
2016-10-19 21:14:20 +10:00
David Reid 916328c550 ALSA: Add a fallback for when snd_pcm_open() fails for "default" and "pulse" devices. 2016-10-19 19:27:17 +10:00
David Reid 1617261be1 ALSA: Fix a bug with timers for non-Windows platforms. 2016-10-19 19:00:33 +10:00
David Reid f9130d74c1 ALSA: Make device initialization a bit more robust.
- The buffer size is now set with set_buffer_size_near()
 - The size of the buffer is now independant of periods
 - snd_pcm_sw_params_set_avail_min() is now called with the previous
   power of 2 rather than the next.
 - The start threshold is now called with the previous power of 2
   rather than the next.
2016-10-19 18:38:33 +10:00
David Reid e2c93382f8 ALSA: Remove some old device iteration code. 2016-10-19 17:45:45 +10:00
David Reid a18a38f74e Add initial implementation of the null device. 2016-10-19 16:29:20 +10:00
David Reid 56b9101cfd Add placeholder APIs for rewinding:
- mal_device_get_available_rewind_amount()
  - mal_device_rewind()
2016-10-19 12:00:32 +10:00
David Reid f7a825d9de Fix build for the DirectSound backend. 2016-10-18 12:35:26 +10:00
David Reid bf67d5a3f0 ALSA: Experiment with a more user-friendly device enumeration. 2016-10-18 11:11:03 +10:00
David Reid 4094293cdf ALSA: Add support for mal_format_s24. 2016-10-18 06:57:58 +10:00
David Reid 6cf9ee7cb2 Fix C++ build for GCC/ALSA. 2016-10-18 06:47:28 +10:00
David Reid 91fbc1b0da Fix a few typos. 2016-10-18 06:31:01 +10:00
David Reid 183fdd0d16 Fix platform detection for non-MSVC compilers. 2016-10-18 06:23:22 +10:00
David Reid f630a0153c Fix C++ build for MSVC and DirectSound. 2016-10-18 06:17:56 +10:00
David Reid 3c4e46bcb9 DirectSound: Add support for mal_format_s24. 2016-10-18 06:15:13 +10:00
David Reid 98046e0a4f ALSA: Address an issue where it was possible for some samples to get dropped when a capture device is closed. 2016-10-17 19:23:08 +10:00
David Reid cc98c7efff Have mal_device_init() take a callback for log message. 2016-10-17 17:42:31 +10:00
David Reid 2cb9a8c632 Experimental work on MMAP mode for ALSA. 2016-10-16 20:45:43 +10:00
David Reid fd85d5ac53 Improve the DirectSound backend by not using notifications exclusively to manage data retrieval and submission. 2016-10-16 13:56:23 +10:00
David Reid af5e5d4846 Properly initialize-to-zero device info for null and ALSA backends. 2016-10-16 11:04:26 +10:00
David Reid be2167709d Minor consistency fix. 2016-10-16 10:48:23 +10:00
David Reid be95c67dc6 Clean up #includes. 2016-10-16 10:36:10 +10:00
David Reid 44a6be1e7d Remove an unnecessary #include. 2016-10-16 10:23:55 +10:00