📄 aud_ctrl.h
字号:
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 05/06/09 3:35p $ ****************/
/*************** $Revision:: 2 $ ****************/
/*************** ****************/
/*************** Description : Audio Control ****************/
/*************** Interface Header File ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : ****************/
/**********************************************************************/
#ifndef _AUD_CTRL_H_
#define _AUD_CTRL_H_
#include ".\dsp\adsp.h"
// *********************************************************************
// Default values
// *********************************************************************
#define AUD_DEFAULT_VOL 20
#define AUD_VSURR_GAIN_DEFAULT 12
#define AUD_VSURR_WGAIN_DEFAULT 12
#define AUD_VSURR_DELAY_DEFAULT 5
#define AUD_BASS_BOOST_GAIN_DEFAULT 20
#define AUD_BASS_PIPE_DELAY_DEFAULT 5
#define AUD_TREBLE_BOOST_GAIN_DEFAULT 20
#define AUD_REVERB_GAIN_DEFAULT 16
#if (DRAM_SZ == DRAM_2M) || defined(USE_DRAM_CFG1)
#define SPDIF_CHANGE_SWITCH_CNT 0 // 1.0 seconds
#define SPDIF_CHANGE_UNMUTE_CNT 0 // 0.5 seconds
#define PCM_FREQ_CHANGE_SWITCH_CNT 0 // 1.0 seconds
#define PCM_FREQ_CHANGE_UNMUTE_CNT 0 // 0.5 seconds
#else
#define SPDIF_CHANGE_SWITCH_CNT 50 // 1.0 seconds
#define SPDIF_CHANGE_UNMUTE_CNT 25 // 0.5 seconds
#define PCM_FREQ_CHANGE_SWITCH_CNT 50 // 1.0 seconds
#define PCM_FREQ_CHANGE_UNMUTE_CNT 25 // 0.5 seconds
#endif
#define AST_NORMAL_CHANGE_CNT 25 // 0.5 seconds
#define AST_NORMAL_CHANGE_UNMUTE_CNT 50 // 1 seconds
#define AST_PCM_CHANGE_UNMUTE_CNT 25 // 0.5 seconds
#ifdef MIC_AUTOMUTE
#define MIC_AUTOMUTE_CNT 25 // continuous low level counts
#define MIC_AUTOMUTE_ON_CNT 0xff
#endif
// *********************************************************************
// Control Mode
// *********************************************************************
#define DM_STEREO 0
#define DM_L_MONO 1
#define DM_R_MONO 2
#define DM_M_MONO 3
#define ADSP_OFF 0
#define ADSP_ON 1
#define KARA_MODE_DISABLE 0
#define KARA_MODE_ENABLE 1
#define MIC_EQ_DISABLE 0
#define MIC_EQ_ENABLE 1
#define PROLOGIC_DISABLE 0
#define PROLOGIC_ENABLE 1
#define PROLOGIC_AUTO 2
/* for SPDIF config, in setup menu option sequence */
#define SPDIF_OFF 0x00
#define SPDIF_RAW 0x10
#define SPDIF_PCM 0x20
#define SPDIF_MANUAL 0x40
#define SPDIF_PCM_LR SPDIF_IEC_LR
#define SPDIF_PCM_LS_RS SPDIF_IEC_LS_RS
#define SPDIF_PCM_C_LFE SPDIF_IEC_C_LFE
#define SPDIF_PCM_CH78 SPDIF_IEC_CH78
/* for vAdspSpdifManualSet() */
#define SPDIF_CDDA 0
#define SPDIF_AC3 1
#define SPDIF_DTS 2
#define SPDIF_MPEG 3
#define SPDIF_TYPE_MAX 4
/* for temp use */
#define KOK_DISABLE 0
#define KOK_LRMIX 1
#define KOK_VMUTE 2
#define AUDIO_KEY_RESUME 0
#define AUDIO_KEY_PLUS 1
#define AUDIO_KEY_MINUS 2
#define VOCAL_NO_ASSIST 0
/* for voice cancel */
#define VOCAL_VOICE_CANCEL 1
/* for L/R switch */
#define VOCAL_LEFT 2
#define VOCAL_RIGHT 3
/* for stream switch */
#define VOCAL_AUDIO1 4
#define VOCAL_AUDIO2 5
/* for AC3 karaoke mode */
#define VOCAL_NONE 6
#define VOCAL_V1 7
#define VOCAL_V2 8
#define VOCAL_BOTH 9
#define fgIsAc3Vocal(bType) ((bType >= VOCAL_NONE) && (bType <= VOCAL_BOTH))
#define VOACL_TYPE_MAX 10
#define AUDIO_STEREO 0
#define AUDIO_MONO_LEFT 11
#define AUDIO_MONO_RIGHT 12
#define AUDIO_MONO_MIXED 13
#define AUD_MIC_VOL_1 0x01
#define AUD_MIC_VOL_2 0x02
#define AUD_MIC_VOL_BOTH 0x03
#define AUD_CH_EQ_CTRL 1
#define AUD_VSURR_CTRL 2
#define AUD_BASS_BOOST_CTRL 3
#define AUD_TREBLE_BOOST_CTRL 4
#define AUD_BASS_PIPE_CTRL 5
#define AUD_REVERB_CTRL 6
/* for vAdspReverbMode() */
#define AUD_REVERB_MODE_OFF 0
#define AUD_REVERB_MODE_MAX 7
// for DSP processing mode
#define AUD_BASS_TO_SUB 1
#define AUD_SPECTRUM 2
// for vAdspPostDRC()
#define AUD_DRC_POST_OFF 0
#define AUD_DRC_POST_ON 1
#define AUD_DRC_POST_AUTO 2
// for vSetPinkNoiseSp()
#define AUD_PN_OFF 0
#define AUD_PN_ON 1
#define AUD_PN_NEXT 2
#define PINK_NOISE_PERIOD 3
#define PN_SPK_OFF 0
#define PN_SPK_L 1
#define PN_SPK_C 2
#define PN_SPK_R 3
#define PN_SPK_RS 4
#define PN_SPK_LS 5
#define PN_SPK_LFE 6
#define PN_SPK_NS 6
// for vAdspVsurrCtrl()
#define AUD_VSURR_OFF 0
#define AUD_VSURR_MTK 1
#define AUD_VSURR_N22 2
// *********************************************************************
// For equalizer preset
// *********************************************************************
#define AUD_EQ_TYPE_NONE 0
#define AUD_EQ_ROCK 1
#define AUD_EQ_POP 2
#define AUD_EQ_LIVE 3
#define AUD_EQ_DANCE 4
#define AUD_EQ_TECHNO 5
#define AUD_EQ_CLASSIC 6
#define AUD_EQ_SOFT 7
#define AUD_EQ_TYPE_MAX 8
// *********************************************************************
// For audio control.
// *********************************************************************
typedef union
{
BYTE Byte;
struct
{
BYTE fgChEq:1;
BYTE bVsurrType:2;
BYTE fgBassBoost:1;
BYTE fgTrebleBoost:1;
BYTE fgBassPipe:1;
BYTE fgReverb:1;
BYTE bReserve:1;
} Bit;
} unionSurrType;
typedef struct
{
struct
{
BYTE bCurVol:6;
BYTE fgIsMute:1;
BYTE fgLower:1;
} sVol;
struct
{
BYTE bEcho:7;
BYTE fgMic:1;
} sEcho;
struct
{
/* BYTE 0 */
BYTE bVocalMode:6;
BYTE fgMelody:1;
BYTE fgVoiceCancel:1;
#ifdef VOCAL_ASSIST_MIC_CNT
/* BYTE 1 */
BYTE fgMicActive:1;
BYTE bMicCnt:7;
#endif
} sVocal;
struct
{
/* BYTE 0 */
BYTE fgDownmixOn:1;
BYTE fgKaraMode:1;
BYTE fgVocalAssist:1;
BYTE fgSpdifOn:1;
BYTE bPinkNoiseSpk:4;
/* BYTE 1 */
BYTE bSpkFormat:3;
BYTE fgDspStop:1;
BYTE bAudioInMode:2;
BYTE Reserve:2;
} sFlag;
unionSurrType uSurrType;
CHAR cCurKey; /* audio key */
BYTE bKaraMixRatioLR;
struct
{
/* BYTE 0 */
BYTE bCnt;
/* BYTE 1 */
BYTE bState:2;
BYTE bFormat:2;
BYTE bNextMode:2;
BYTE Reserve:2;
} sIEC;
#ifdef PCM_FREQ_CHANGE_MUTE
struct
{
/* BYTE 0 */
BYTE bCnt;
/* BYTE 1 */
BYTE bState:2;
BYTE bFreq:2;
BYTE Reserve:4;
} sPcmFreq;
#endif
#ifdef MIC_AUTOMUTE
BYTE bMicAutomuteCnt;
#endif
} strucAudioCtrl;
/* reduce the internal state, try to keep share memory info */
#ifdef _AUD_CTRL_C_
xdata strucAudioCtrl _rAudioCtrl;
#else
extern xdata strucAudioCtrl _rAudioCtrl;
#endif
// *********************************************************************
// For IEC switching state
// *********************************************************************
#define AUD_IEC_SW_IDLE 0
#define AUD_IEC_SW_CHG 1
#define AUD_IEC_SW_UNMUTE 2
#define fgIsIecSwitching() (_rAudioCtrl.sIEC.bState != AUD_IEC_SW_IDLE)
#define fgIsIecSwitched() (_rAudioCtrl.sIEC.bState == AUD_IEC_SW_UNMUTE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -