1 /**
2  * @file rem_aumix.h Audio Mixer
3  *
4  * Copyright (C) 2010 Creytiv.com
5  */
6 
7 struct aumix;
8 struct aumix_source;
9 
10 /**
11  * Audio mixer frame handler
12  *
13  * @param buf Buffer with audio samples
14  * @param sz  Number of bytes
15  * @param arg Handler argument
16  */
17 typedef void (aumix_frame_h)(const int16_t *sampv, size_t sampc, void *arg);
18 
19 int aumix_alloc(struct aumix **mixp, uint32_t srate,
20 		uint8_t ch, uint32_t ptime);
21 int aumix_playfile(struct aumix *mix, const char *filepath);
22 uint32_t aumix_source_count(const struct aumix *mix);
23 int aumix_source_alloc(struct aumix_source **srcp, struct aumix *mix,
24 		       aumix_frame_h *fh, void *arg);
25 void aumix_source_enable(struct aumix_source *src, bool enable);
26 int  aumix_source_put(struct aumix_source *src, const int16_t *sampv,
27 		      size_t sampc);
28 void aumix_source_flush(struct aumix_source *src);
29