📄 stpadsp.c
字号:
/**********************************************************************/
/*************** 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 + -