#ifndef _XAS_MIXER_H #define _XAS_MIXER_H #include #include typedef struct _xas_mixer_input { xas_audio_stream *stream; float gain, bias_l, bias_r; struct _xas_mixer_input *next; } xas_mixer_input; typedef struct _xas_mixer { xas_mixer_input *inputs, *last; xas_audio_stream *output; void *buf; size_t buffer_size; } xas_mixer; xas_mixer *xas_mixer_new(size_t sample_size, size_t sample_rate, size_t channels, size_t buffer_size); void xas_mixer_destroy(xas_mixer *mixer); xas_audio_stream *xas_mixer_output(xas_mixer *mixer); xas_mixer_input *xas_mixer_input_add(xas_mixer *mixer, xas_audio_stream *stream, float gain, float pan); void xas_mixer_input_set_gain(xas_mixer_input *input, float gain); void xas_mixer_input_set_pan(xas_mixer_input *input, float pan); #endif /* _XAS_MIXER_H */