diff options
Diffstat (limited to 'include/xas')
| -rw-r--r-- | include/xas/mixer.h | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/include/xas/mixer.h b/include/xas/mixer.h new file mode 100644 index 0000000..9fd77cb --- /dev/null +++ b/include/xas/mixer.h @@ -0,0 +1,46 @@ +#ifndef _XAS_MIXER_H +#define _XAS_MIXER_H + +#include <sys/types.h> + +#include <xas/audio.h> + +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 */ | 
 
    