66 lines
2.2 KiB
C
66 lines
2.2 KiB
C
#ifndef _DRC_API_H_
|
|
#define _DRC_API_H_
|
|
|
|
#include "typedef.h"
|
|
#include "system/init.h"
|
|
#include "media/audio_stream.h"
|
|
|
|
//分频器 crossover:
|
|
typedef struct _CrossOverParam_TOOL_SET {
|
|
int way_num; //段数
|
|
int N; //阶数
|
|
int low_freq; //低中分频点
|
|
int high_freq; //高中分频点
|
|
} CrossOverUpdateParam;
|
|
|
|
|
|
|
|
//分频器 crossover:
|
|
typedef struct _CrossOverParam_EFF_TOOL_SET {
|
|
CrossOverUpdateParam parm;
|
|
} crossover_param_tool_set;
|
|
|
|
struct audio_crossover_filter_info {
|
|
CrossOverUpdateParam *crossover;
|
|
};
|
|
|
|
typedef int (*audio_crossover_filter_cb)(void *drc, struct audio_crossover_filter_info *info);
|
|
|
|
struct audio_crossover_param {
|
|
u32 sample_rate; //数据采样率
|
|
u8 channel; //通道数
|
|
u8 run32bit; //是否支持32bit 的输入数据处理 1:使能 0:不使能
|
|
u8 core;
|
|
u8 Qval;
|
|
CrossOverUpdateParam *crossover;
|
|
void *priv;
|
|
int (*output[3])(void *priv, void *data, u32 len);
|
|
};
|
|
|
|
struct audio_crossover {
|
|
void *work_buf;
|
|
CrossOverUpdateParam *crossover_inside;//
|
|
CrossOverUpdateParam *crossover;//
|
|
void *hw_crossover[3];
|
|
void *priv;
|
|
int (*output[3])(void *priv, void *data, u32 len);
|
|
|
|
u32 sample_rate; //采样率
|
|
u8 channel; //通道数
|
|
u8 run32bit; //是否使能32bit位宽数据处理1:使能 0:不使能
|
|
u8 updata; //系数更标志
|
|
u8 core;
|
|
u8 Qval;
|
|
};
|
|
|
|
|
|
struct audio_crossover *audio_crossover_open(struct audio_crossover_param *param);
|
|
int audio_crossover_close(struct audio_crossover *hdl);
|
|
int audio_crossover_run(struct audio_crossover *hdl, s16 *indata, s16 *outdata0, s16 *outdata1, s16 *outdata2, u32 len);//每次处理多个频带
|
|
void audio_crossover_update_parm(struct audio_crossover *hdl, CrossOverUpdateParam *crossover_parm);
|
|
void audio_crossover_set_bit_wide(struct audio_crossover *hdl, u8 run32bit);
|
|
int audio_crossover_run_pro(struct audio_crossover *hdl, s16 *indata, s16 *outdata, u32 len, int band_tar);//每次处理一个频带
|
|
int audio_crossover_flush_out(struct audio_crossover *hdl);
|
|
|
|
#endif
|