📄 benq_osd.c
字号:
//**********************************************************************************************************
// The Software is proprietary, confidential, and valuable to Realtek Semiconductor
// Corporation ("Realtek"). All rights, including but not limited to copyrights,
// patents, trademarks, trade secrets, mask work rights, and other similar rights and interests,
// are reserved to Realtek. Without prior written consent from Realtek, copying, reproduction,
// modification, distribution, or otherwise is strictly prohibited. The Software shall be
// kept strictly in confidence, and shall not be disclosed to or otherwise accessed by
// any third party. @ <2003> - <2008> The Software is provided "AS IS" without any warranty of any kind,
// express, implied, statutory or otherwise.
//**********************************************************************************************************
//----------------------------------------------------------------------------------------------------
// ID Code : Osd.c No.0000
// Update Note :
//----------------------------------------------------------------------------------------------------
#define __BENQ_OSD__
#include "Common\Header\Include.h"
#if(_OSD_TYPE == _BENQ_OSD)
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdHandlerBenq(void)
{
COsdSystemFlowProcBenq();
COsdEventMsgProcBenq();
if((ucCurrState==_ACTIVE_STATE)&&(ucOsdState<_MenuShowInputBenq))
{
if(ucKeyMessage<_NONE_KEY_MESSAGE)
{
#if(_TOUCH_SENSOR == _ON)
CKeyBuzzerBeep();
#endif
(*OperationTableBenq[ucOsdState][ucKeyMessage])();
if((ucOsdState != _MenuNoneBenq) && (!GET_FACTORY_MODE()) && (bServiceMode == _FALSE))
CTimerReactiveTimerEvent(SEC(stGlobalData1.OsdTimeoutBenq),COsdFxOsdTimerBenq);
else if((((ucOsdState == _MenuNoneBenq) && (bHotKeyEnterConBri == _ON)) || ((ucOsdState == _MenuNoneBenq) && (bHotKeySelectColorMode == _ON))) && (!GET_FACTORY_MODE()))
CTimerReactiveTimerEvent(SEC(3),COsdFxOsdTimerBenq);
}
else if(ucKeyMessage==_AUTO_KEY_MESSAGE)
{
if(stGlobalData3.OSDLock!=_OSD_LOCK)
{
#if(_TOUCH_SENSOR == _ON)
CKeyBuzzerBeep();
#endif
if(!GET_FACTORY_MODE())
{
SET_SENSEYE_STATUS(_OFF);
if((bHotKeySelectColorMode==_OFF)&&(bHotKeyEnterConBri==_OFF)&&(ucOsdState==_MenuNoneBenq))
{
COsdFxOsdTimerBenq();//睲埃 SENSEYE DEMO OSD
}
if(ucOsdState != _MenuFastInputBenq)
{
COsdEnter1stAutoBenq();
ucOsdEventMsg=_SAVE_EE_GLOBALDATA0_MSG;
CAdjustDemoWindow();
}
}
else
{
if((ucOsdState<_MenuFactoryWhiteBalanceBenq)||(ucOsdState>_MenuFactoryAdcAdjustBenq))
{
DisplayFactoryPageBenq();
COsdRightFactoryAdcBenq();
}
}
}
else if(ucOsdState==_MenuNoneBenq) // osd locked
{
COsdRightNoneBenq();
}
}
}
#if(0)//TIMING
COsdFxShowValueBenq(16,0,stModeInfo.ModeCurr,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,5,stModeInfo.IVTotal,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,10,stModeInfo.IHSyncPulseCount,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,15,stModeInfo.IVFreq,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,20,GET_MODE_SEARCH_TYPE(),4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,30,bHPD_D0,4,_NON_PERCENT,0,0);
#endif
#if(0)//KEY
COsdFxShowValueBenq(16,0, MCU_ADC0_RESULT_FF09,8,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,10,MCU_ADC1_RESULT_FF0A,8,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,20,MCU_ADC2_RESULT_FF0B,8,_NON_PERCENT,0,0);
#endif
#if(0)//OVER SCAN
COsdFxShowValueBenq(16,0,ucOverScanH,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,5,ucOverScanV,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,10,stModeInfo.IHWidth,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,15,stModeInfo.IVHeight,4,_NON_PERCENT,0,0);
#endif
#if(0)
COsdFxShowValueBenq(16,0,stModeUserData.VPosition,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,5,ucDdcciVPositionRatio,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,10,COsdFxGetVPositionRangeBenq(_MAX),4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,15,COsdFxGetVPositionRangeBenq(_MIN),4,_NON_PERCENT,0,0);
#endif
#if(0)
COsdFxShowValueBenq(16,15,bD0_CONNECT,4,_NON_PERCENT,0,0);
COsdFxShowValueBenq(16,20,bA0_CONNECT,4,_NON_PERCENT,0,0);
#endif
}
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdSystemFlowProcBenq(void)
{
BYTE connect = 1;
switch(ucCurrState)
{
case _PWOFF_STATE:
break;
case _INITIAL_STATE:
#if(_TOUCH_SENSOR == _ON)
CKeyOneTouchSensorLedOn();
#endif
DisplayPowerOnLogoBenq();
ucCurrState = _SEARCH_STATE;
if(GET_FACTORY_MODE())
{
CSourceSwitchInputPort(_A0_INPUT_PORT);
}
else
{
if(GET_INPUTSOURCE_STATUS() == _SOURCE_DVI)
CSourceSwitchInputPort(_D0_INPUT_PORT);
else
CSourceSwitchInputPort(_A0_INPUT_PORT);
}
break;
case _SEARCH_STATE:
break;
case _ACTIVE_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CLR_OSD_READYFORDISPLAY();
CAdjustBackgroundColor(0x00, 0x00, 0x00);
if(((((tINPUTMODE_PRESET_TABLE[stModeInfo.ModeCurr].PolarityFlag)&_FAIL_SAFE_TIMING)==_FAIL_SAFE_TIMING))/* || (bFailSafeTiming == _TRUE)*/)
{
ucCurrState = _NOSUPPORT_STATE;
CTimerActiveTimerEvent(SEC(0.1), DisplayNoSupportHintBenq);
return;
}
#if(_HDMI_SUPPORT == _ON)
if(GET_INPUTSOURCE_TYPE() == _SOURCE_HDMI)
{
if(CHdmiFormatDetect())
{
if(stGlobalData4.Mute==_MUTE_ON)
CAdjustAudioMute(_ON);
else
CAdjustAudioMute(_OFF);
}
else
CAdjustAudioMute(_ON);
}
#endif
if(!GET_FACTORY_MODE())
DisplayChangeSourceChangeBenq();
else
DisplayAutoAndNonpresetBenq();
}
break;
case _NOSUPPORT_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CEepromSaveGlobalData0();
CLR_OSD_READYFORDISPLAY();
CTimerActiveTimerEvent(SEC(0.1), DisplayNoSupportHintBenq);
}
else if((((tINPUTMODE_PRESET_TABLE[stModeInfo.ModeCurr].PolarityFlag)&_FAIL_SAFE_TIMING) == _FAIL_SAFE_TIMING)
&& (ucOsdState == _MenuNoneBenq) && (ucKeyMessage != _NONE_KEY_MESSAGE) && (ucKeyMessage != _ENTER_KEY_MESSAGE))
{
DisplayNoSupportHintBenq();
}
break;
case _NOSIGNAL_STATE:
if(GET_OSD_READYFORDISPLAY() == _TRUE)
{
CEepromSaveGlobalData0();
CLR_OSD_READYFORDISPLAY();
CTimerActiveTimerEvent(SEC(1.5), DisplayNoSignalOrNoCableHintBenq);
}
break;
case _SLEEP_STATE:
if(bNoWakeUp) break;
if((ucKeyMessage != _NONE_KEY_MESSAGE) && (ucKeyMessage != _ENTER_KEY_MESSAGE) && (bPressAnyKeytoWakeUp == _TRUE))
{
#if(_MCU_TYPE == _REALTEK_EMBEDDED)
CMcuSelectFlashClk(_FLASH_CLK);
#endif
#if(_TOUCH_SENSOR == _ON)
CKeyBuzzerBeep();
#endif
CModeResetMode();
bPressAnyKeytoWakeUp=_TRUE;
}
break;
default:
break;
}
}
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdEventMsgProcBenq(void)
{
bHotKeyMenuFirstOn=_FALSE;
switch(ucOsdEventMsg)
{
case _SAVE_EE_MODEUSERDATA_MSG:
CEepromSaveModeData();
break;
case _SAVE_EE_GLOBALDATA0_MSG:
CEepromSaveGlobalData0();
break;
case _SAVE_EE_GLOBALDATA1_MSG:
CEepromSaveGlobalData1();
break;
case _SAVE_EE_GLOBALDATA3_MSG:
CEepromSaveGlobalData3();
break;
case _SAVE_EE_GLOBALDATA4_MSG:
CEepromSaveGlobalData4();
break;
case _SAVE_EE_ADCDATA_MSG:
CEepromSaveAdcData();
break;
case _SAVE_EE_COLORDATA_MSG:
CEepromSaveColorTempData();
break;
case _SAVE_EE_PICTUREDATA_MSG:
CEepromSavePictureData();
break;
case _SAVE_EE_SYSTEMDATA_MSG:
CEepromSaveSystemData();
break;
default:
break;
}
#if(_DDCCI_SUPPORT==_ON)
if(ucOsdEventMsg != _NONE_MSG) CDdcciNewControlValue();
#endif
ucOsdEventMsg = _NONE_MSG;
}
void COsdEnterNoneBenq(void)
{
BYTE i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -