37 lines
1.3 KiB
C
37 lines
1.3 KiB
C
/**
|
|
* @file rem_aumix.h Audio Mixer
|
|
*
|
|
* Copyright (C) 2010 Creytiv.com
|
|
*/
|
|
|
|
struct aumix;
|
|
struct aumix_source;
|
|
|
|
/**
|
|
* Audio mixer frame handler
|
|
*
|
|
* @param sampv Buffer with audio samples
|
|
* @param sampc Number of samples
|
|
* @param arg Handler argument
|
|
*/
|
|
typedef void (aumix_frame_h)(const int16_t *sampv, size_t sampc, void *arg);
|
|
typedef void (aumix_record_h)(struct auframe *af);
|
|
typedef void (aumix_read_h)(struct auframe *af, void *arg);
|
|
|
|
int aumix_alloc(struct aumix **mixp, uint32_t srate,
|
|
uint8_t ch, uint32_t ptime);
|
|
void aumix_recordh(struct aumix *mix, aumix_record_h *recordh);
|
|
void aumix_record_sumh(struct aumix *mix, aumix_record_h *recordh);
|
|
int aumix_playfile(struct aumix *mix, const char *filepath);
|
|
uint32_t aumix_source_count(const struct aumix *mix);
|
|
int aumix_source_alloc(struct aumix_source **srcp, struct aumix *mix,
|
|
aumix_frame_h *fh, void *arg);
|
|
void aumix_source_set_id(struct aumix_source *src, uint16_t id);
|
|
void aumix_source_enable(struct aumix_source *src, bool enable);
|
|
void aumix_source_mute(struct aumix_source *src, bool mute);
|
|
int aumix_source_put(struct aumix_source *src, const int16_t *sampv,
|
|
size_t sampc);
|
|
void aumix_source_readh(struct aumix_source *src, aumix_read_h *readh);
|
|
void aumix_source_flush(struct aumix_source *src);
|
|
int aumix_debug(struct re_printf *pf, const struct aumix *mix);
|