📄 adm01_codec.h
字号:
Classic,
Jazz,
Pop
}EQ_Mode;
typedef struct{
UCHAR EQ_Mode;
}EQ_Param_t;
typedef struct {
UCHAR Reverb_Mode; // 1B
} Reverb_Param_t;
#if AUD_SUPPORT_DUAL
typedef struct{
UCHAR Dual_Mode;
}DualMode_Param_t;
#endif
/******************************************************************************
* FOR BASSMANAGEMENT
******************************************************************************/
typedef enum{
BM_NONE,
BM_SMALL,
BM_LARGE
}BM_Size;
typedef struct{
UCHAR FrontSize; // 1B
UCHAR CenterSize; // 1B
UCHAR RearSize; // 1B
UCHAR WooferSize; // 1B
}BM_Param_t;
/******************************************************************************
* FOR PSCON
******************************************************************************/
typedef enum{
PSCON_MONO,
PSCON_STEREO
}PSCON_Chidx;
typedef enum{
PSCON_Fs_48 = 3,
PSCON_Fs_44,
PSCON_Fs_32,
PSCON_Fs_24,
PSCON_Fs_22,
PSCON_Fs_16,
PSCON_Fs_12,
PSCON_Fs_11,
PSCON_Fs_08
}PSCON_Fsidx;
typedef enum{
PSCON_FN_256,
PSCON_FN_288,
PSCON_FN_384,
PSCON_FN_512,
PSCON_FN_576,
PSCON_FN_768,
PSCON_FN_1024,
PSCON_FN_1152,
PSCON_FN_1536
}PSC_FrameNo;
typedef enum {
PSC_SIDX_0_F = 0, //recommend not to use this
PSC_SIDX_5_F = 5,
PSC_SIDX_6_F = 6,
PSC_SIDX_7_F = 7,
PSC_SIDX_8_F = 8,
PSC_SIDX_9_F = 9,
PSC_SIDX_NORMAL = 10,
PSC_SIDX_11_S = 11,
PSC_SIDX_12_S = 12,
PSC_SIDX_13_S = 13,
PSC_SIDX_14_S = 14,
PSC_SIDX_15_S = 15,
PSC_SIDX_20_S = 20 //recommend not to use this
} PSC_Sidx_t;
typedef struct {
/* Pitch and Speed Control module */
UCHAR PSC_Pidx;
UCHAR PSC_Sidx;
UCHAR PSC_Chidx;
UCHAR PSC_Fsidx;
USHORT PSC_FrameNo;
USHORT PSC_Samples;
} Pscon_Param_t;
/******************************************************************************
* FOR Speaker Voluem Control
******************************************************************************/
typedef struct{
UCHAR FL_Vol;
UCHAR FR_Vol;
UCHAR SL_Vol;
UCHAR SR_Vol;
UCHAR C_Vol;
UCHAR SUB_Vol;
}SpkVol_Param_t;
/******************************************************************************
* FOR Karaoke Host Control
******************************************************************************/
typedef enum {
PSC_PIDX_6_F = 18,
PSC_PIDX_5_F = 19,
PSC_PIDX_4_F = 20,
PSC_PIDX_3_F = 21,
PSC_PIDX_2_F = 22,
PSC_PIDX_1_F = 23,
PSC_PIDX_NORMAL = 24,
PSC_PIDX_1_S = 25,
PSC_PIDX_2_S = 26,
PSC_PIDX_3_S = 27,
PSC_PIDX_4_S = 28,
PSC_PIDX_5_S = 29,
PSC_PIDX_6_S = 30
} PSC_Pidx_t;
#if 1//2005.06.04
typedef enum {
ME_Delay1,
ME_Delay2,
ME_Delay3,
ME_Delay4,
ME_Delay5,
ME_Delay6,
ME_Delay7,
ME_Delay8
} ME_Delay_t;
typedef enum {
ME_Decay1,
ME_Decay2,
ME_Decay3,
ME_Decay4,
ME_Decay5,
ME_Decay6,
ME_Decay7,
ME_Decay8,
ME_Decay9,
ME_Decay10,
ME_Decay11,
ME_Decay12,
ME_Decay13,
ME_Decay14,
ME_Decay15,
ME_Decay16,
ME_Decay17,
ME_Decay18
} ME_Decay_t;
typedef enum {
ME_EchoGain1,
ME_EchoGain2,
ME_EchoGain3,
ME_EchoGain4,
ME_EchoGain5,
ME_EchoGain6,
ME_EchoGain7,
ME_EchoGain8
} ME_Gain_t;
#else
typedef enum {
ME_Delay_20ms,
ME_Delay_40ms,
ME_Delay_60ms,
ME_Delay_80ms,
ME_Delay_100ms,
ME_Delay_120ms,
ME_Delay_140ms,
ME_Delay_160ms,
ME_Delay_180ms,
ME_Delay_200ms
} ME_Delay_t;
typedef enum {
ME_Decay0_5s,
ME_Decay1_0s,
ME_Decay1_5s,
ME_Decay2_0s
} ME_Decay_t;
#endif
typedef struct {
/* Mic Echo module */
UCHAR ME_Onoff;
UCHAR ME_delay;
UCHAR ME_decay;
UCHAR ME_gain;
//#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE )
#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA) //jy kara
SHORT Mic_Center;
UCHAR dummy_byte;
/*
This stucture needs to be 2-byte aligned !!
So, i added dummy one byte here
-- hspark 051014
*/
#else
UCHAR Mic_Center;
#endif
UCHAR ME_volume;
USHORT Mic_Variation;
USHORT MicNoiseThres;
UCHAR Mic_SKIP; /* added to reduce POP noise : hspark 050913 */
#if AUD_SUPPORT_HARMONIZER
/* Voice Harmonizer module */
UCHAR VHC_ChordIndex; // 1B
UCHAR VHC_Pidx; // normal=12 (6~18) : valid for ChordIndex=1 or 2
#endif
} Kara_comm_Param_t;
/* This structure used only communication with arm */
typedef struct {
UCHAR ME_Onoff;
UCHAR ME_delay;
UCHAR ME_decay;
UCHAR ME_gain;
//#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE )
#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA) //jy kara
SHORT Mic_Center;
UCHAR dummy_byte;
/*
This stucture needs to be 2-byte aligned !!
So, i added dummy one byte here
-- hspark 051014
*/
#else
UCHAR Mic_Center;
#endif
UCHAR ME_volume;
USHORT Mic_Variation;
USHORT MicNoiseThres;
#if AUD_SUPPORT_HARMONIZER
UCHAR Mic_SKIP; /* added to reduce POP noise : hspark 050913 */
/* Voice Harmonizer module */
UCHAR VHC_ChordIndex; // 1B
UCHAR VHC_Pidx; // normal=12 (6~18) : valid for ChordIndex=1 or 2
#endif
UCHAR Kara_On; /* 1: on, 0 : off all Karaoke Post Codec */
UINT MicInBufStartPtr; /* 4B input buffer start pointer of Mic Echo */
UINT MicInBufEndPtr; /* 4B input buffer end pointer of Mic Echo */
UINT MicInBufRDPtr; /* 4B input buffer read pointer of Mic Echo */
} Kara_Hcomm_Param_t;
/*
PSC_Pidx -- Pitch(Key Shift) Index肺 24老锭 澜沥捞 函拳登瘤 臼篮 惑怕 溜 normal捞绊
乔酒畴俊辑 茄 苛鸥宏(12俺狼 扒馆:闰祸7 八篮祸5)客 措览等促绊 积阿窍矫搁 邓聪促.
2窜拌付促 阿 扒馆 窍唱究阑 狼固 茄促绊 焊矫搁 邓聪促.
12老 版快 馆 苛鸥宏 郴覆(1/2 b)阑, 36老 版快 馆 苛鸥宏 棵覆(1/2 #)狼
澜阑 父甸绢 忱聪促.
PSC_Sidx -- Speed Index肺 10老锭绰 犁积 加档狼 函拳啊 绝绰 版快捞绊
0老锭 2硅 狐福霸(length * 0.5) 犁积登哥 蔼阑 窍唱究 棵副锭 付促 10鳖瘤绰
0.05究 刘啊(0.50, 0.55, 0.60...,0.95)登绊, 20老锭 2硅 蠢府霸(length*2) 犁积登哥
蔼阑 窍唱究 棵副锭 付促 11何磐 0.1究 刘啊(1.1, 1.2,...,2.0)邓聪促.
泅犁 力傍等 扼捞宏矾府俊辑绰 沥犬窍霸 困俊 攫鞭茄 蔼栏肺 函券 登瘤绰 臼嚼聪促.
PSC_Chidx -- Channel Index肺 MONO客 STEREO甫 瘤盔钦聪促.
PSC_Fsidx -- Sampling Frequency Index肺 48KHz(=3)何磐 8KHz(=11)鳖瘤 瘤盔钦聪促.
PSC_FrameNo -- PScon俊辑 贸府窍绰 涝仿 橇饭烙 荤捞令甫 沥狼茄巴栏肺
涝仿 基敲 荐啊 256老版快 FN_256(=0)栏肺 瘤沥窍搁 邓聪促.
力傍等 扼捞宏矾府绰 FN_768(=5)鳖瘤 瘤盔钦聪促.
PSC_Samples -- Speed control捞唱 Pitch control阑 荐青茄 第 积己登绰 基敲 荐涝聪促.
- unsigned int MX_MicBufSize;
189 samples x 2 ch x 8 bits x 10 chunk = 3,780 bytes (0xEC4)
10俺肺 窍扁肺 沁栏聪 捞 箭磊啊 嘎阑 巴涝聪促
- unsigned int MX_PSConBufSize;
(EX MP3) 576 x 2 x 2 x 2 = 4,608 bytes (0x1200)
PSC buffer size. main codec output buffer客 悼老茄 size.
ME_delay : 俊内客狼 矫埃埃拜
ME_decay : 俊内己盒捞 临绢靛绰 厚啦
*/
/******************************************************************************
* FOR TimeDelay
******************************************************************************/
typedef enum{
TD_S_0msec,
TD_S_5msec,
TD_S_10msec,
TD_S_15msec
}TD_Sur;
typedef enum{
TD_C_0msec,
TD_C_1msec,
TD_C_2msec,
TD_C_3msec,
TD_C_4msec,
TD_C_5msec
}TD_Cen;
typedef struct{
UCHAR TD_Sur; // 1B
UCHAR TD_Cen; // 1B
}TD_Param_t;
typedef struct{
USHORT VolumeLevel; // 2B /* 0:MAX, 1~74:-1db~-74db, 75:MUTE */
}SWVol_Param_t;
/******************************************************************************
* FOR ProLogic II
******************************************************************************/
typedef enum{
DECMODE_PROLOGIC = 0,
DECMODE_VIRTUAL = 1,
DECMODE_MUSIC = 2,
DECMODE_MOVIE = 3,
DECMODE_MATRIX = 4
} PL2_DECMODE;
typedef struct{
UCHAR DecMode;
} ProLogic_t;
/******************************************************************************
* FUNCTIONS
******************************************************************************/
CodecErrCode_t ADM_SetAc3Decoder( VOID );
CodecErrCode_t ADM_SetMpaDecoder( VOID );
CodecErrCode_t ADM_SetLpcmDecoder( VOID );
CodecErrCode_t ADM_SetDtsDecoder( VOID );
CodecErrCode_t ADM_SetSddsDecoder( VOID );
CodecErrCode_t ADM_SetMlpDecoder( VOID );
CodecErrCode_t ADM_SetHdcdDecoder( VOID );
CodecErrCode_t ADM_SetMp3Decoder( VOID );
CodecErrCode_t ADM_SetWmaDecoder( VOID );
CodecErrCode_t ADM_SetCalnoiseDecoder( BOOL wait_message );
CodecErrCode_t ADM_SetCddaDecoder( BOOL wait_message );
CodecErrCode_t ADM_SetTimeDelay( BOOL init );
CodecErrCode_t ADM_SetBassManagement( BOOL init );
CodecErrCode_t ADM_SetSpdifPcmChannel( BOOL init );
/******************************************************************************
* EXTERN VARIABLES
******************************************************************************/
extern AC3_Parameter_t gADM_Ac3Para;
extern LPCM_Param_t gADM_LpcmPara;
extern DTS_Param_t gADM_DtsDoPara;
extern DTS_Param_t gADM_DtsDecPara;
extern CDDA_Param_t gADM_CddaPara;
extern MP3_Param_t gADM_MP3Para;
extern WMA_Param_t gADM_WMAPara;
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -