get_audio_stream_buffer - Tells you if you need to fill the audiostream or not.
Allegro game programming library.
#include <allegro.h>
void *get_audio_stream_buffer(AUDIOSTREAM *stream);
You must call this function at regular intervals while an audio stream is
playing, to provide the next buffer of sample data (the smaller the stream
buffer size, the more often it must be called). This function should not be
called from a timer handler. Example:
void *mem_chunk;
...
while (TRUE) {
...
mem_chunk = get_audio_stream_buffer(buffer);
if (mem_chunk != NULL) {
/* Refill the stream buffer. */
}
}
If it returns NULL, the stream is still playing the previous lot of data, so you
don't need to do anything. If it returns a value, that is the location of the
next buffer to be played, and you should load the appropriate number of
samples (however many you specified when creating the stream) to that address,
for example using an fread() from a disk file. After filling the buffer with
data, call free_audio_stream_buffer() to indicate that the new data is now
valid.
play_audio_stream(3), free_audio_stream_buffer(3),
exstream(3)