#ifndef _CODEC_DENOISE_H_
#define _CODEC_DENOISE_H_

#define AUDIO_CALLBACK_LEN  (256)

/*!
 * audio events structure
 * Used to notify dispatch  of  audio events
 */
typedef struct sAudioListener_t
{

    /*!
    * \brief Audio监听函数
    *                    a.在算法模块初始化时安装
    *                    b.在Audio收集满一帧(16ms/10ms)音频,中断来时触发
    *                    c.由于此函数具有周期性，其同时作为模糊定时器的tick,每一次触发即为一个心跳
    */
    void (*audioListener)(uint32_t, uint32_t, uint32_t);

} audioListener_s;

void denoise_init(void);
void push_primitive_audio_from_adc(int16_t *audio, uint32_t num_samples);
void push_primitive_audio_from_iis_rx(int16_t *audio, uint32_t num_samples);
void get_audio_for_iis_tx(int16_t *audio0, int16_t *audio1, uint32_t num_samples);
#endif