These used to represent the size of the entire buffer, with the latency
defined by the the size of this buffer, divided by the period count.
This ended up being confusing because people assumed the buffer size by
itself was enough to define the latency. With this commit, these config
variables have been replaced with ones that take the size of a period
rather than the size of the entire buffer. These are called
periodSizeInFrames and periodSizeInMilliseconds. With this change, the
latency is determined by these settings alone, without needing to take
the period count into account. This should make things much easier to
understand.
This commit removes MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_LOW_LATENCY and
MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_CONSERVATIVE.
This commit removes ma_get_default_buffer_size_in_milliseconds() and
ma_get_default_buffer_size_in_frames().
This commit changes the following APIs to add an additional parameter
called pAllocationCallbacks. This is a pointer to a
ma_allocation_callbacks structure which is used to perform the actual
allocation/free.
Allocation callbacks can be set in ma_context_config for contexts and
ma_decoder_config for decoders. If it's left unset it will use
MA_MALLOC(), MA_REALLOC() and MA_FREE().
With this change, the ma_device_id union should now be a consistent
size across all platforms. This is important if cross-platform
programs want to save the device ID and need the size to be consistent.
The following APIs are removed:
* ma_sine_wave_read_f32()
* ma_sine_wave_read_f32_ex()
Use ma_sine_wave_read_pcm_frames() as a replacement. This allows you to
generate sine wave samples in any format, controlled by a parameter.
Resampling is now done through the ma_resampler API.
Note that with this commit the old sinc resampler has been removed
because it never worked properly and is going to replaced with a better
solution in the future. If you were using ma_src_algorithm_sinc you
should consider using ma_src_algorithm_linear with the linear.lpfCount
config variable set to MA_MAX_RESAMPLER_LPF_FILTERS.