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

📄 stpadsp.c

📁 MTK 1389E SOURCE CODE
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 05/06/20 2:56p    $       ****************/
/***************  $Revision:: 4                $       ****************/
/***************                                       ****************/
/***************   Description : Setup Menu            ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#include "general.h"
#include "stpmenu1.h"
#include "stposdfn.h"

#pragma NOAREGS

// *********************************************************************
// Function : void vSetADsp(BOOL fgReset) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vSetADsp(BOOL fgReset) large
{
  WORD wEEPos;
  strucDspChBand rChBand;

  {
    wEEPos = _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wEEPos;
  }

  switch (wEEPos)
  {

    case DRNG_POS:
      vAdspDynamicRange(bEepromReadByte(wEEPos));
      break;

#ifdef PLAYER_KARAOKE
    case MIC_TH_POSITION:
      vAdspMicThreshold(bEepromReadByte(wEEPos));
      break;

    case MIC_VOL1_POS:
      vAdspMicVol(AUD_MIC_VOL_1, bEepromReadByte(wEEPos));
      // 20050616, Our circuit is using mic 2, so we should adjust mic2 volume.
//      vAdspMicVol(AUD_MIC_VOL_2, bEepromReadByte(wEEPos));
      break;

    case MIC_VOL2_POS:
      vAdspMicVol(AUD_MIC_VOL_2, bEepromReadByte(wEEPos));
      break;

  #ifdef KARAOKE_SIMPLE_ECHO
    case MIC_ECHO_POS:
      vAdspEchoLevel(bEepromReadByte(wEEPos));
      break;
  #else /* original echo */
    case MIC_ECHO_POS:
      vAdspEchoVol(bEepromReadByte(wEEPos));
      break;

    case MIC_DEPTH_POS:
      vAdspEchoDepth(bEepromReadByte(wEEPos));
      break;

    case MIC_DELAY_POS:
      vAdspEchoDelay(bEepromReadByte(wEEPos));
      break;
  #endif /* original echo */

    case MIC_DRY_POS:
    case MIC_BAND1_POS:
    case MIC_BAND2_POS:
    case MIC_BAND3_POS:
      vAdspMicEq((BYTE)(wEEPos - MIC_DRY_POS + MIC_EQ_DRY), bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry));
                 //(char)bEepromReadByte(wEEPos)+ _rMenuRoot.prMenu[_bMenu]->prEntry[_bEntry-1]->wMaxOpt);
      break;
#endif /* PLAYER_KARAOKE */


#ifdef PLAYER_SURROUND
    case BASS_GAIN_POS:
      vAdspBassBoostGain(bEepromReadByte(wEEPos)+14);
      break;

    case CLEAR_GAIN_POS:
      vAdspTrebleBoostGain(bEepromReadByte(wEEPos)+14);
      break;

    case SB_DELAY_POS:
      vAdspBassPipeDelay(bEepromReadByte(wEEPos));
      break;

    case VS_GAIN_POS:
      vAdspVsurrGain(bEepromReadByte(wEEPos));
      break;

    case VS_W_GAIN_POS:
      vAdspVsurrWGain(bEepromReadByte(wEEPos));
      break;

    case VS_DELAY_POS:
      vAdspVsurrDelay(bEepromReadByte(wEEPos));
      break;

    case EQ_DRY_POS:
    case EQ_BAND_1_POS:
    case EQ_BAND_2_POS:
    case EQ_BAND_3_POS:
    case EQ_BAND_4_POS:
    case EQ_BAND_5_POS:
    case EQ_BAND_6_POS:
    case EQ_BAND_7_POS:
    case EQ_BAND_8_POS:
    case EQ_BAND_9_POS:
    case EQ_BAND_10_POS:
      if (fgReset)
      {
        break;
      }
      if (_fgNotify)
      {
        vAdspSurr(AUD_CH_EQ_CTRL, ADSP_ON);
      }

      rChBand.Union.Bit.Ch = EQ_CH_ALL;
      rChBand.Union.Bit.Band = (BYTE)(wEEPos - EQ_DRY_POS);

      vAdspChEqBand(rChBand, (char)_bDataCur + bOptMaxEntryNum(_rMenuRoot, _bMenu, _bEntry), TRUE);
      break;
#endif /* PLAYER_SURROUND */

    default:
      break;
  }
}

#ifdef PLAYER_SURROUND
// *********************************************************************
// Function : BYTE bSetReverbMd(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetReverbMd(WORD wEEPos, BYTE bValue) large
{
  BYTE bTmp = bValue;//bEepromReadByte(REVERB_MD_POS);

  if (bTmp > AUD_REVERB_MODE_MAX)
  {
    bTmp = 0;
    fgEepromWriteByte(REVERB_MD_POS, 0);
  }

  vAdspReverbMode(bTmp);
  
  return (ENTRY_FUN_OK);
}

// *********************************************************************
// Function : BYTE bSetEqPreset(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetEqPreset(WORD wEEPos, BYTE bValue) large
{
  BYTE bType = bEepromReadByte(EQ_PRESET_POS);

#ifdef CH_EQ_NO_SUPER_EQ
  if (bEepromReadByte(BASS_SW_POS) == EV_ON)
  {
    fgEepromWriteByte(BASS_SW_POS, EV_OFF);
    vAdspSurr(AUD_BASS_BOOST_CTRL, ADSP_OFF);
  }
  if (bEepromReadByte(CLEAR_SW_POS) == EV_ON)
  {
    fgEepromWriteByte(CLEAR_SW_POS, EV_OFF);
    vAdspSurr(AUD_TREBLE_BOOST_CTRL, ADSP_OFF);
  }
  if (bEepromReadByte(SBASS_SW_POS) == EV_ON)
  {
    fgEepromWriteByte(SBASS_SW_POS, EV_OFF);
    vAdspSurr(AUD_BASS_PIPE_CTRL, ADSP_OFF);
  }
#endif /* CH_EQ_NO_SUPER_EQ */

  if (bType == EV_NONE)
  {
    vAdspSurr(AUD_CH_EQ_CTRL, ADSP_OFF);
  }
  else
  {
    vAdspSurr(AUD_CH_EQ_CTRL, ADSP_ON);
  }

  vAdspChEqLoadPreset(bType);

#ifdef CH_EQ_NO_SUPER_EQ
  return (ENTRY_FUN_REDRAW);
#else
  return (ENTRY_FUN_OK);
#endif
}

#endif /* PLAYER_SURROUND */

#ifdef PLAYER_KARAOKE
// *********************************************************************
// Function : BYTE bSetMic(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetMic(WORD wEEPos, BYTE bValue) large
{
  if (bEepromReadByte(MIC_SW_POS) == EV_ON)
  {
    vAdspMicMix(MIC_MIX_LR, ADSP_ON);   
  #ifdef PLAYER_MIC_EQ
    vAdspSetMicEq(ADSP_ON);
  #else
    vAdspSetMicEq(ADSP_OFF);
  #endif
    vAdspKaraMode(KARA_MODE_ENABLE);
  }
  else
  {
    vAdspMicMix(MIC_MIX_LR, ADSP_OFF);
    vAdspSetMicEq(ADSP_OFF);
    vAdspKaraMode(KARA_MODE_DISABLE);
  }
  
  return (ENTRY_FUN_OK);
}
#elif (defined(USE_EXTERNAL_KARAOKE) && defined(MANUAL_MIC_ON_OFF))
// *********************************************************************
// Function : BYTE bSetMic(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bSetMic(WORD wEEPos, BYTE bValue) large
{
  /* switch microphone mixing I/O here */
  if (bEepromReadByte(MIC_SW_POS) == EV_ON)
  {
    vSetAuxIO(AUXIO_MIC_MIX, AUXIO_MIC_MIX_ON);
  }
  else
  {
    vSetAuxIO(AUXIO_MIC_MIX, AUXIO_MIC_MIX_OFF);
  }
}
#endif /* USE_EXTERNAL_KARAOKE, MANUAL_MIC_ON_OFF */

#if defined(PLAYER_KARAOKE) && defined(KARAOKE_SCORING)
BYTE bKokScoreSwitch(WORD wEEPos, BYTE bValue) large
{
  BYTE bKScoreSw = bEepromReadByte(KSCORE_SW_POS);

  vAdspKScoreSw(bKScoreSw, 99, 10);
  
  return (TRUE);
}
#endif /* PLAYER_KARAOKE, KARAOKE_SCORING */

#ifdef DOLBY_PROLOGIC
// *********************************************************************
// Function : void vSetProlog(void) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vSetProlog(void) large
{
  BYTE bMode = bEepromReadByte(PROLOG_SW_POS);

  switch (bMode)
  {
    case EV_PROLOGIC_ON:
    case EV_PROLOGIC_AUTO:
    #ifdef PROLOGIC_NO_KEY_SHIFT
      cAdspAudKeyCtrl(AUDIO_KEY_RESUME);
    #endif /* PROLOGIC_NO_KEY_SHIFT */

      if (bEepromReadByte(PROLOG_SW_POS) == EV_PROLOGIC_ON)
      {
        vAdspPrologMode(PROLOGIC_ENABLE);
      }
      else
      {
        vAdspPrologMode(PROLOGIC_AUTO);
      }

  #ifndef SET_VSURR_IN_SPKCFG
      if (bEepromReadByte(VSURR_SW_POS) == EV_ON)
      {
        vAdspSurr(AUD_VSURR_CTRL, ADSP_OFF);
      }
  #endif
      break;
    case EV_PROLOGIC_OFF:
      vAdspPrologMode(PROLOGIC_DISABLE);

  #ifdef SET_VSURR_IN_SPKCFG
      if ((bEepromReadByte(SPEAKER_POSITION) == EV_DOWN_VSURR)
    #ifdef USE_N22_VSURR
          || (bEepromReadByte(SPEAKER_POSITION) == EV_DOWN_N22)
    #endif
         )
      {
        vAdspSurr(AUD_VSURR_CTRL, ADSP_ON);
      }
  #else /* !SET_VSURR_IN_SPKCFG */
      if (bEepromReadByte(VSURR_SW_POS) == EV_ON)
      {
        vAdspSurr(AUD_VSURR_CTRL, ADSP_ON);
      }
  #endif /* !SET_VSURR_IN_SPKCFG */
      break;
  }
}
#endif /* DOLBY_PROLOGIC */

// *********************************************************************
// Function : BYTE bIecConfig(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BYTE bIecConfig(WORD wEEPos, BYTE bValue) large
{
  BYTE bTmp = bEepromReadByte(IEC958_POSITION);

  switch (bTmp)
  {
    case EV_RAW:
#if (defined(SIMPLE_MENU) && defined(SPDIF_NO_MPEG_OUT))
      /* assume simple menu does not has manual SPDIF mode,
         no need to restore the setting */
      vAdspSpdifManualSet(SPDIF_CDDA, EV_RAW);
      vAdspSpdifManualSet(SPDIF_AC3,  EV_RAW);
      vAdspSpdifManualSet(SPDIF_DTS,  EV_RAW);
      vAdspSpdifManualSet(SPDIF_MPEG, EV_PCM);
      vAdspSpdifMode(SPDIF_MANUAL);
#elif (defined(SPDIF_FORCE_MPEG_OUT))
      vAdspSpdifManualSet(SPDIF_CDDA, EV_RAW);
      vAdspSpdifManualSet(SPDIF_AC3,  EV_RAW);
      vAdspSpdifManualSet(SPDIF_DTS,  EV_RAW);
      vAdspSpdifManualSet(SPDIF_MPEG, EV_RAW);
      vAdspSpdifMode(SPDIF_MANUAL);
#else /* RAW data for MPEG */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -