📄 setup.c
字号:
// *************************************************************************BYTE SETUP_Recover(BYTE bRecoverRegion){ // The whole setup need to be redraw when recover from screen saver mode // Only partial setup need to be redraw when recover from p-scan if (OSD_RECOVER_ALL != bRecoverRegion) return FALSE;// _SETUP_ShowUI(); // Clear region/* Alan2.20 _SETUP_RectAttr.bColor = PAL_ENTRY_COLOR_TRANSPARENT; _InitRect(&(_SETUP_RectAttr.rect), 0, 0, GDI_REGION_WIDTH, GDI_REGION_HEIGHT); _SETUP_FillRect(0, 0, GDI_REGION_WIDTH, GDI_REGION_HEIGHT); //CoCo1.20, reduce code size.*/ OSDSETUP_Display(); OSDMENU_SetMenuPalEntry(); OSDMENU_RedrawAll();// The following code can replace the above code to // recover the setup to the original status/* extern BYTE __bMENUSelect[MENU_LEVEL]; BYTE i, bLevel0, bLevel1, bLevel2; if (OSD_RECOVER_ALL != bRecoverRegion) return FALSE; bLevel0 = __bMENUSelect[0]; bLevel1 = __bMENUSelect[1]; bLevel2 = __bMENUSelect[2]; _SETUP_ShowUI(); for (i = 0; i < bLevel0; i++) { OSDMENU_MenuOperation(KEY_DOWN); } OSDMENU_MenuOperation(KEY_RIGHT); for (i = 0; i < bLevel1; i++) { OSDMENU_MenuOperation(KEY_DOWN); } OSDSETUP_RedrawMenu();*/ return TRUE;}// ****************************************************************************// Function : SETUP_Exit // Description : The OSD kernel will call this function to exit normally.// : This function can NOT send OSD_ChangeUI(xxx, OSD_EXIT_UI) to// : notify OSD kernel it exits.// Arguments : bExitMode// OSD_UI_EXIT_ALL : Exit control and clear the UI.// OSD_UI_EXIT_CONTROL_ONLY : Exit control only.// Return :// Side Effect :// ****************************************************************************void SETUP_Exit(BYTE bExitMode){ switch (bExitMode) { case OSD_UI_EXIT_ALL: if (_bDoBackDoor) _ExitBackDoor(); _SETUP_ClearUI(); _SETUP_Exit(); break; case OSD_UI_EXIT_CONTROL_ONLY: _SETUP_Exit(); break; default: break; }}// ***************************************************************************// Function : _WriteSetupData// Description : This function will write SETUP data to EEPROM and initialize __SetupInfo// Arguments : bSetup, the status to be processed.// Return : none.// Side Effect :// ***************************************************************************void _WriteSetupData(BYTE bSetup, BYTE bDefaultPassword){ BYTE bTmp=0xff; _bVideoSettingChange = TRUE; //int i = 0;#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 // always clear current EEPROM data if (bSetup==SETUP_DATA_RESET) { for (i=0; i<EPROM_IDENTIFY_BYTE;i++) HAL_WriteStorage(SETUP_ADDR_IDENTIFY+i, &bTmp, 1); return; } else#endif // do 1st setup data initialization if (bSetup==SETUP_DATA_DEFAULT) { // write winbond password //Here will do setup value initialization. // initial data // initial data // update setup version __SetupInfo.bSetupVersion = SETUP_VERSION; __SetupInfo.bInterVersion = INTER_VERSION; //if (bDefaultPassword) // Brian1.24, check if set to default password if(bDefaultPassword & USE_DEFAULT_PASSWORD) { __SetupInfo.wDefaultPassword=SETUP_DEFAULT_PASSWORD; __SetupInfo.bParentalCtl = SETUP_DEFAULT_PARENTAL; } __SetupInfo.bAspectRatio=SETUP_DEFAULT_ASPECT;#ifndef NO_SCREEN_SAVER // Brian1.20 __SetupInfo.bSCRControl = SETUP_DEFAULT_SCREEN_SAVER;#endif __SetupInfo.bTVSystem = SETUP_DEFAULT_TV_SYSTEM; __SetupInfo.bBrightness = SETUP_DEFAULT_BRIGHTNESS; __SetupInfo.bContrast = SETUP_DEFAULT_CONTRAST;#ifdef SUPPORT_ADJUST_CHROM_PHASE // Brian1.25, Chroma phase __SetupInfo.bChromPhaseOffset = SETUP_DEFAULT_CHROM_PHASE;#endif __SetupInfo.bVideoOutput = SETUP_DEFAULT_VIDEO_OUTPUT; __SetupInfo.bAudioDigitalOut = SETUP_DEFAULT_AUDIO_DIGITAL_OUT; __SetupInfo.bAudioAnalogOut = SETUP_DEFAULT_AUDIO_ANALOG_OUT; __SetupInfo.bAudioDownMix = SETUP_DEFAULT_AUDIO_DOWNMIX; __SetupInfo.bAudioPrologic = SETUP_DEFAULT_AUDIO_PROLOGIC; // Brian1.08 __SetupInfo.bAudioCenter = SETUP_DEFAULT_AUDIO_CENTER; __SetupInfo.bAudioRear = SETUP_DEFAULT_AUDIO_REAR; __SetupInfo.bAudioSubwoofer = SETUP_DEFAULT_AUDIO_SUBWOOFER; __SetupInfo.bAudioLPCM = SETUP_DEFAULT_AUDIO_LPCM; __SetupInfo.bAudioDNR = SETUP_DEFAULT_AUDIO_DNR; __SetupInfo.bAudioKaraoke = SETUP_DEFAULT_AUDIO_KARAOKE; // Brian1.24, check if need to set to default if (bDefaultPassword & USE_DEFAULT_REGIONCODE) __SetupInfo.bRegionControl = SETUP_DEFAULT_REGION; if (bDefaultPassword & USE_DEFAULT_PARENTAL_CTRL) __SetupInfo.bParentalControl = SETUP_DEFAULT_PARENTAL_CTL; if (bDefaultPassword & USE_DEFAULT_APS_CTRL) __SetupInfo.bAPSControl = SETUP_DEFAULT_APS_CTL; __SetupInfo.bOSDLanguage = SETUP_DEFAULT_OSD_LANGUAGE; __SetupInfo.bMenuLanguage = SETUP_DEFAULT_MENU_LANGUAGE; __SetupInfo.bAudioLanguage = SETUP_DEFAULT_AUDIO_LANGUAGE; __SetupInfo.bSPSTLanguage = SETUP_DEFAULT_SPST_LANGUAGE; //__SetupInfo.bExSPSTLanguage = SETUP_DEFAULT_EX_SPST_LANGUAGE; __SetupInfo.bExSPSTLanguage = SETUP_DEFAULT_ENCODING_LANGUAGE; __SetupInfo.bUIStyle = SETUP_DEFAULT_UI_STYLE; __SetupInfo.bSmartPlay = SETUP_DEFAULT_SMART_PLAY; __SetupInfo.bAngleMarkDisplay = SETUP_DEFAULT_ANGLE_MARK; __SetupInfo.bProgressiveScan = SETUP_DEFAULT_PROGRESSIVE_SCAN; // Brian0.81 __SetupInfo.bAudioDigitalOut = SETUP_DEFAULT_AUDIO_DIGITAL_OUT; // Brian0.82 __SetupInfo.bAudioAnalogOut = SETUP_DEFAULT_AUDIO_ANALOG_OUT; // Brian0.82#ifndef NO_DISC_MODE //CoCo2.37p // Brian1.05, fix the problem that check region code still error after it is restored as default // just call NV_Setting, it will set __wSPRMs[20] always NV_Setting(SET_REGION_CODE, 0);#endif //#ifndef NO_DISC_MODE //CoCo2.37p // TCC276, let 0x5A be TRUE. if (SETUP_DEFAULT_VCD_CTL == FALSE) __SetupInfo.bVCDControl = 0 ; else __SetupInfo.bVCDControl = 0x5A ; _SetAngleMarkTime(); //brian.170a }#ifndef NO_DISC_MODE //CoCo2.37p _TransferLanguageToSPRM();#endif //#ifndef NO_DISC_MODE //CoCo2.37p strncpy(__SetupInfo.cSetupIdentify, IDENTIFY_STRING, EPROM_IDENTIFY_BYTE - 1);#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 pbSetupPtr=(BYTE *) &__SetupInfo;/* HAL_WriteStorage(SETUP_ADDR_BASE, pbSetupPtr, SETUP_DATA_BYTES);*/ for (i=0;i<SETUP_DATA_BYTES/8;i++) { HAL_WriteStorage(SETUP_ADDR_BASE+(i*8), pbSetupPtr+(i*8), 8); } if (SETUP_DATA_BYTES%8) { HAL_WriteStorage(SETUP_ADDR_BASE+8*(SETUP_DATA_BYTES/8), pbSetupPtr+8*(SETUP_DATA_BYTES/8), SETUP_DATA_BYTES%8); }// LLY0.95, only need to clear the resume flag if save resume info. to EERPOM#ifdef SUPPORT_RESUME_FROM_EEPROM // LLY0.95, add protection code while out-of the pre-reserved space for resume if((SETUP_ADDR_RESUME_USED) > (SETUP_ADDR_RESUME_LAST)) { printf("#error Out-of reserved EEPROM space for resume info. !!\n"); } // Brian1.23, clear resume flag to "XXXXXX" strcpy ((char *)__bMsgString, "XXXXXX"); HAL_WriteStorage(SETUP_ADDR_RESUME_FLAG, __bMsgString, RESUME_FLAG_LENGTH); // LLY1.00, clear the resume ID for(i=0; i<(RESUME_ID_ENTRY_SIZE); i++) { __cBuffer[i]=0; } for(i=0; i<RESUME_DISC_NUM; i++) { HAL_WriteStorage( (SETUP_ADDR_RESUME_DATA+i*RESUME_DATA_ENTRY_SIZE), __cBuffer, (RESUME_ID_ENTRY_SIZE)); } #endif // #ifdef SUPPORT_RESUME_FROM_EEPROM #endif //#ifndef SYSTE_8051}// ***************************************************************************// Function : _ReadSetupData// Description : This function will read SETUP data from EEPROM to __SetupInfo// : and do some protection.// Arguments : // Return : none.// Side Effect :// ***************************************************************************void _ReadSetupData(){#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 pbSetupPtr=(BYTE *)&__SetupInfo; HAL_ReadStorage(SETUP_ADDR_AUDIO_LANGUAGE, pbSetupPtr + EPROM_IDENTIFY_BYTE + EPROM_VERSION_BYTE + EPROM_INTERVERSION_BYTE, SETUP_ADDR_USED - SETUP_ADDR_INTERVERSION); //error protection if ((__SetupInfo.bAspectRatio < SETUP_SCREEN_TV_TYPE_BEGIN) || (__SetupInfo.bAspectRatio > SETUP_SCREEN_TV_TYPE_END)) { __SetupInfo.bAspectRatio = SETUP_DEFAULT_ASPECT;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_ASPECT;#endif }#ifndef NO_SCREEN_SAVER // Brian1.20 if ((__SetupInfo.bSCRControl < SETUP_SCREEN_SAVER_BEGIN) || (__SetupInfo.bSCRControl > SETUP_SCREEN_SAVER_END)) { __SetupInfo.bSCRControl = SETUP_DEFAULT_SCREEN_SAVER;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_SCREEN_SAVER;#endif }#endif //#ifndef NO_SCREEN_SAVER if ((__SetupInfo.bTVSystem < SETUP_SCREEN_TV_SYSTEM_BEGIN) || (__SetupInfo.bTVSystem > SETUP_SCREEN_TV_SYSTEM_END)) { __SetupInfo.bTVSystem = SETUP_DEFAULT_TV_SYSTEM;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_TV_SYTEM;#endif } if ((__SetupInfo.bProgressiveScan < SETUP_PROGRESSIVE_SCAN_BEGIN) || (__SetupInfo.bProgressiveScan > SETUP_PROGRESSIVE_SCAN_END)) { __SetupInfo.bProgressiveScan = SETUP_DEFAULT_PROGRESSIVE_SCAN;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_TV_SYTEM;#endif } if ((__SetupInfo.bBrightness < SETUP_SCREEN_BRIGHTNESS_BEGIN) || (__SetupInfo.bBrightness > SETUP_SCREEN_BRIGHTNESS_END)) { __SetupInfo.bBrightness = SETUP_DEFAULT_BRIGHTNESS;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_BRIGHTNESS;#endif } if ((__SetupInfo.bContrast < SETUP_SCREEN_CONTRAST_BEGIN) || (__SetupInfo.bContrast > SETUP_SCREEN_CONTRAST_END)) { __SetupInfo.bContrast = SETUP_DEFAULT_CONTRAST;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_CONTRAST;#endif }#ifdef SUPPORT_ADJUST_CHROM_PHASE // Brian1.25, Chroma phase if ((__SetupInfo.bChromPhaseOffset< SETUP_SCREEN_CHROM_PHASE_BEGIN) || (__SetupInfo.bChromPhaseOffset> SETUP_SCREEN_CHROM_PHASE_END)) { __SetupInfo.bChromPhaseOffset= SETUP_DEFAULT_CHROM_PHASE;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_CHROM_PHASE;#endif }#endif if ((__SetupInfo.bVideoOutput < SETUP_SCREEN_VIDEO_OUTPUT_BEGIN) || (__SetupInfo.bVideoOutput > SETUP_SCREEN_VIDEO_OUTPUT_END)) { __SetupInfo.bVideoOutput = SETUP_DEFAULT_VIDEO_OUTPUT;#ifdef _DEBUG_INFO _bEEPROMError = SETUP_ADDR_VIDEO_OUTPUT;#endif } //Brian1.00-4, RELEASE_SETTING no VGA item#ifdef NO_VGA_OUTPUT // Brian1.07 use this to replace RELEASE_SETTING if (__SetupInfo.bVideoOutput == SETUP_SCREEN_VIDEO_OUTPUT_VGA) { __SetupInfo.bVideoOutput = SETUP_SCREEN_VIDEO_OUTPUT_NORMAL; //Brian1.06, adjust P-SCAN setting SETUP_ChangeValue(SETUP_SCREEN_PROGRESSIVE_SCAN); }#endif if ((__SetupInfo.bAudioDigitalOut < SETUP_AUDIO_DIGITAL_OUT_BEGIN) || (__SetupInfo.bAudioDigitalOut > SETUP_AUDIO_DIGITAL_OUT_END)) { __SetupInfo.bAudioDigitalOut = SETUP_DEFAULT_AUDIO_DIGITAL_OUT; } if ((__SetupInfo.bAudioAnalogOut < SETUP_AUDIO_ANALOG_OUT_BEGIN) || (__SetupInfo.bAudioAnalogOut > SETUP_AUDIO_ANALOG_OUT_END)) { __SetupInfo.bAudioAnalogOut = SETUP_DEFAULT_AUDIO_ANALOG_OUT; } 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 } // 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 } // 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 } // 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -