⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aud_ctrl.h

📁 MTK 1389E SOURCE CODE
💻 H
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    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 + -