The thread priority can be set via ma_thread_create() and can be set in
the context config along side the thread priority for configuring the
size of the stack for the audio thread.
* Early work on asynchronously decoding into a memory buffer. This is
just an early implementation - there are still issues needing to be
figured out. In particular, sounds do not automatically start until
the entire file has been decoded. It would be good if they could
start as soon as the first second or so of data has been decoded.
* Initial work on infrastructure for spatialization, panning and
pitch shifting.
* Add ma_engine_sound_set_pitch()
Spatialization and panning is not yet implemented, but pitch shifting
should now be working.
This change makes it so MA_AT_END is returned when a non-looping data
source reaches the end. This is how the caller can know to do clean up
or whatnot.
* Add support for volume control to ma_mixer_mix_*().
* Add support for specifying an effect to apply before mixing.
* Add optimized pipeline for memory mappable data sources.
* Remove some unnecessary functions:
- ma_mixer_mix_pcm_frames_ex()
- ma_mixer_mix_callbacks()
- ma_mixer_mix_decoder()
- ma_mixer_mix_audio_buffer()
- ma_mixer_mix_waveform()
- ma_mixer_mix_noise()
- ma_mixer_mix_rb_ex()
The ma_audio_buffer object is used for storing raw audio data in memory
and reading from it like any other data source. It supports flexible
memory management, reading, seeking, memory mapping and looping.
See documentation under "Audio Buffers" for a detailed description.