77 lines
3.0 KiB
C
77 lines
3.0 KiB
C
#ifndef SPECTRUM_FFT_API_H
|
||
#define SPECTRUM_FFT_API_H
|
||
|
||
#include "spectrum/SpectrumShow_api.h"
|
||
|
||
//该模块 mips 消耗5M
|
||
//RAM 单声道时:4.4Kbyte
|
||
//RAM 双声道时:5.4Kbyte
|
||
|
||
/**
|
||
* @brief 频谱运算参数结构体
|
||
*/
|
||
typedef struct _spectrum_fft_open_parm {
|
||
unsigned int sr; /*!< 采样率 */
|
||
unsigned char channel; /*!< 通道数 */
|
||
unsigned char mode; /*!< 模式,双声道起作用,0计算的是第一声道的频谱值,1计算的是第二声道频谱值,2为第一声道与第二声道相加除2的频谱值 */
|
||
unsigned short run_points; /*!< 运行一次采样点数 */
|
||
float attackFactor; /*!< 下降因子[0,1) */
|
||
float releaseFactor; /*!< 上升因子[0,1) */
|
||
} spectrum_fft_open_parm;
|
||
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 打开频谱运算
|
||
@param priv 私有指针
|
||
@param parm 始化参数,详见结构体spectrum_fft_open_parm
|
||
@return 句柄
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
void *audio_spectrum_fft_open(void *priv, void *parm);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 关闭频谱计算处理
|
||
@param priv 句柄
|
||
@return 0:成功 -1:失败
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int audio_spectrum_fft_close(void *priv);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 频谱计算同步处理,每次run都会把输入buf消耗完,才会往下走
|
||
@param priv 句柄
|
||
@param data 输入数据
|
||
@param len 输入数据长度
|
||
@param sample_rate 采样率
|
||
@return len
|
||
@note 频谱计算处理,只获取输入的数据,不改变输入的数据
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int audio_spectrum_fft_run(void *priv, short *data, int len, int sample_rate);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 频谱计算运行过程做开关处理
|
||
@param priv 句柄
|
||
@param en 0 关闭频响运算 1 打开频响运算
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
void audio_spectrum_fft_switch(void *priv, unsigned char en);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取频谱个数
|
||
@param priv 句柄
|
||
@return 返回频谱的个数
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int audio_spectrum_fft_get_num(void *priv);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取频谱值
|
||
@param priv 句柄
|
||
@return 返回存储频谱值的地址
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
short *audio_spectrum_fft_get_val(void *priv);
|
||
|
||
#endif
|