101 lines
3.7 KiB
C
101 lines
3.7 KiB
C
#ifndef _EQ_CONFIG_H_
|
||
#define _EQ_CONFIG_H_
|
||
|
||
#include "media/audio_eq.h"
|
||
#include "media/audio_drc.h"
|
||
#include "spinlock.h"
|
||
#include "math.h"
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 用默认eq系数表的eq效果模式设置(设置模式,更新系数)
|
||
@param mode:EQ_MODE_NORMAL, EQ_MODE_ROCK,EQ_MODE_POP,EQ_MODE_CLASSIC,EQ_MODE_JAZZ,EQ_MODE_COUNTRY, EQ_MODE_CUSTOM
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
|
||
int eq_mode_set(EQ_MODE mode);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief eq模式切换
|
||
@param
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int eq_mode_sw(void);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取eq效果模式
|
||
@param
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
EQ_MODE eq_mode_get_cur(void);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 设置custom系数表的某一段系数
|
||
@param seg->index:第几段(从0开始)
|
||
@param seg->iir_type:滤波器类型(EQ_IIR_TYPE_HIGH_PASS, EQ_IIR_TYPE_LOW_PASS, EQ_IIR_TYPE_BAND_PASS, EQ_IIR_TYPE_HIGH_SHELF,EQ_IIR_TYPE_LOW_SHELF)
|
||
@param seg->freq:中心截止频率(20~22kHz)
|
||
@param seg->gain:总增益(-18~18)
|
||
@param seg->q : q值(0.3~30)
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int eq_mode_set_custom_seg(struct eq_seg_info *seg);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取custom系数表的增益、频率
|
||
@param index:哪一段
|
||
@param freq:中心截止频率
|
||
@param gain:增益
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int eq_mode_set_custom_info(u16 index, int freq, float gain);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取某eq系数表一段eq的增益
|
||
@param mode:哪个模式
|
||
@param index:哪一段
|
||
@return 增益
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
s8 eq_mode_get_gain(EQ_MODE mode, u16 index);
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 获取某eq系数表一段eq的中心截止频率
|
||
@param mode:EQ_MODE_NORMAL, EQ_MODE_ROCK,EQ_MODE_POP,EQ_MODE_CLASSIC,EQ_MODE_JAZZ,EQ_MODE_COUNTRY, EQ_MODE_CUSTOM
|
||
@param index:哪一段
|
||
@return 中心截止频率
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int eq_mode_get_freq(EQ_MODE mode, u16 index);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 设置用custom系数表一段eq的增益
|
||
@param index:哪一段
|
||
@param gain:增益
|
||
@return
|
||
@note 外部使用
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
int eq_mode_set_custom_param(u16 index, int gain);
|
||
|
||
/*----------------------------------------------------------------------------*/
|
||
/**@brief 设置播歌用的eq系数表的总增益
|
||
@param global_gain:总增益
|
||
@param mode:枚举型EQ_MODE
|
||
@return
|
||
@note
|
||
*/
|
||
/*----------------------------------------------------------------------------*/
|
||
void set_global_gain(EQ_MODE mode, float global_gain);
|
||
/*
|
||
*mode:枚举型EQ_MODE
|
||
*return 返回对应系数表的段数
|
||
* */
|
||
u8 eq_get_table_nsection(EQ_MODE mode);
|
||
|
||
#endif
|