Commit Graph

1281 Commits

Author SHA1 Message Date
David Reid 0d89891118 Add support for per-device master volume control.
New Device APIs:
  * ma_device_set_master_volume()
  * ma_device_get_master_volume()
  * ma_device_set_master_gain_db()
  * ma_device_get_master_gain_db()

New Helper APIs
  * ma_copy_and_apply_volume_factor_u8()
  * ma_copy_and_apply_volume_factor_s16()
  * ma_copy_and_apply_volume_factor_s24()
  * ma_copy_and_apply_volume_factor_s32()
  * ma_copy_and_apply_volume_factor_f32()
  * ma_apply_volume_factor_u8()
  * ma_apply_volume_factor_s16()
  * ma_apply_volume_factor_s24()
  * ma_apply_volume_factor_s32()
  * ma_apply_volume_factor_f32()
  * ma_copy_and_apply_volume_factor_pcm_frames_u8()
  * ma_copy_and_apply_volume_factor_pcm_frames_s16()
  * ma_copy_and_apply_volume_factor_pcm_frames_s24()
  * ma_copy_and_apply_volume_factor_pcm_frames_s32()
  * ma_copy_and_apply_volume_factor_pcm_frames_f32()
  * ma_copy_and_apply_volume_factor_pcm_frames()
  * ma_apply_volume_factor_pcm_frames_u8()
  * ma_apply_volume_factor_pcm_frames_s16()
  * ma_apply_volume_factor_pcm_frames_s24()
  * ma_apply_volume_factor_pcm_frames_s32()
  * ma_apply_volume_factor_pcm_frames_f32()
  * ma_apply_volume_factor_pcm_frames()
  * ma_factor_to_gain_db()
  * ma_gain_db_to_factor()
2019-09-29 13:45:38 +10:00
David Reid b733bf2530 Add support for clipping.
This only applies when the playback sample format is configured as
ma_format_f32. Clipping is enabled by default and can be disabled by
setting ma_device_config.noClip to true.
2019-09-29 10:07:01 +10:00
David Reid 606ee927da Add information on allowable ranges for sample formats. 2019-09-29 08:47:18 +10:00
David Reid 757a4d617d Improvements to pre-init of the output buffer in the data callback.
This commit makes it well defined as to whether or not the output
buffer passed in to the data callback is initialized to zero or left
undefined. By default it's initialized to zero, but can be changed to
undefined by setting noPreZeroedOutputBuffer in the device config.
2019-09-29 08:46:29 +10:00
David Reid 23319083ce No longer maintaining a list of third party decoders. 2019-09-29 07:29:20 +10:00
David Reid f74ff5fd0e Update dr_flac. 2019-09-29 07:23:06 +10:00
David Reid c26544bafd Fix some full duplex issues for asynchronous backends. 2019-09-28 18:41:37 +10:00
David Reid 39edf6d8ff Core Audio: Fix some issues with full duplex. 2019-09-28 17:26:25 +10:00
David Reid 1860292da6 Merge branch 'dev' of https://github.com/dr-soft/miniaudio into dev 2019-09-28 12:37:18 +10:00
David Reid 575009daa0 Core Audio: Fix bugs with automatic stream routing. 2019-09-28 12:21:19 +10:00
David Reid 677f6887fa Typo. 2019-09-28 07:31:37 +10:00
David Reid 6c5119f0b3 Update dr_flac. 2019-09-28 07:23:10 +10:00
David Reid ef1b32a89a Update revision history. 2019-09-19 22:03:52 +10:00
David Reid 3961c3e9e1 WASAPI: Only enable SRC_DEFAULT_QUALITY with AUTOCONVERTPCM. 2019-09-19 21:56:05 +10:00
David Reid d56171d861 WASAPI: Add support for configuring automatic SRC. 2019-09-19 21:24:40 +10:00
David Reid 81a65ce67f WASAPI: Disable auto-SRC when requesting default sample rate. 2019-09-18 17:47:46 +10:00
David Reid 1d04f03a85 WASAPI: Get WASAPI to perform automatic resampling. 2019-09-18 17:39:50 +10:00
David Reid 4ad67a666f Fix potential warnings when compiling with GCC. 2019-09-18 17:35:43 +10:00
David Reid 662246ce0b Update revision history. 2019-09-16 21:04:10 +10:00
David Reid 6ca22eb980 WASAPI: Fix a potential deadlock when starting a full duplex device. 2019-09-16 19:53:24 +10:00
David Reid 363f659351 Add yet more debug output to WASAPI. 2019-09-16 18:42:35 +10:00
David Reid 5645419cf3 Add more debug output for WASAPI. 2019-09-16 18:28:11 +10:00
David Reid ce05e5ed22 Add some debug output to the WASAPI backend. 2019-09-16 18:19:07 +10:00
David Reid bb22d85a71 Add an example for handling fixed sized callbacks. 2019-09-10 19:59:13 +10:00
David Reid c394fde2d9 Add some helper APIs for ring buffers.
* ma_rb_reset()
* ma_rb_available_read()
* ma_rb_available_write()
* ma_pcm_rb_reset()
* ma_pcm_rb_available_read()
* ma_pcm_rb_available_write()
2019-09-10 19:47:39 +10:00
David Reid 345ae4c288 Fix some find and replace errors. 2019-09-08 08:16:43 +10:00
David Reid 54a0d28f71 Update dr_wav. 2019-08-31 10:48:08 +10:00
David Reid a83175378b Update the ma_duplex test. 2019-08-31 10:42:32 +10:00
David Reid cc685b88ca Experimental optimzations to mono/stereo channel conversion. 2019-08-31 08:02:25 +10:00
David Reid a04780f888 Update test project files. 2019-08-28 08:15:46 +10:00
David Reid c221ba39a3 Version 0.9.7 2019-08-28 08:14:43 +10:00
David Reid 240aac8241 Update revision history. 2019-08-28 08:04:45 +10:00
David Reid fe19e4ccb7 Merge pull request #92 from kawa-yoiko/tiny-leaks
Fix a few tiny memory leaks
2019-08-27 22:02:27 +00:00
Shiqing c03716ba46 Fix a few tiny memory leaks 2019-08-28 01:06:28 +08:00
David Reid 7f3f0f4b6c WASAPI: Fix a deadlock in loopback mode when stopping the device.
This happens when stopping the device while nothing is being played and
is due to how WASAPI does not signal an event in loopback mode when
nothing is being played.
2019-08-27 18:54:09 +10:00
David Reid bfb19f2938 Experimental improvements for the ALSA backend. 2019-08-26 19:51:39 +10:00
David Reid 14507ba617 Add malgo to the Unofficial Bindings section in the readme. 2019-08-25 20:23:56 +10:00
David Reid 73dd7dc166 Add unofficial bindings section to the readme. 2019-08-25 19:33:13 +10:00
David Reid 6f609beb1c Remove unused code. 2019-08-25 17:19:06 +10:00
David Reid c5e6a392b3 Refactoring work on the null backend. 2019-08-25 17:05:49 +10:00
David Reid fdae092101 Refactoring work on the WinMM backend. 2019-08-25 16:51:39 +10:00
David Reid 9156652844 Update revision history. 2019-08-25 16:37:57 +10:00
David Reid f656101349 Version 0.9.6 2019-08-04 08:16:03 +10:00
David Reid dcca80dd70 Update dr_wav. 2019-08-04 08:13:17 +10:00
David Reid bca63039cb Update revision history. 2019-07-31 19:42:20 +10:00
David Reid 9f6d101ae4 Update test project files. 2019-07-30 20:15:18 +10:00
David Reid 8c993a7123 Fix a couple of memory leaks. 2019-07-30 20:15:01 +10:00
David Reid c520d7618d Update Emscripten build script to not build WASM by default. 2019-07-30 20:13:29 +10:00
David Reid 4b0305c656 Add some wide character versions of some string APIs. 2019-07-29 19:05:13 +10:00
David Reid e55143bc0a Add support for opening decoders using wide character paths. 2019-07-28 21:17:03 +10:00