📄 setup.c
字号:
#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_REGION_CTL;#endif } if ((__SetupInfo.bParentalCtl < SETUP_CUSTOM_PC_LEVEL_BEGIN) || (__SetupInfo.bParentalCtl > SETUP_CUSTOM_PC_LEVEL_END)) { __SetupInfo.bParentalCtl = 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 } 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.bExSPSTLanguage < SETUP_LANGUAGE_ENCODING_BEGIN) || (__SetupInfo.bExSPSTLanguage > SETUP_LANGUAGE_ENCODING_END-1)) { __SetupInfo.bExSPSTLanguage = SETUP_DEFAULT_ENCODING_LANGUAGE;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_EX_SPST_LANGUAGE;#endif } if ((__SetupInfo.bSmartPlay < SETUP_CUSTOM_SMART_PLAY_BEGIN) || (__SetupInfo.bSmartPlay > SETUP_CUSTOM_SMART_PLAY_END)) { __SetupInfo.bSmartPlay = SETUP_DEFAULT_SMART_PLAY;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_SMART_PLAY;#endif } if ((__SetupInfo.bAngleMarkDisplay < SETUP_CUSTOM_ANGLE_MARK_BEGIN) || (__SetupInfo.bAngleMarkDisplay > SETUP_CUSTOM_ANGLE_MARK_END)) { __SetupInfo.bAngleMarkDisplay = SETUP_DEFAULT_ANGLE_MARK;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_ANGLE_MARK_DISPLAY;#endif } if ((__SetupInfo.bUIStyle < SETUP_CUSTOM_UI_STYLE_BEGIN) || (__SetupInfo.bUIStyle > SETUP_CUSTOM_UI_STYLE_END)) { __SetupInfo.bUIStyle = SETUP_DEFAULT_UI_STYLE;#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 } // alan, CT909 if ((__SetupInfo.bAudioDownMix < SETUP_AUDIO_DOWNMIX_BEGIN) || (__SetupInfo.bAudioDownMix > SETUP_AUDIO_DOWNMIX_END)) { __SetupInfo.bAudioDownMix = SETUP_DEFAULT_AUDIO_DOWNMIX;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_AUDIO_DOWNMIX;#endif }#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 : // Return : TRUE// Side Effect :// ***************************************************************************BIT SETUP_Initial(){ __bInputPassword=FALSE; __bInputPasswordIndex=0; __bSETUPUIStyleChanged = FALSE;#ifndef WRITE_EEPROM_ENABLE _WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Module should add their Init function here to set EPROM to default value#else pbSetupPtr=(BYTE *)&__SetupInfo;#ifdef WRITE_EEPROM_ENABLE //Kevin0.91, add define HAL_ReadStorage(SETUP_ADDR_IDENTIFY, pbSetupPtr, EPROM_IDENTIFY_BYTE + EPROM_VERSION_BYTE + EPROM_INTERVERSION_BYTE);#endif __SetupInfo.cSetupIdentify[EPROM_IDENTIFY_BYTE-1] = 0; // 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 (!strcmp(__SetupInfo.cSetupIdentify, IDENTIFY_STRING) && SETUP_VERSION == __SetupInfo.bSetupVersion && INTER_VERSION == __SetupInfo.bInterVersion) { // setup data is correct _ReadSetupData(); // 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 } else { // setup data is incorrect _WriteSetupData(SETUP_DATA_DEFAULT, READ_TOTAL_DEFAULT); // Brian1.24 // Module should add their Init function here to set EPROM to default value }#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 _SetVideoOutputToIC();#ifndef NO_DISC_MODE //CoCo2.37p //Brian1.05, just call NV_Setting, it will set __wSPRMs[20] always NV_Setting(SET_REGION_CODE, 0); #endif //#ifndef NO_DISC_MODE //CoCo2.37p //Kevin1.25, move here // Brian1.25, set brightness and contrast when initialization _SetBrightnessToIC(); _SetContrastToIC(); _SetDownMix(); #ifndef NO_DISC_MODE //CoCo2.37p _TransferLanguageToSPRM();#endif //#ifndef NO_DISC_MODE //CoCo2.37p _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#ifndef NO_DISC_MODE //CoCo2.37p //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 strncpy((char *)&__wSPRMs[12], "US", 2); NV_Setting(SET_PARENTAL_CONTROL, NULL_0);/* Alan1.05 // Paraental level(PTL_LVL), 1-8(bits 0-3) __wSPRMs[13]= __SetupInfo.bParentalCtl - 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#endif //#ifndef NO_DISC_MODE //CoCo2.37p#ifndef REMOVE_SETUP_SPEAKER_TEST // brian.277a Test Tone __SetupInfo.bAudioTestTone = SETUP_AUDIO_SPEAKER_TEST_AUTO;#endif SETUP_LoadLanguage();//#ifdef SUPPORT_CHAR_ENCODING_SWITCH OSD_ReplaceFont();//#endif return TRUE;}// ***************************************************************************// Function : _GetPasswordNumber// Description : This function will transfer the char password to "number" password.// Arguments : None.// Return : The password number.// Side Effect :// ***************************************************************************WORD _GetPasswordNumber(void){ WORD wPassword = 0;#ifndef NO_SETUP wPassword = (WORD)__bPassword[0]*(WORD)1000; wPassword += (WORD)__bPassword[1]*(WORD)100; wPassword += (WORD)__bPassword[2]*(WORD)10; wPassword += (WORD)__bPassword[3];#endif return wPassword;}// ***************************************************************************// Function : _SetMenuEnable// Description : This function will set __bMenuItemEnable array according to// bMode.// Arguments : VCD mode: bMode == 1, Run-time mode: bMode == 2// Return : none// Side Effect :// ***************************************************************************void _SetMenuEnable(BYTE bMode){#ifndef NO_SETUP switch (bMode) { case 0: case 1: case 2: // enable all items // Note: take care of the size of _bEnableXXX arry, may not be just 1 _bEnableLanguage[0] = 0xFF; _bEnableScreen[0] = 0xFF; _bEnableAudio[0] = 0xFF; _bEnableCustom[0] = 0xFF; _bEnableMain[0] = 0xFF; break; } switch (bMode) { case 1: //VCD mode case 2: //Run-time mode OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_MENU, FALSE); OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_AUDIO, FALSE); OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_LANGUAGE, SETUP_LANGUAGE_SUBTITLE, FALSE);#ifndef REMOVE_SETUP_SPEAKER_TEST OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_AUDIO, SETUP_AUDIO_SPEAKER_TEST, FALSE);#endif // Brian2.79, use __bCountStop to determine the status // Allow change TV Type when pre-stop, i.e., __bCountStop == 1 // Enable TV Type setting when play AVI format files if ((__bCountStop != 1) && (__bAttrPlay != ATTR_AVI)) { //disable "TV TYPE" OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_SCREEN, SETUP_SCREEN_TV_TYPE, FALSE); } break; } switch (bMode) {#ifndef ENABLE_CUSTOM_SETUP case 1: //VCD mode#endif case 2: //Run-time mode // Brian2.79, use __bCountStop to determine the status // Allow change CUSTOM SETUP when pre-stop, i.e., __bCountStop == 1 if (__bCountStop != 1) { //disable "CUSTOM SETUP" OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_CUSTOM, SETUP_CUSTOM_PARENTAL, FALSE); OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_CUSTOM, SETUP_CUSTOM_ANGLE_MARK, FALSE); OSDMENU_SET_ITEM_ENABLE(SETUP_MENU_CUSTOM, SETUP_CUSTOM_DEFAULT_VALUE, FALSE); } else { // is in pre-stop and custom setup is enabled,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -