📄 setup.c
字号:
if ((__SetupInfo.bAudioLPCM < SETUP_AUDIO_LPCM_BEGIN) ||
(__SetupInfo.bAudioLPCM > SETUP_AUDIO_LPCM_END))
{
__SetupInfo.bAudioLPCM = SETUP_DEFAULT_AUDIO_LPCM;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_LPCM;
#endif
}
// Brian1.10, check region code range
if ((__SetupInfo.bRegionControl != REGION_ALL) && (__SetupInfo.bRegionControl != REGION1) &&
(__SetupInfo.bRegionControl != REGION2) && (__SetupInfo.bRegionControl != REGION3) &&
(__SetupInfo.bRegionControl != REGION4) && (__SetupInfo.bRegionControl != REGION5) &&
(__SetupInfo.bRegionControl != REGION6) )
{
__SetupInfo.bRegionControl = SETUP_DEFAULT_REGION;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_REGION_CTL;
#endif
}
if ((__SetupInfo.wParentalCtl < SETUP_CUSTOM_PC_LEVEL_BEGIN) ||
(__SetupInfo.wParentalCtl > SETUP_CUSTOM_PC_LEVEL_END))
{
__SetupInfo.wParentalCtl = SETUP_DEFAULT_PARENTAL;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_PARENTAL_CTL_LEVEL;
#endif
}
if ((__SetupInfo.bOSDLanguage < SETUP_LANGUAGE_OSD_BEGIN) ||
(__SetupInfo.bOSDLanguage > SETUP_LANGUAGE_OSD_END))
{
__SetupInfo.bOSDLanguage = SETUP_DEFAULT_OSD_LANGUAGE;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_OSD_LANGUAGE;
#endif
}
break;
case SETUP_OTHERS_INITIAL:
// ** TCH2.74; bSize = SETUP_ADDR_ANGLE_MARK_DISPLAY + EPROM_ANGLE_MARK_DISPLAY_BYTE - SETUP_ADDR_AUDIO_CENTER; //from wAudioCenter to wSPSTLanguageCode in SETUPINFO
// __SetupInfor.bVCDControl don't do any protection
bSize = SETUP_ADDR_LAST - SETUP_ADDR_AUDIO_CENTER; //from wAudioCenter to wSPSTLanguageCode in SETUPINFO
bInstance = SETUP_ADDR_AUDIO_CENTER - SETUP_ADDR_BASE;
for (i=0; i < bSize/8; i++)
{
HAL_EEPROM_PRead(SETUP_ADDR_AUDIO_CENTER+(i*8), 8, pbSetupPtr+ bInstance +(i*8));
}
if (bSize%8)
{
HAL_EEPROM_PRead(SETUP_ADDR_AUDIO_CENTER+8*(bSize/8), bSize%8, pbSetupPtr+bInstance+8*(bSize/8));
}
if ((__SetupInfo.bAudioCenter < SETUP_AUDIO_CENTER_BEGIN) ||
(__SetupInfo.bAudioCenter > SETUP_AUDIO_CENTER_END))
{
__SetupInfo.bAudioCenter = SETUP_DEFAULT_AUDIO_CENTER;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_CENTER;
#endif
}
if ((__SetupInfo.bAudioRear < SETUP_AUDIO_REAR_BEGIN) ||
(__SetupInfo.bAudioRear > SETUP_AUDIO_REAR_END))
{
__SetupInfo.bAudioRear = SETUP_DEFAULT_AUDIO_REAR;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_REAR;
#endif
}
if ((__SetupInfo.bAudioSubwoofer < SETUP_AUDIO_SUBWOOFER_BEGIN) ||
(__SetupInfo.bAudioSubwoofer > SETUP_AUDIO_SUBWOOFER_END))
{
__SetupInfo.bAudioSubwoofer = SETUP_DEFAULT_AUDIO_SUBWOOFER;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_SUBWOOFER;
#endif
}
if ((__SetupInfo.bAudioDNR < SETUP_AUDIO_DNR_BEGIN) ||
(__SetupInfo.bAudioDNR > SETUP_AUDIO_DNR_END))
{
__SetupInfo.bAudioDNR = SETUP_DEFAULT_AUDIO_DNR;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_DNR;
#endif
}
if ((__SetupInfo.bAudioKaraoke < SETUP_AUDIO_KARAOKE_BEGIN) ||
(__SetupInfo.bAudioKaraoke > SETUP_AUDIO_KARAOKE_END))
{
__SetupInfo.bAudioKaraoke = SETUP_DEFAULT_AUDIO_KARAOKE;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_KARAOKE;
#endif
}
if ((__SetupInfo.bMenuLanguage < SETUP_LANGUAGE_MENU_BEGIN) ||
(__SetupInfo.bMenuLanguage > SETUP_LANGUAGE_MENU_END))
{
__SetupInfo.bMenuLanguage = SETUP_DEFAULT_MENU_LANGUAGE;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_MENU_LANGUAGE;
#endif
}
if ((__SetupInfo.bAudioLanguage < SETUP_LANGUAGE_AUDIO_BEGIN) ||
(__SetupInfo.bAudioLanguage > SETUP_LANGUAGE_AUDIO_END))
{
__SetupInfo.bAudioLanguage = SETUP_DEFAULT_AUDIO_LANGUAGE;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_LANGUAGE;
#endif
}
if ((__SetupInfo.bSPSTLanguage < SETUP_LANGUAGE_SP_BEGIN) ||
(__SetupInfo.bSPSTLanguage > SETUP_LANGUAGE_SP_END))
{
__SetupInfo.bSPSTLanguage = SETUP_DEFAULT_SPST_LANGUAGE;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_SPST_LANGUAGE;
#endif
}
if ((__SetupInfo.bAngleMarkDisplay < SETUP_CUSTOM_ANGLE_MARK_BEGIN) ||
(__SetupInfo.bAngleMarkDisplay > SETUP_CUSTOM_ANGLE_MARK_END))
{
__SetupInfo.bAngleMarkDisplay = SETUP_DEFAULT_ANGLE_MARK;
// brian.172, move it out
//_SetAngleMarkTime(); //brian.170a
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_ANGLE_MARK_DISPLAY;
#endif
}
// TCC276, add protection for __SetupInfo.bVCDControl
if (__SetupInfo.bVCDControl != 0 && __SetupInfo.bVCDControl != 0x5A)
{
if (SETUP_DEFAULT_VCD_CTL == FALSE)
__SetupInfo.bVCDControl = 0 ;
else
__SetupInfo.bVCDControl = 0x5A ;
}
// Brian1.08
if ((__SetupInfo.bAudioPrologic < SETUP_AUDIO_PROLOGIC_BEGIN) ||
(__SetupInfo.bAudioPrologic > SETUP_AUDIO_PROLOGIC_END))
{
__SetupInfo.bAudioPrologic = SETUP_DEFAULT_AUDIO_PROLOGIC;
#ifdef _DEBUG_INFO
_bEEPROMError = SETUP_ADDR_AUDIO_PROLOGIC;
#endif
}
#ifdef _DEBUG_INFO
if (_bEEPROMError != 0)
OSD_OUTPUT_MACRO(MSG_VERSION, _bEEPROMError, 0xff);
#endif
break;
}
#endif
_SetAngleMarkTime(); //brian.172, should always set angle mark time
}
// ***************************************************************************
// Function : SETUP_Initial
// Description : This API will export to other modules use while SETUP data should be
// : initialized and prepare for further usage.
// Arguments : SETUP_POWERON_INITIAL ==>must use this type for power on initialization.
// : After LOGO is displayed, use SETUP_OTHERS_INITIAL to initialize __SetupInfo
// Return : TRUE
// Side Effect :
// ***************************************************************************
BIT SETUP_Initial(BYTE bType)
{
// Brian2.78b-3, init internal variables
//__btInputPassword=FALSE;
//__bPasswordIndex = 0;
//__btInputMenuLanguageCode=FALSE;
//__bMenuLanguageCodeIndex = 0;
//__btInputAudioLanguageCode=FALSE;
//__bAudioLanguageCodeIndex = 0;
//__btInputSPSTLanguageCode=FALSE;
//__bSPSTLanguageCodeIndex = 0;
__bInputPassword=FALSE;
__bInputPasswordIndex=0;
#ifdef SUPPORT_CDIF
gbtServoInfo = FALSE;
gbtServoRegRW = FALSE;
#endif //SUPPORT_CDIF
//#if !defined(RELEASE_SETTING) || !defined(SYSTEM_8051)
#ifndef WRITE_EEPROM_ENABLE
//_WriteSetupData(SETUP_DATA_DEFAULT, 1);
_WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Brian1.24
// Module should add their Init function here to set EPROM to default value
#ifdef SUPPORT_AV_SYSTEM
//Kevin2.81-2, write default volume value into EPROM
CHIPS_EPPROMReadWriteVolume(WRITE_ALL_INITIAL);
//Kevin2.81-2, write default tuner vaule into EPROM
AVSYS_TunerDataAccess(DATA_DEFAULT|DATA_WRITE);
#endif // #ifdef SUPPORT_AV_SYSTEM
#else
if (bType == SETUP_POWERON_INITIAL)
{
#ifdef WRITE_EEPROM_ENABLE //Kevin0.91, add define
HAL_EEPROM_PRead(SETUP_ADDR_IDENTIFY, 7, __SetupInfo.cSetupIdentify);
#endif
__SetupInfo.cSetupIdentify[7]=0;
pbSetupPtr=&__SetupInfo;
#ifdef WRITE_EEPROM_ENABLE //Kevin0.91, add define
HAL_EEPROM_PRead(SETUP_ADDR_VERSION, 1, pbSetupPtr + EPROM_IDENTIFY_BYTE);
#endif
}
// Brian2.81
// Setup module will call other modules' Init function only when EPROM data is incorrect.
// Setup will not call other modules' Init fuction when EPROM data is correct
//if (! CT_strcmp(__SetupInfo.cSetupIdentify, "WINBOND") && __SetupInfo.bSetupVersion == SETUP_VERSION)
// Brian2.31, only CT_strcpy and CT_strncopy is put in common, so other CT_xxx needs string copy first
if (! CT_strcmp(__SetupInfo.cSetupIdentify, CT_strcpy(__bMsgString,"WINBOND")) && __SetupInfo.bSetupVersion == SETUP_VERSION)
{
// setup data is correct
_ReadSetupData(bType);
// Setup should not read data from EPROM for other modules. The power-on flow should do this.
//Kevin1.25, move below. Otherwise, 4 wait no ACK for 8M, 'cause IRAM hasn't been loaded
// Brian1.25, set brightness and contrast when initialization
//_SetBrightnessToIC();
//_SetContrastToIC();
}
else
{
// setup data is incorrect
//_WriteSetupData(SETUP_DATA_DEFAULT, 1); // write default Setup data to EPROM
_WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Brian1.24
// Module should add their Init function here to set EPROM to default value
#ifdef SUPPORT_AV_SYSTEM
//Kevin2.81-2, write default volume value into EPROM
CHIPS_EPPROMReadWriteVolume(WRITE_ALL_INITIAL);
//Kevin2.81-2, write default tuner vaule into EPROM
AVSYS_TunerDataAccess(DATA_DEFAULT|DATA_WRITE);
#endif // #ifdef SUPPORT_AV_SYSTEM
}
#endif
// update Setup info to SPRM
// reference VI4-, 4.6.1.2
// *SPRM[0], Menu Description Language Code
// SPRM[2], Sup-picture stream on/off flag
// SPRM[3], Angle number??
// SPRM[11], Player Audio Mixing Mode for Karaoke
// SPRM[12], Contry Code for Parental Management
// SPRM[13], Parental Level
// SPRM[14], Player Configuration for Video(Aspect ratio)
// SPRM[15], P_CFG for audio
// *SPRM[16], Initial Language Code for AST
// SPRM[17], Initial Language Code extension for AST
// *SPRM[18], Initial Language Code for SPST
// SPRM[19], Initial Language extension Code for SPST
// SPRM[20], Player Region Code
// bit 15-8, upper byte
// bit 7-0, lower byte
if (bType == SETUP_POWERON_INITIAL)
{
_SetVideoOutputToIC();
// LLY.278, it's unnecessary because it will be done while 1st power-on by HAL_PowerDown()
//_SetVideoAspectToIC(); // TCC276
/*
if (__SetupInfo.bRegionControl == REGION_ALL)
//__wSPRMs[20]= REGION3;
//__wSPRMs[20]= NV_Setting(SET_REGION_CODE, 0);
// brian.172, just call NV_Setting, it will modify __wSPRMs[20]
NV_Setting(SET_REGION_CODE, 0);
else
__wSPRMs[20]=__SetupInfo.bRegionControl;
*/
//Brian1.05, just call NV_Setting, it will set __wSPRMs[20] always
NV_Setting(SET_REGION_CODE, 0);
}
else
{
//Kevin1.25, move here
// Brian1.25, set brightness and contrast when initialization
_SetBrightnessToIC();
_SetContrastToIC();
_TransferLanguageToSPRM();
_SetDNRToIC();
#ifdef SUPPORT_KARAOKE_SET
if ((__SetupInfo.bAudioKaraoke - SETUP_AUDIO_KARAOKE_BASE) == 0) //on
CHIPS_MICControl(CHIPS_ON);
else if ((__SetupInfo.bAudioKaraoke - SETUP_AUDIO_KARAOKE_BASE) == 1) //off
CHIPS_MICControl(CHIPS_OFF);
#endif
//initial the System parameter only in Setup module not in NV_InitialParameters
// reference Anex J
__wSPRMs [10]=0; // TT_PGCN fot NV_TMR, 1 to 7fffh(bits 0-14)
__wSPRMs [11]=0; // Player Audio ixing Mode(P_AMXMD) for karaoke.
// must use upper case
CT_strncpy((char *)&__wSPRMs[12], "US", 2);
// Paraental level(PTL_LVL), 1-8(bits 0-3)
__wSPRMs[13]= __SetupInfo.wParentalCtl - SETUP_CUSTOM_PC_LEVEL_BASE + 1;
// don't do parental control, set as highest level
if (!__SetupInfo.bParentalControl )
__wSPRMs[13]=8;
// RD_ONLY
// default ???
__wSPRMs [14]=0; // Player configuration(P_CFG) for Video
__wSPRMs [15]=0; // P_CFG for Audio
__wSPRMs [17]=0; // Initial Language Code extension(INI_LCD_EXT)
__wSPRMs [19]=0; // Initial Language Code extension for SPST
}
#ifndef REMOVE_SETUP_SPEAKER_TEST
// brian.277a Test Tone
__SetupInfo.bAudioTestTone = SETUP_AUDIO_SPEAKER_TEST_AUTO;
#endif
return TRUE;
}
// ***************************************************************************
// Function : _ExitSetup
// Description : Exit SETUP and recover some flags.
// Arguments : none.
// Return : None.
// Side Effect :
// ***************************************************************************
void _ExitSetup(void)
{
//#ifndef NO_OSD
#ifndef NO_SETUP
#ifndef REMOVE_SETUP_SPEAKER_TEST
if (_bDSPTestTone) // Brian1.23 //Brian1.11d-2, fix "bo" noise when TestTone --> Exit Setup
{
CHIPS_SoftMute();
UTL_DelayTime(COUNT_50_MSEC, FALSE);
W99AV_WriteRegDW (AUDIOCFG1R, 0x6, 0);
}
#endif
// Brian1.07a, clear it, for this is also used by PScan Prompt
__bInputPassword = FALSE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -