miniaudio is updating it's amalgamation of dr_wav, etc. so that it's
all namespaced with "ma" which will make the amalgamated versions of
dr_libs entirely independent. There's no longer any need to mention
the decoding backends.
Documentation regarding stb_vorbis is removed so as to discourage
new users from using it. Support will not be removed until a
replacement Vorbis decoder can be amalgamated, but new users should
instead be guided to the libvorbis custom decoder in the extras folder.
* Sized types will now use miniaudio's types.
* Architecture macros now use miniaudio's macros.
* The c89atomic namespace has been renamed to ma_atomic which makes
it so c89atomic can be used alongside miniaudio without naming
conflicts.
Public issue https://github.com/mackron/miniaudio/issues/673
This commit makes it so SetFilePointer/Ex() are dynamically loaded at
runtime which allows miniaudio to branch dynamically based on available
support.
This is necessary because versions of Windows prior to XP do not
support the Ex version which results in an error when trying to run the
program.
Public issue https://github.com/mackron/miniaudio/issues/672
Since the calling thread is waiting anyway, it's better to just do the
processing on the calling thread rather than posting it to the job
queue and waiting. This ensures the calling thread stays busy which
will improve performance, but it also makes it so the calling thread
doesn't get stalled while already-queued jobs are getting processed.
This is still not working on my machine. The device will initialize and
run, but the captured data is always silent for some reason. I have
been unable to figure out how to make this work.
This commit allows initialization of the device to complete at the very
least.
Public issue https://github.com/mackron/miniaudio/issues/484
The issue here is that it's possible for miniaudio to attempt to access
data from a WAVEFORMATEXTENSIBLE structure when the object is actually
only a WAVEFORMATEX structure which is smaller which can therefore
result in trying to access unallocated memory.
Public issue https://github.com/mackron/miniaudio/issues/660
Smoothing is disabled by default. To enable it, you must use
ma_sound_init_ex() and configure it via the volumeSmoothTimeInPCMFrames
member of ma_sound_config.
This commit also fixes a bug where ma_gainer is not properly applying
smoothing.
Custom backends must now use the `ma_device_backend_vtable` object to
define their callbacks. All of these functions are largely the same,
except they all now take a `void*` as their first parameter which
represents the user data pointer.
The ma_backend_callbacks parameter has been removed from onContextInit
which means you must now statically define your callbacks in the
ma_device_backend_vtable object that you pass into the context config.
The `custom` member of the context config has been replaced with a new
set of members to support the ability to plug in multiple vtables.
With this commit, the device IO code is now using the new vtable
system, but each of the stock backends are still using the old
callbacks internally. There exists a compatibility wrapper vtable
which all stock backends are currently using. As stock backends migrate
over to the new system, the compatiblity vtable will be replaced with
the backend-specific vtable.
The new system is in preparation for improving the custom backend
system and making it more modular. The old system does not support
user data which make things a bit less flexible than it should be. In
addition, the old system does not make it easy to plug in multiple
custom backends.
The changes in this commit, and probably the next few, are just
scaffolding so that we don't have to break the build of every platform
as this is worked on.
* The pDoneFence parameter has been removed from ma_sound_init_*()
and replaced with pNotifications which is of the type
ma_sound_notifications. This object is where the pDoneFence is
now located.
* ma_sound_set_end_callback() has been removed. The callback is now
specified in the pNotifications object.
* The endCallback and pEndCallbackUserData members of ma_sound_config
have been removed. You must now specify this in pNotifications.