This was specific to devices, but now that miniaudio has expanded it's
no longer useful. The new logging system is more generic and useable by
parts outside of devices and contexts.
The previous version only allowed in-place clipping, whereas the new
one supports clipping into a separate buffer. The input and output
buffers can point to the same buffer in which case the clip will be
performed in-place.
This removes the `pBufferOut` parameter from the following APIs:
* ma_rb_commit_read
* ma_rb_commit_write
* ma_pcm_rb_commit_read
* ma_pcm_rb_commit_write
This is work towards using the heap for storing per-channel data so we
can get rid of upper channel count limit and remove MA_MAX_CHANNELS or
at the very least stop MA_MAX_CHANNELS from affecting overall memory
usage.
Previously this was restricted to 2 input buses and 2 output buses, but
this has been lifted to 254. When the number exceeds 2, internal data
structures will be allocated on the heap, otherwise they'll use a local
array contained within the ma_node structure.
This commit changes the node configuration. Previously there was a
fixed sized array for specifying the channel counts for each bus. This
array must now be defined outside of the config by the caller. The
following config variables have been renamed:
* inputChannels > pInputChannels
* outputChannels > pOutputChannels
This commit also adds the ability to configure input and output bus
counts on a per-instance basis rather than via the node vtable. To do
this, set the bus count in the vtable to MA_NODE_BUS_COUNT_UNKNOWN.
This will tell miniaudio to look at the node config to determine the
bus count rather than the vtable. It's an error to specify this in the
node config if the vtable specifies anything other than
MA_NODE_BUS_COUNT_UNKNOWN.
* The old logging callback has been deprecated and will be removed in
version 0.11.
* MA_LOG_LEVEL_DEBUG has been added and MA_LOG_LEVEL_VERBOSE
deprecated.
* The MA_LOG_LEVEL option has been deprecated. All log levels are now
posted to the logging callbacks, except for MA_LOG_LEVEL_DEBUG
which is only posted if MA_DEBUG_OUTPUT is enabled.
The new logging system works by creating a `ma_log` object. You then
register callbacks that will be fired when a log message is posted. You
can register up to 4 callbacks. You the specify a pointer to this log
object in the context config. This replaces the `logCallback` variable.
The old logging system was specific to context's and device's, however
with the introduction of new APIs this is no longer appropriate. The
new logging system is completely generic with a simple user-data
pointer being used for application-specific data.
This commit adds some helper APIs for retrieving a pointer to the
context's log object:
* ma_context_get_log()
* ma_device_get_log()
* ma_device_get_context()
The MA_DEBUG_OUTPUT option has been improved for Android builds. With
the new system, __android_log_print() will be used instead of printf().