📄 dvdsetup_op.c
字号:
#define MAIN_SETUP_DECLARE
#include <string.h>#include "winav.h"
#include "chips.h"#include "disp.h"#include "input.h"#include "cc.h"#include "navigate.h"#include "utl.h"#include "hal.h"#include "gdi.h"#include "osddlg.h"
#include "menu.h"
#include "setup.h"
#include "dvdsetup_op.h"
#include "dvdsetup.h"#include "osd.h"#include "char_subpict.h"#include "romld.h"#include "dvdsetup.h"
#include "storage.h"
#include "VD\\ViporFunc.h"
#ifdef SUPPORT_STB
#include "STB\usrif\\sysmenu.h"
#endif //SUPPORT_STB
#include "poweronmenu.h"
#ifdef IMAGE_FRAME_SETUP
#include "tft.h"
#endif //IMAGE_FRAME_SETUP
#define SETUP_WIDTH 616
#define SETUP_HEIGHT 410
// SETUP_FRAME_Y0 should be lower than the upper osd region, otherwise
// When input disc, it shows "Loading...".
// The strings will cover partial of Setup UI
#define SETUP_FRAME_X0 0
#define SETUP_FRAME_Y0 0
#define SETUP_FRAME_X1 (SETUP_WIDTH + SETUP_FRAME_X0)
#define SETUP_FRAME_Y1 (SETUP_HEIGHT + SETUP_FRAME_Y0)
#define WRITE_EEPROM_ENABLE#define IDENTIFY_STRING "C"#define FRAME_THICKNESS 2extern BYTE __bSetupMode;
extern BYTE __bTVSystemChange;// save to EEPROM info.extern BYTE __bPassword[SETUP_PASSWORD_NO+1];extern BYTE __bInputPassword; //=FALSE;extern BYTE __bInputPasswordIndex; // = 0;extern BYTE _bVideoSettingChange; // = FALSE;
//#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM
BYTE __bPreCountStop; //Xuli1.26, Save the previous stop mode before entering SETUP to decide if need resume after exit.
//#endif
BYTE __bSETUPUIStyleChanged;
#ifdef SUPPORT_STB
SYSTEMINFO* __pSystemInfo;
#endif //SUPPORT_STBBYTE _bAudioTypeChange; // = FALSE;BYTE _bParentalControlChange; // = FALSE;
IMAGE_FRAME_SETUPINFO __ImageFrameSetupInfo;#ifdef _DEBUG_INFOBYTE _bEEPROMError = 0;#endifextern void _InitRect(PURECT pRect, WORD wLeft, WORD wTop, WORD wRight, WORD wBottom);extern WORD __wSPRMs [];extern BYTE _bSetupTemp;extern WORD _wSetupTemp;extern WORD _wSetupString[8];extern PARM_DRAW_STRING _DVDSETUP_StrAttr;extern PARM_RECT _DVDSETUP_RectAttr;extern WORD __wSPRMs [];
extern DWORD __dwVolAudio;
#ifdef SUPPORT_JPEG_AUDIO_PLAYING
extern BYTE __bMMJPEGAudioMode;
#endif //SUPPORT_JPEG_AUDIO_PLAYING// Internal functionsvoid _ReadSetupData(void);void _WriteSetupData(BYTE bSetup, BYTE bDefaultPassword);void _SetVideoOutputToIC(void);void _SetBrightnessToIC(void);void _SetContrastToIC(void);void _SetDNRToIC(void);void _SetDownMix(void);void _TransferLanguageToSPRM(void);void _TransferOthersAudioLanguageCode(WORD wLanguageCode);void _TransferOthersMenuLanguageCode(WORD wLanguageCode);void _TransferOthersSPSTLanguageCode(WORD wLanguageCode);void _SetAngleMarkTime(void);extern void _SetAudType(BYTE bType); // in CHIPS module
extern void MM_AudioTrigger(void);
extern BYTE TFT_BRIGHTNESS_VALUE_LIST[];
extern BYTE TFT_CONTRAST_VALUE_LIST[];
extern BYTE TFT_SATURATION_VALUE_LIST[];void DVDSETUP_InitStatus(void){ _bAudioTypeChange = FALSE;}// ***************************************************************************// 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(){ BYTE *pbSetupPtr;
#ifndef IMAGE_FRAME_SETUP __bInputPassword=FALSE; __bInputPasswordIndex=0;
#endif //IMAGE_FRAME_SETUP
#ifdef SUPPORT_STB
__pSystemInfo = (SYSTEMINFO*) &(__SetupInfo.bSTBMagiceCountHead);
#endif
__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; HAL_ReadStorage(SETUP_ADDR_IDENTIFY, pbSetupPtr, EPROM_IDENTIFY_BYTE + EPROM_VERSION_BYTE + EPROM_INTERVERSION_BYTE); __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
#ifndef IMAGE_FRAME_SETUP _SetVideoOutputToIC();
#endif
#ifndef NO_DISC_MODE //Brian1.05, just call NV_Setting, it will set __wSPRMs[20] always NV_Setting(SET_REGION_CODE, 0);
#endif //#ifndef NO_DISC_MODE
//Kevin1.25, move here // Brian1.25, set brightness and contrast when initialization _SetBrightnessToIC(); _SetContrastToIC(); //Damon1.05, set display type when setup initialization //Or it will always set to default value (16:9) in TFT_Init()
_SetDisplayToIC();
_SetDownMix(); _TransferLanguageToSPRM(); _SetDNRToIC();//#ifdef SUPPORT_CHAR_ENCODING_SWITCH OSD_ReplaceFont();//#endif
#ifdef IMAGE_FRAME_SETUP
DVDSETUP_SetRepeatMode();
#endif //IMAGE_FRAME_SETUP
#ifndef IMAGE_FRAME_SETUP _bVideoSettingChange = FALSE;
#endif //IMAGE_FRAME_SETUP #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 //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 #ifndef REMOVE_SETUP_SPEAKER_TEST // brian.277a Test Tone __SetupInfo.bAudioTestTone = SETUP_AUDIO_SPEAKER_TEST_AUTO;#endif SETUP_LoadLanguage(); return TRUE;}// ***************************************************************************// Function : SETUP_AdjustSetting// Description : This function will be called the setting is changed.// Arguments : bID, the ID of the setting to be changed// Return : None.// Side Effect :// ***************************************************************************void SETUP_AdjustSetting(BYTE bID){#ifndef NO_SETUP
switch (bID) { case SETUP_SCREEN_TV_SYSTEM: HAL_AdjustTVMode(DISP_NEXTVSYNC); break;
#ifndef IMAGE_FRAME_SETUP case SETUP_SCREEN_VIDEO_OUTPUT: HAL_AdjustTVMode(DISP_NEXTVSYNC); _SetVideoOutputToIC(); break; case SETUP_AUDIO_OUTPUT:// DVD_275b+, SUPPORT_VIRTUAL_DTS#ifdef SUPPORT_VIRTUAL_DTS // 1) when user select stream is DTS stream, and output is SPDIF_RAW // must choose real DTS stream to play. // 2) Current play DTS stream, and output change to non-SPDIF/RAW // must choose a non-DTS stream to play. if ( __SetupInfo.bAudioAnalogOut == SETUP_AUDIO_DIGITAL_OUT_SPDIF_RAW ) // Brian1.23, use bAudioAnalogOut { // user select is DTS stream, but play stream may not be DTS stream. if (__bSelectAudioType == HAL_AUDIO_DTS) { // for choose back a DTS stream. NV_Setting(SET_AST, (BYTE)NULL); } } else { // non-SPDIF_RAW mode, don't allow DTS stream. if ( __bAudioType == HAL_AUDIO_DTS ) { // for choose a non-DTS stream. NV_Setting(SET_AST, (BYTE)NULL); } }#endif //#ifdef SUPPORT_VIRTUAL_DTS { // TCC275, direct call CHIPS module, will re-set ACFGR and SPDIF. _SetAudType (__bAudioType) ; } break; case SETUP_AUDIO_KARAOKE: break;
#else
#ifdef SUPPORT_DSPLAY_16_9_AND_AUTO
case SETUP_DISPLAY_DISPLAY_TYPE:
_SetDisplayToIC();
break;
#endif
#endif //#ifndef IMAGE_FRAME_SETUP default: break; }#endif}// ***************************************************************************// Function : SETUP_ChangeValue// Description : This function will be called when user the value of the items// : in SETUP UI. It can save the changed data to EEPROM.// Arguments : bID, the ID that want to be saved in EEPROM.// Return : None.// Side Effect :// ***************************************************************************void SETUP_ChangeValue(BYTE bID){#ifndef NO_SETUP
#ifndef IMAGE_FRAME_SETUP //CoCo2.38
#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 switch (bID) { case SETUP_SCREEN_TV_SYSTEM: HAL_WriteStorage(SETUP_ADDR_TV_SYTEM, (BYTE*)&(__SetupInfo.bTVSystem), 1); break; //Brian0.90 case SETUP_SCREEN_PROGRESSIVE_SCAN: // Brian1.06, P-SCAN is integrated into Video Output if (__SetupInfo.bVideoOutput == SETUP_SCREEN_VIDEO_OUTPUT_YUV_PSCAN || __SetupInfo.bVideoOutput == SETUP_SCREEN_VIDEO_OUTPUT_RGB_PSCAN || __SetupInfo.bVideoOutput == SETUP_SCREEN_VIDEO_OUTPUT_VGA) { __SetupInfo.bProgressiveScan = SETUP_PROGRESSIVE_SCAN_ON; } else { __SetupInfo.bProgressiveScan = SETUP_PROGRESSIVE_SCAN_OFF;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -