SoundIoOutStream.write_callback

In this callback, you call ::soundio_outstream_begin_write and ::soundio_outstream_end_write as many times as necessary to write at minimum frame_count_min frames and at maximum frame_count_max frames. frame_count_max will always be greater than 0. Note that you should write as many frames as you can; frame_count_min might be 0 and you can still get a buffer underflow if you always write frame_count_min frames.

For Dummy, ALSA, and PulseAudio, frame_count_min will be 0. For JACK and CoreAudio frame_count_min will be equal to frame_count_max.

The code in the supplied function must be suitable for real-time execution. That means that it cannot call functions that might block for a long time. This includes all I/O functions (disk, TTY, network), malloc, free, printf, pthread_mutex_lock, sleep, wait, poll, select, pthread_join, pthread_cond_wait, etc.

struct SoundIoOutStream
extern (C) @nogc nothrow
void function(SoundIoOutStream*, int frame_count_min, int frame_count_max) write_callback;

Meta