?? setup.c
字號(hào):
#define MAIN_SETUP_DECLARE
#include "winav.h"
#ifndef SYSTEM_8051
#include <stdio.h>
#include <stdlib.h>
#endif
#include <string.h>
#include "input.h"
#include "osd.h"
#include "hal.h"
#include "cc.h"
//#include "gdimsg.chi"
#include "setup.h"
#include "avsys.h" // LLY.277a-2
#include "hal.h"
#include "chips.h"
#include "navigate.h"
#include "ucode.h"
#include "cdinfo.h"
#include "utl.h"
#include "servo.h"
#include "gdi.h"
#include "osd3.h"
#include "comutl.h" // TCH1.21-1;
#include "CTString.h" // Brian2.31
//CoCo1.11a, for backdoor
// Brian1.11b
#define BACKDOOR_DISPLAY_VERSION_START_V 268 //Brian1.25 //300//400
#define BACKDOOR_DISPLAY_VERSION_START_H (120+SETUP_GLOBAL_OFFSET) // Brian1.24
// Brian0.87
// We can enter back door when selection bar is on a specified position
// BACKDOOR_ENTRY_POINT defines this position
#define BACKDOOR_ENTRY_POINT SETUP_MAIN_LANGUAGE
#define WRITE_EEPROM_ENABLE
//#define SUPPORT_BACK_DOOR_APS
// brian.277a-3rd, definition for _SetTestTone function
#define MUTE_CHANNEL 0
#define L_CHANNEL 1
#define R_CHANNEL 2
#define C_CHANNEL 3
#define LS_CHANNEL 4
#define RS_CHANNEL 5
#define SW_CHANNEL 6
#ifndef REMOVE_SETUP_SPEAKER_TEST
BYTE _bTestToneStage;
DWORD _dwStageCount;
BYTE _bDSPTestTone; // record whether we are using DSP test tone micro code or not
#endif
// Brian1.08a
#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU
// for horizontal icon menu, the backdoor area is moved to bottom-right
#define BACKDOOR_DISPLAY_X (460+SETUP_GLOBAL_OFFSET) // Brian1.24
#define BACKDOOR_DISPLAY_Y 280
#define BACKDOOR_SERVO_X (300+SETUP_GLOBAL_OFFSET) // Brian1.24
#define BACKDOOR_SERVO_Y 280
#else
#define BACKDOOR_DISPLAY_X (460+SETUP_GLOBAL_OFFSET) // Brian1.24
#define BACKDOOR_DISPLAY_Y 36
#define BACKDOOR_SERVO_X (300+SETUP_GLOBAL_OFFSET) // Brian1.24
#define BACKDOOR_SERVO_Y 36
#endif
#define BACKDOOR_OUTPUT_NUMBER(X, Y, NUM)\
{\
GDI_FILL_RECT(X, Y, X+95, Y+31, OSDSETUP_ENTRY_MAIN_COLOR_BG);\
GDI_NumberToString(NUM);\
__wGDIx=X;\
__wGDIy=Y;\
GDI_DrawString();\
}
#define BACKDOOR_OUTPUT_STRING(X, Y)\
{\
GDI_FILL_RECT(BACKDOOR_SERVO_X, Y, BACKDOOR_SERVO_X+225, Y+31, OSDSETUP_ENTRY_MAIN_COLOR_BG);\
GDI_CopyMsgString();\
__wGDIx=X;\
__wGDIy=Y;\
GDI_DrawString();\
}
#define BACKDOOR_CLEAR_NUMBER()\
{\
GDI_FILL_RECT(BACKDOOR_SERVO_X, BACKDOOR_SERVO_Y, BACKDOOR_SERVO_X+225, BACKDOOR_SERVO_Y+31, OSDSETUP_ENTRY_MAIN_COLOR_BG);\
}
//LJY275e
// wyc.277a-2, rename by SUPPORT_CDIF.
#ifdef SUPPORT_CDIF
BIT gbtServoInfo = FALSE;
BIT gbtServoRegRW = FALSE;
BYTE gbKeyCntr, gbTestItem;
WORD gwValue;
void _ServoDebugInfo(void) ;
#endif //SUPPORT_CDIF
#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM //XuLi.230
BYTE __bPreCountStop;//Xuli1.26, Save the previous stop mode before entering SETUP to decide if need resume after exit.
extern BYTE __bProgramStop; //Xuli1.26, Use this variable check such condition: if program cause stop, then SETUP, __bPreCountStop<>0, but still need resume after exit SETUP
#endif
// save to EEPROM info.
//BIT __btInputPassword; //=FALSE;
//BYTE __bPasswordIndex; // = 0;
BYTE __bPassword[SETUP_PASSWORD_NO+1];
BYTE __bSetupMode; // = FALSE; put in _INITIAL_Variables_PowerON
//BYTE __btInputMenuLanguageCode; //=FALSE;
//BYTE __bMenuLanguageCodeIndex; // = 0;
//BYTE __bMenuLanguageCode[4];
//BYTE __btInputAudioLanguageCode; //=FALSE;
//BYTE __bAudioLanguageCodeIndex; // = 0;
//BYTE __bAudioLanguageCode[4];
//BYTE __btInputSPSTLanguageCode; //=FALSE;
//BYTE __bSPSTLanguageCodeIndex;// = 0;
//BYTE __bSPSTLanguageCode[4];
BYTE __bLanguageCode[4];
BYTE _bAudioTypeChange; // = FALSE;
BYTE _bParentalControlChange; // = FALSE;
// for SETUP_InputPassword
BYTE __bInputPassword; //=FALSE;
BYTE __bInputPasswordIndex; // = 0;
BYTE *pbSetupPtr;
BYTE i;
BYTE _bSetupTemp;
#ifdef _DEBUG_INFO
BYTE _bEEPROMError = 0;
#endif
// update Setup info to SPRM
extern WORD __wSPRMs [24];
extern BYTE __bNowBTNNumber;
extern BYTE __bInvalidRegion;
extern BYTE _bShowCEMessage;
extern BYTE __bServoRevision[5];
extern void _SetAudType(BYTE bType); // in CHIPS module
void _SetAngleMarkTime(void);
void _WriteSetupData(BYTE bSetup, BYTE bDefaultPassword);
void _SetTestTone(BYTE bChannel);
void _SoftVolumeMax(void); // brian.277a-3rd
void OSDSETUP_Display(void);
void OSDSETUP_ProcessSpeaker(void);
//CoCo1.11a, for backdoor
void _OutputAllSWVersion(void);
void _OutputVersion(void);
void _ClearVersionRegion(void);
//RECT _rcArea;
BYTE _bPasswordOK=FALSE;
BYTE __SetupMode=FALSE;
extern BYTE _bGDIInit;
extern BYTE __bThumbnailRepaint;
extern BYTE __bThumbnailMode;
extern BYTE DATA _bOSDLang;
//CoCo1.11a, for backdoor
extern WORD _wHPos;
extern WORD __wVStart; // Brian1.25, for temp usage in _OutputAllSWVersion
extern BYTE _bUDEData[6];
extern COPYINFO cpinfo ; // Brian1.25
void _SaveDataToSetupInfo(void);
void _ProcessBackDoorKey(void);
void _SpeakerTest(void);
void _SetAnalogEnable(void);
//Alex1.07a, 20031013 SHOW PSCAN PROMPT
#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)
extern BYTE __bOSDPromptPreKey;
extern BYTE __bOSDPromptMode;
extern BYTE OSDSETUP_InputPscan(BYTE bKey);
extern void OSDSETUP_ScreenVideoOutputPscanDlg(void);
#endif //#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)
BYTE SETUP_ProcessKey(BYTE bKey)
{
if ((__bSetupMode == FALSE) && (__bKey!=KEY_SETUP))
{
// If not in SETUP mode now, and Key is not SETUP
// just return, process as normal keys
return __bKey; //FALSE;
}
if ((__bKey == KEY_POWER) || (__bKey == KEY_OPEN_CLOSE))
{
//clear highlight
HAL_VCD30_Area(FALSE);
__bSetupMode = FALSE;
//Brian1.05
//_bDoBackDoor = FALSE;
if (_bDoBackDoor)
_ExitBackDoor();
__bInputPassword = FALSE;
#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)
// Brian1.07a, cancel PScan prompt
__bOSDPromptMode = FALSE;
#endif
//Brian0.86-2
// clear the region and inform OSD
GDI_ClearRegion(__bCurrentRegionId);
// OSD_Output(MSG_OSDAPP, OSD_APPMODE_EXIT, 0x0);
OSD_OUTPUT_MACRO(MSG_OSDAPP, OSD_APPMODE_EXIT, 0x0); // Brian1.02
return __bKey; //TRUE;
}
// Brian2.81, we treate compound KEY_PLAY_PAUSE/ KEY_PAUSE_STEP as KEY_PAUSE in backdoor
if (_bDoBackDoor)
{
if (__bKey == KEY_PLAY_PAUSE || __bKey == KEY_PAUSE_STEP)
__bKey = KEY_PAUSE;
_ProcessBackDoorKey();
return KEY_NO_KEY;
}
else
{
if (__bKey == KEY_PLAY || __bKey == KEY_PLAY_PAUSE)
__bKey = KEY_ENTER;
}
if (__bInputPassword)
{
extern BYTE _bMENUTemp;
if (__wMENUCurrentItemId == SETUP_CUSTOM_CHANGE_PASSWORD)
{
_bMENUTemp = OSDSETUP_ChangePassword(__bKey);
if (_bMENUTemp == SETUP_INPUT_PASSWORD_VERIFIED)
{
#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051
HAL_EEPROM_PWrite(SETUP_ADDR_PASSSTRING, &__SetupInfo.wDefaultPassword, 2);
#endif
}
__bKey = KEY_NO_KEY;
}
else if (__wMENUCurrentItemId == SETUP_CUSTOM_PARENTAL)
{
_bMENUTemp = SETUP_InputPassword(__bKey);
if (_bMENUTemp == SETUP_INPUT_PASSWORD_CORRECT)
{
__bKey = KEY_RIGHT;
_bPasswordOK = TRUE;
}
else
{
__bKey = KEY_NO_KEY;
}
}
//Alex1.07a,20031013 SETUP_SHOW_PSCAN_PROMP
#ifdef SUPPORT_PSCAN_PROMPT_SETUP
//Alex1.07a 20031009 if current menu is one of pscan,
// choose support pscan or not
else if (__wMENUCurrentItemId == SETUP_SCREEN_VIDEO_OUTPUT_YUV_PSCAN ||
__wMENUCurrentItemId == SETUP_SCREEN_VIDEO_OUTPUT_RGB_PSCAN ||
__wMENUCurrentItemId == SETUP_SCREEN_VIDEO_OUTPUT_VGA)
{
_bMENUTemp = OSDSETUP_InputPscan(__bKey);
// move to OSD3 to handle it
/*
if (_bMENUTemp == SETUP_INPUT_PASSWORD_CORRECT)
{
OSDMENU_MenuOperation(KEY_ENTER);
_SaveDataToSetupInfo();
}
*/
/*
else if (_bMENUTemp ==SETUP_INPUT_PASSWORD_WRONG)
{
switch (__wMENUCurrentItemId)
{
case SETUP_SCREEN_VIDEO_OUTPUT_VGA:
OSDMENU_MenuOperation(KEY_UP);
OSDMENU_MenuOperation(KEY_UP);
case SETUP_SCREEN_VIDEO_OUTPUT_YUV_PSCAN:
case SETUP_SCREEN_VIDEO_OUTPUT_RGB_PSCAN:
OSDMENU_MenuOperation(KEY_UP);
OSDMENU_MenuOperation(KEY_UP);
OSDMENU_MenuOperation(KEY_ENTER);
}
}
_SaveDataToSetupInfo();
*/
}
#endif //#ifdef SUPPORT_PSCAN_PROMPT_SETUP
else //if (__wMENUCurrentItemId == SETUP_LANGUAGE_MENU_OTHERS ||
// __wMENUCurrentItemId == SETUP_LANGUAGE_AUDIO_OTHERS ||
// __wMENUCurrentItemId == SETUP_LANGUAGE_SP_OTHERS)
{
_bMENUTemp = OSDSETUP_InputLanguageCode(__bKey);
if (_bMENUTemp == SETUP_INPUT_PASSWORD_CORRECT)
{
OSDMENU_MenuOperation(KEY_ENTER);
//_SaveDataToSetupInfo(); // Brian1.07, move after Language code transfer and put in __SetupInfo.xxxLanguageCode
switch (__wMENUPrevItemId)
{
case SETUP_LANGUAGE_MENU_OTHERS:
//Save the menu language code to __SetupInfo
__SetupInfo.wMenuLanguageCode = _GetLanguageNumber();
//Save the data to EEPROM
#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051
HAL_EEPROM_PWrite(SETUP_ADDR_MENU_LANGUAGE_CODE, &__SetupInfo.wMenuLanguageCode, 2);
#endif
break;
case SETUP_LANGUAGE_AUDIO_OTHERS:
//Save the menu language code to __SetupInfo
__SetupInfo.wAudioLanguageCode = _GetLanguageNumber();
#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051
HAL_EEPROM_PWrite(SETUP_ADDR_AUDIO_LANGUAGE_CODE, &__SetupInfo.wAudioLanguageCode, 2);
#endif
break;
case SETUP_LANGUAGE_SP_OTHERS:
//Save the menu language code to __SetupInfo
__SetupInfo.wSPSTLanguageCode = _GetLanguageNumber();
#ifdef WRITE_EEPROM_ENABLE//SYSTEM_8051
HAL_EEPROM_PWrite(SETUP_ADDR_SPST_LANGUAGE_CODE, &__SetupInfo.wSPSTLanguageCode, 2);
#endif
break;
}
// has been called in the previous _SaveDataToSetupInfo()
//_TransferLanguageToSPRM();
_SaveDataToSetupInfo(); // Brian1.07, put it here so when it call _TransferLanguageToSPRM, the __SetupInfo.xxxLanguageCode is correct
} // end if (_bMENUTemp == SETUP_INPUT_PASSWORD_CORRECT)
__bKey = KEY_NO_KEY;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -