Allow storing multiple buffers in a ALbufferlistitem
commit30007263e5ffe1883d634081dcbfcc65dbf58cc4
authorChris Robinson <chris.kcat@gmail.com>
Sat, 16 Dec 2017 06:59:51 +0000 (15 22:59 -0800)
committerChris Robinson <chris.kcat@gmail.com>
Sat, 16 Dec 2017 06:59:51 +0000 (15 22:59 -0800)
treec5425a3a3d6dce7f0b6ac94cd7f576ec4b0fe1a6
parentff3d31e17f37cdc6c2740b73a5e5ea1407bccb35
Allow storing multiple buffers in a ALbufferlistitem

This will be to allow buffer layering, multiple buffers of the same format and
sample rate that are mixed together prior to resampling, filtering, and
panning. This will allow composing sounds from individual components that can
be swapped around on different invocations (e.g. layer SoundA and SoundB on one
instance and SoundA and SoundC on a different instance for a slightly different
sound, then just SoundA for a third instance, and so on). The longest buffer
within the list item determines the length of the list item.

More work needs to be done to fully support it, namely the ability to specity
multiple buffers to layer for static and streaming sources. Also the behavior
of loop points for layered static sources should be worked out. Should also
consider allowing each layer to have a sample offset.
Alc/ALu.c
Alc/mixer.c
OpenAL32/Include/alSource.h
OpenAL32/alSource.c