📄 stpadsp.c
字号:
WriteDRAMTbl(0x08, 0x8955, 0); //Normal
WriteDRAMTbl(0x08, 0x8956, 0); //Normal
WriteDRAMTbl(0x08, 0x8957, 0); //Normal
WriteAUD(AUD_ACLKCFG, 0x64); //Normal
break;
#else
case EV_192K:
vAdspPcmFreq(ADSP_IEC_PCM_192K);
break;
case EV_96K:
vAdspPcmFreq(ADSP_IEC_PCM_96K);
break;
case EV_48K:
default:
vAdspPcmFreq(ADSP_IEC_PCM_48K);
break;
#endif
}
return (ENTRY_FUN_OK);
}
#endif /* SPDIF_PCM_FREQ_SELECT */
#endif
#endif /* !SIMPLE_MENU */
#ifdef TWO_CHANNEL_ONLY
// *********************************************************************
// Function : BYTE bSpkConfig(WORD wEEPos, BYTE bValue) large
// Description :
// Parameter :
// Return : None
// *********************************************************************
BYTE bSpkConfig(WORD wEEPos, BYTE bValue) large
{
BYTE bTemp;
strucDownmixConfig rDownSpk;
rDownSpk.Front = SPK_LARGE;
rDownSpk.Sub = ADSP_OFF;
switch(bEepromReadByte(SPEAKER_POSITION))
{
case EV_DOWN_LORO:
rDownSpk.Mode = DOWNMIX_LO_RO;
break;
case EV_DOWN_LTRT:
default:
rDownSpk.Mode = DOWNMIX_LT_RT;
break;
}
vAdspSpkDownmix(rDownSpk);
return (ENTRY_FUN_OK);
}
#else /* not defined TWO_CHANNEL_ONLY */
BYTE bSpkConfig(WORD wEEPos, BYTE bValue) large
{
BYTE bTemp;
#ifdef USE_M62429
BYTE bTmp;
#endif
BYTE bDownmix;
strucDownmixConfig rDownSpk;
strucSpkConfig rSpeak;
#if !defined(DVR938)&&!defined(DVR979)
bTemp = bEepromReadByte(FNT_SPK_POSITION);
#else
bTemp = 0;
#endif
switch(bTemp)
{
case EV_LARGE:
rDownSpk.Front = SPK_LARGE;
rSpeak.Fr = SPK_LARGE;
break;
case EV_SMALL:
rDownSpk.Front = SPK_SMALL;
rSpeak.Fr = SPK_SMALL;
break;
}
#if !defined(DVR938)&&!defined(DVR979)
bTemp = bEepromReadByte(SUB_SPK_POSITION);
#else
bTemp = 0;
#endif
switch(bTemp)
{
case EV_OFF:
#ifdef USE_M62429
WriteMuteSwVol();
#endif
rDownSpk.Sub = ADSP_OFF;
rSpeak.Sub = ADSP_OFF;
break;
case EV_ON:
#ifdef USE_M62429
if(bSharedInfo(SI_DISC_TYPE) != SV_DVD_VIDEO && bSharedInfo(SI_DISC_TYPE) != SV_DVD_AUDIO && bSharedInfo(SI_DISC_TYPE) != SV_MINI_DVD)
{
bTmp = bEepromReadByte(AMP_SUBW_VOL_POSITION);
vSendFlFrSwVolume(CHANNELSW_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
}
else
{
bTmp = bEepromReadByte(AMP_SUBW_VOL_POSITION);
vSendFlFrSwVolume(CHANNELSW_VOLUME_REGISTER,bTmp,DVD_VOLUME);
}
#endif
rDownSpk.Sub = ADSP_ON;
rSpeak.Sub = ADSP_ON;
break;
}
//if(_fgHeadphone&0x80) //ztb @290905
bDownmix = bEepromReadByte(SPEAKER_POSITION);
//else
// bDownmix = EV_DOWN_LTRT;
#if (defined(DOLBY_PROLOGIC) || defined(DOLBY_PROLOGIC2))
if (bDownmix != EV_DOWN_OFF)
{
if (bEepromReadByte(PROLOG_SW_POS) != EV_PROLOGIC_OFF)
{
fgEepromWriteByte(PROLOG_SW_POS, EV_PROLOGIC_OFF);
// update setting
#ifdef DOLBY_PROLOGIC
vSetProlog();
#elif (defined(DOLBY_PROLOGIC2))
vAdspPL2Config(AUD_PL2_SWITCH, EV_PL2_OFF);
#endif
}
}
#endif /* DOLBY_PROLOGIC || DOLBY_PROLOGIC2 */
#ifdef SET_VSURR_IN_SPKCFG
if (bDownmix == EV_DOWN_VSURR)
{
#ifdef PLAYER_SURROUND
#ifndef PLAYER_3D_GAIN
vAdspVsurrGain(AUD_VSURR_GAIN_DEFAULT);
vAdspVsurrWGain(AUD_VSURR_WGAIN_DEFAULT);
vAdspVsurrDelay(AUD_VSURR_DELAY_DEFAULT);
#endif
#endif
vAdspSurr(AUD_VSURR_CTRL, AUD_VSURR_MTK);
/* Although turn on virtual surroud will force downmix,
we still need to config large/small of front speaker
and on/off of sub-woofer.
*/
vAdspSpkDownmix(rDownSpk);
return (ENTRY_FUN_REDRAW); //Vincent @12-02-03 ENTRY_FUN_OK ->
}
#ifdef USE_N22_VSURR
else if (bDownmix == EV_DOWN_N22)
{
#ifdef PLAYER_SURROUND
#ifndef PLAYER_3D_GAIN
vAdspVsurrGain(AUD_VSURR_GAIN_DEFAULT);
vAdspVsurrWGain(AUD_VSURR_WGAIN_DEFAULT);
vAdspVsurrDelay(AUD_VSURR_DELAY_DEFAULT);
#endif
#endif
vAdspSurr(AUD_VSURR_CTRL, AUD_VSURR_N22);
/* Although turn on virtual surroud will force downmix,
we still need to config large/small of front speaker
and on/off of sub-woofer.
*/
vAdspSpkDownmix(rDownSpk);
return (ENTRY_FUN_REDRAW);
}
#endif /* USE_N22_VSURR */
else
{
vAdspSurr(AUD_VSURR_CTRL, ADSP_OFF);
}
#endif /* SET_VSURR_IN_SPKCFG */
switch (bDownmix)
{
case EV_DOWN_LORO:
rDownSpk.Mode = DOWNMIX_LO_RO;
#ifdef DOWNMIX_NO_SUBWOFFER
rDownSpk.Sub = ADSP_OFF;
#endif
vAdspSpkDownmix(rDownSpk);
return (ENTRY_FUN_REDRAW); //Vincent @12-02-03 ENTRY_FUN_OK ->
case EV_DOWN_LTRT:
rDownSpk.Mode = DOWNMIX_LT_RT;
#ifdef DOWNMIX_NO_SUBWOFFER
rDownSpk.Sub = ADSP_OFF;
#endif
vAdspSpkDownmix(rDownSpk);
return (ENTRY_FUN_REDRAW); //Vincent @12-02-03 ENTRY_FUN_OK ->
case EV_DOWN_OFF:
rDownSpk.Mode = DOWNMIX_OFF;
vAdspSpkDownmix(rDownSpk);
break;
}
bTemp = bEepromReadByte(CNTR_SPK_POSITION);
switch(bTemp)
{
case EV_SPK_OFF:
rSpeak.Cntr = SPK_OFF;
break;
case EV_LARGE:
rSpeak.Cntr = SPK_LARGE;
break;
case EV_SMALL:
rSpeak.Cntr = SPK_SMALL;
break;
}
bTemp = bEepromReadByte(REAR_SPK_POSITION);
switch(bTemp)
{
case EV_SPK_OFF:
rSpeak.Rear = SPK_OFF;
break;
case EV_LARGE:
rSpeak.Rear = SPK_LARGE;
break;
case EV_SMALL:
rSpeak.Rear = SPK_SMALL;
break;
}
vAdspSpkConfig(rSpeak);
return (ENTRY_FUN_REDRAW);
}
#endif
BYTE bSetDMono(WORD wEEPos, BYTE bValue) large
{
vAdspAc3DualMono(bEepromReadByte(DUAL_MN_POS));
return (ENTRY_FUN_OK);
}
#ifdef HDCD_CERTIFICATION
BYTE bHdcdMd(WORD wEEPos, BYTE bValue) large
{
/* always enable HDCD in cerification */
vAdspHdcdMode(EV_ON, bEepromReadByte(DITHER_MD_POSITION));
return (ENTRY_FUN_OK);
}
BYTE bHdcdDitherLvl(WORD wEEPos, BYTE bValue) large
{
vAdspDitherLvl(bEepromReadByte(DITHER_LVL_POSITION));
return (ENTRY_FUN_OK);
}
BYTE bHdcdUpSamp(WORD wEEPos, BYTE bValue) large
{
vAdspUpSamp(bEepromReadByte(UP_SAMP_POSITION));
return (ENTRY_FUN_OK);
}
#ifdef AUDIO_IN_EN
BYTE bAinBitLength(WORD wEEPos, BYTE bValue) large
{
vAdspInputBLength(bEepromReadByte(AIN_BLENGTH_POSITION));
return (ENTRY_FUN_OK);
}
#endif
#endif
#if (defined(HDCD_EN) && !defined(HDCD_CERTIFICATION))
BYTE bSetHdcdMode(WORD wEEPos, BYTE bValue) large
{
BYTE bMode = bEepromReadByte(HDCD_MD_POSITION);
switch(bMode)
{
case EV_HDCD_OFF:
#ifdef SHOW_CD_STREAM_TYPE
vOsdPosShow(OSD_POS_DISC_TYPE, OSD_MSG_CD, OSD_TIMEOUT);
#endif
vAdspHdcdMode(EV_OFF, EV_ON);
break;
case EV_HDCD_1X:
vAdspHdcdMode(EV_ON, EV_ON);
vAdspUpSamp(EV_1X);
break;
case EV_HDCD_2X:
vAdspHdcdMode(EV_ON, EV_ON);
vAdspUpSamp(EV_2X);
break;
}
return (ENTRY_FUN_OK);
}
#endif
#ifdef DOLBY_PROLOGIC2
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetPL2Switch(WORD wEEPos, BYTE bValue) large
{
#ifdef DAV935
BYTE bTmp;
#endif
//BillDen bg
if(bValue!=EV_PL2_OFF)
{
if(bEepromReadByte(IEC_MAX_FREQ_POSITION)==EV_96K) //billy050509
{
fgEepromWriteByte(IEC_MAX_FREQ_POSITION, EV_48K);
vAdspPcmFreq(ADSP_IEC_PCM_48K);
}
#ifdef AUDIO_TYPE_NOT_SAVE
if(_bSurType!=EV_NONE)
#else
if (bEepromReadByte(REVERB_MD_POS)!=EV_NONE)
#endif
{
fgEepromWriteByte(REVERB_MD_POS, EV_NONE);
_bSurType = EV_NONE;
vAdspReverbMode(EV_NONE);
}
#ifdef AUDIO_TYPE_NOT_SAVE
if(_bEqType!=EV_NONE)
#else
if (bEepromReadByte(EQ_PRESET_POS)!=EV_NONE)
#endif
{
fgEepromWriteByte(EQ_PRESET_POS, EV_NONE);
vAdspSurr(AUD_CH_EQ_CTRL, ADSP_OFF);
_bEqType = EV_NONE;
vAdspChEqLoadPreset(EV_NONE);
}
#ifdef TONE_IN_SETUP
if (bEepromReadByte(TONE_POS)!=ZERO_KEY_LEVEL)
{
fgEepromWriteByte(TONE_POS, ZERO_KEY_LEVEL);
bToneChange(ZERO_KEY_LEVEL);
}
#endif
}
//BillDen end
vAdspPL2Config(AUD_PL2_SWITCH, bValue); //[runma] bEepromReadByte(PROLOG_SW_POS));-> bValue.
#ifdef DAV935
bTmp = bEepromReadByte(AMP_CT_VOL_POSITION);
vSendCtSlSrVolume(CHANNELCT_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
bTmp = bEepromReadByte(AMP_SR_VOL_POSITION);
vSendCtSlSrVolume(CHANNELSR_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
bTmp = bEepromReadByte(AMP_SL_VOL_POSITION);
vSendCtSlSrVolume(CHANNELSL_VOLUME_REGISTER,bTmp,COMMON_VOLUME);
#endif
return (ENTRY_FUN_REDRAW);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetPL2Mode(WORD wEEPos, BYTE bValue) large
{
BYTE bMode;
bMode = bEepromReadByte(PL2_MODE_POS);
if (bMode >= EV_PL2_MODE_MAX)
{
bMode = EV_PL2_OFF;
}
vAdspPL2Config(AUD_PL2_MODE, bMode);
return (ENTRY_FUN_REDRAW);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetPL2Panorama(WORD wEEPos, BYTE bValue) large
{
if (bEepromReadByte(PL2_PANORAMA_POS) == EV_ON)
{
vAdspPL2Config(AUD_PL2_PANORAMA, ADSP_ON);
}
else
{
vAdspPL2Config(AUD_PL2_PANORAMA, ADSP_OFF);
}
return (ENTRY_FUN_OK);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetPL2Dimension(WORD wEEPos, BYTE bValue) large
{
char bSize;
bSize = (char)bEepromReadByte(PL2_DIMENSION_POS);
if (bSize > EV_6) // size is -3~0~+3, EV_0~EV_6
{
bSize = EV_3;
}
vAdspPL2Config(AUD_PL2_DIMENSION, bSize);
return (ENTRY_FUN_OK);
}
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetPL2CenterWidth(WORD wEEPos, BYTE bValue) large
{
BYTE bWidth;
bWidth = bEepromReadByte(PL2_CENTER_POS);
if (bWidth > EV_7)
{
bWidth = EV_0;
}
vAdspPL2Config(AUD_PL2_C_WIDTH, bWidth);
return (ENTRY_FUN_OK);
}
#endif /* DOLBY_PROLOGIC2 */
#ifdef AUDIO_IN_EN
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return :
// *********************************************************************
BYTE bSetAudioInSource(WORD wEEPos, BYTE bValue) large
{
BYTE bMode;
bMode = bEepromReadByte(AUDIO_IN_POS);
if (fgIsFuncAin())
{
if ((bMode == EV_AI_OFF) ||
(bMode >= EV_AIN_MAX))
{
vAINSwitchSource(EV_AI_OFF);
vPlayerFuncSwitch(PLAYER_FUNC_DVD);
}
else
{
vAINSwitchSource(bMode);
}
}
else /* if (fgIsFuncDvd()) */
{
if ((bMode > EV_AI_OFF) &&
(bMode < EV_AIN_MAX))
{
vPlayerFuncSwitch(PLAYER_FUNC_AIN);
}
}
return (ENTRY_FUN_OK);
}
#endif /* AUDIO_IN_EN */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -