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
|