#ifndef RT_Audioexport_C_H_
#define RT_Audioexport_C_H_

#include "common_c.h"

typedef struct Audioexport_Callback {
	void(*audioStreamOut)(AVDHandle handle,const char* uId, uint64 timestamp_ns, int sampleRate, int channels, const uint8 *data, unsigned int len);
	Audioexport_Callback(){
		audioStreamOut = NULL;
	}
}*LPAudioexport_Callback;

extern "C" {

	/**
	* 音频导出接口
	* 导出房间内用户的音频数据
	*/

	/** 初始化音频导出接口.
	*
	* @param[in] roomHandle 房间句柄。
	* @param[in] cb 音频导出模块回调接口指针。
	* @param[out] audioHandle 音频导出模块句柄。
	* @return 返回错误代码。
	*/
	RT_API_EXPORT Result avd_Audioexport_init(AVDHandle roomHandle, LPAudioexport_Callback cb, AVDHandle& audioexportHandle);
	/** 反初始化音频导出接口.
	*
	*/
	RT_API_EXPORT Result avd_Audioexport_uninit(AVDHandle audioexportHandle);
	/** 选择需要导出指定用户的音频
	* @param[in] audioexportHandle 音频导出模块句柄。
	* @param[in] userid 选择需要导出音频的用户id。
	* @param[in] freq 采样频率 :8000,16000,44100 ,如果不填，默认16000
	* @param[in] channels 通道数 :1,2  如果不填，默认是1
	*/
	RT_API_EXPORT Result avd_Audioexport_selectUser4Export(AVDHandle audioexportHandle, const char* userId, int freq = 16000, int channels = 1);
	/** 停止指定用户的音频导出
	*  @note 停止正在导出音频
	*/
	RT_API_EXPORT Result avd_Audioexport_stopExport(AVDHandle audioexportHandle);
}

#endif//RT_Audioexport_C_H_