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