⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generic_osd.c

📁 realtek LCD monitor, TV开发源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
//**********************************************************************************************************
//  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 __GENERIC_OSD__

#include "Common\Header\Include.h"

#if(_OSD_TYPE == _GENERIC_OSD)

BYTE code OnStringBlanking[]=
{
   15,15,13,21,20,
   18,13,24,24,18,
};
BYTE code OffStringBlanking[]=
{
   20,21,16,21,19,
   24,17,24,24,19,
};
BYTE code FullStringBlanking[]=
{
   19,22,16,17,13,
   16,16,24,23,14,
};
BYTE code OrgStringBlanking[]=
{
   16,16,16,16,16,
   16,16,16,15,16,
};
BYTE code AspStringBlanking[]=
{
   23,13,13,13,17,
   14,14,24,24,19,
};

#if((_AUDIO_LINEIN_SUPPORT == _ON) && (_HDMI_SUPPORT == _ON))

BYTE code AutoStringBlanking[]=
{
   15,15,0,18,0,
   18,14,28,25,18,
};
BYTE code LineInStringBlanking[]=
{
   18,0,15,0,28,
   0,14,17,25,14,
};

/*
BYTE code AutoStringBlanking[]=
{
   19,18,15,21,15,
   26,19,24,23,22,
};
BYTE code LineInStringBlanking[]=
{
   22,15,20,16,17,
   22,18,19,24,17,
};
*/
#endif
//------------------------------------------------------------------------------------------------------------------------
void COsdHandlerGeneric(void)
{
   COsdSystemFlowProcGeneric();

   COsdEventMsgProcGeneric();

   if((ucCurrState==_ACTIVE_STATE)&&(ucOsdState!=_MenuShowNonPresetModeGeneric))
   {
      if(ucKeyMessage<_NONE_KEY_MESSAGE)
      {
         (*OperationTableGeneric[ucOsdState][ucKeyMessage])();
#if(_SERVICE_PAGE == _ON)
         if(!GET_FACTORY_MODE() && (bServiceMode==_FALSE))
#else
         if(!GET_FACTORY_MODE())
#endif
         {
            if(bHotKeyAdjust==_TRUE)                            //0305 sephinroth:For Hotkey
               CTimerReactiveTimerEvent(SEC(5),COsdFxOsdTimerGeneric);
            else
               CTimerReactiveTimerEvent(SEC(stGlobalData1.OsdTimeoutGeneric),COsdFxOsdTimerGeneric);
         }
      }
      else if(ucKeyMessage==_AUTO_KEY_MESSAGE)
      {
         if(!GET_FACTORY_MODE())
         {
            if(ucOsdState != _MenuExitFastInputGeneric)
            {
                if(GET_INPUTSOURCE_TYPE()==_SOURCE_VGA)
                {
                   ucOsdState = _MenuNoneGeneric;
                   DisplayAutoAdjustingGeneric();
                   COsdFxEnableOsdGeneric();
                   CAutoDoAutoConfig();
                   COsdFxOsdTimerGeneric();
                }
                ucOsdEventMsg=_SAVE_EE_GLOBALDATA0_MSG;
            }
         }
         else
         {
            if((ucOsdState<_MenuFactoryWhiteBalanceGeneric)||(ucOsdState>_MenuFactoryAdcGeneric))
            {
               COsdExitFactoryBurnInOnOffGeneric();
               COsdRightMainFactoryAdcGeneric();
            }
         }
      }
   }
#if(0)
//CEepromRead(_EEPROM_HDCP_KEY_ADDRESS, 3, &RamI2cCommandData[0]);
COsdFxShowValueGeneric(0,0,MCU_ADC0_RESULT_FF09,3,_NON_PERCENT,0,0);
COsdFxShowValueGeneric(1,0,MCU_ADC1_RESULT_FF0A,3,_NON_PERCENT,0,0);
COsdFxShowValueGeneric(2,0,MCU_ADC2_RESULT_FF0B,3,_NON_PERCENT,0,0);
#endif
}
//--------------------------------------------------
// Description  :
// Input Value  :
// Output Value :
//--------------------------------------------------
void COsdSystemFlowProcGeneric(void)
{
    BYTE connect = 1;

    switch(ucCurrState)
    {
        case _PWOFF_STATE:
            break;

        case _INITIAL_STATE:
            DisplayPowerOnLogoGeneric();
            ucCurrState = _SEARCH_STATE;
//****************ryan 081204*****************
            if(GET_FACTORY_MODE())
            {
                CSourceSwitchInputPort(_A0_INPUT_PORT);
            }
            else
                {
                if(GET_INPUTSOURCE_STATUS() == _SOURCE_DVI)
                    CSourceSwitchInputPort(_D0_INPUT_PORT);
                else
                    CSourceSwitchInputPort(_A0_INPUT_PORT);
                }
//****************ryan 081204*****************
            break;

        case _SEARCH_STATE:
            break;

        case _ACTIVE_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CAdjustBackgroundColor(0x00, 0x00, 0x00);
                CLR_OSD_READYFORDISPLAY();

           CAdjustVolume(stGlobalData4.VolumeGeneric);//ryan 081127 audio
#if(_AUDIO_SUPPORT == _ON)
               CAdjustAudioMute(_OFF);
#endif
                if((GET_INPUTSOURCE_STATUS() == _SOURCE_VGA) || ((GET_INPUTSOURCE_STATUS() == _SOURCE_DVI) && (!CHdmiFormatDetect())))
                    DisplayAutoAndNonpresetGeneric();
            }

            break;

        case _NOSUPPORT_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CLR_OSD_READYFORDISPLAY();
                CTimerActiveTimerEvent(SEC(0.1), DisplayNoSupportHintGeneric);
            }
            break;

        case _NOSIGNAL_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CLR_OSD_READYFORDISPLAY();
                CTimerActiveTimerEvent(SEC(1), DisplayNoSignalOrNoCableHintGeneric);
            }
            break;

        case _SLEEP_STATE:

            if(bNoWakeUp) break;

           if((ucKeyMessage != _NONE_KEY_MESSAGE) /*&& (ucKeyMessage != _EXIT_KEY_MESSAGE) */&& (bPressAnyKeytoWakeUp == _TRUE))//ryan 081120
            {

#if(_MCU_TYPE == _REALTEK_EMBEDDED)
                    CMcuSelectFlashClk(_FLASH_CLK);
#endif

                CModeResetMode();
                bPressAnyKeytoWakeUp=_TRUE;
            }
            break;

        default:
            break;
    }
}

//--------------------------------------------------
// Description  :
// Input Value  :
// Output Value :
//--------------------------------------------------
void COsdEventMsgProcGeneric(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;//ryan 081218
        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;

        default:
            break;
    }
#if(_DDCCI_SUPPORT==_ON)
    if(ucOsdEventMsg != _NONE_MSG) CDdcciNewControlValue();
#endif
    ucOsdEventMsg = _NONE_MSG;
}
//================================================================================//
void COsdRightNoneGeneric(void)
{
//0830 HDCP Mode1/Mode2
#if(_SERVICE_PAGE == _ON)
   if(bServicePageOn==_ON)
   {
      if(GET_SERVICEMODE_STATUS() == _MODE_2)
         SET_SERVICEMODE_STATUS(_MODE_1);
      else
         SET_SERVICEMODE_STATUS(_MODE_2);
      DisplaySelectServiceModeGeneric();
      ucOsdEventMsg = _SAVE_EE_GLOBALDATA0_MSG;
      return;
   }
#endif
   if(stSystemData.DcrSetting != _OFF)
   {
   }
   else
   {
      BYTE i;
      bHotKeyMenuFirstOn=_TRUE;
      DisplayLoadMainIconGeneric();
      DisplayLoadLuminanceIconGeneric();
      DisplayLoadLanguageFontGeneric();
      i=ucMainOsdState;
      ucMainOsdState=_Menu1stLuminanceGeneric;
      COsdEnter2ndBrightGeneric();
      bHotKeyAdjust=_TRUE;
      ucMainOsdState=i;
   }
}
//================================================================================//
void COsdRight1stAutoGeneric(void)
{
   if((stSystemData.DcrSetting != _OFF)&&(stGlobalData4.BurnIn!=_BURNIN_ON))//ryan add new osd func
      COsdRight1stLuminanceGeneric();
   else
      Display1stHighLightBarGeneric(_Menu1stLuminanceGeneric);
}
//================================================================================//
void COsdRight1stGeometryGeneric(void)
{
   Display1stHighLightBarGeneric(_Menu1stColorGeneric);
}
//================================================================================//
void COsdRight1stLuminanceGeneric(void)
{
#if(_TMDS_SUPPORT==_ON)
   if(((GET_INPUTSOURCE_TYPE() == _SOURCE_DVI) || (GET_INPUTSOURCE_TYPE() == _SOURCE_HDMI)))
      COsdRight1stGeometryGeneric();
   else
#endif
      Display1stHighLightBarGeneric(_Menu1stGeometryGeneric);
}
//================================================================================//
void COsdRight1stColorGeneric(void)
{
   Display1stHighLightBarGeneric(_Menu1stOsdGeneric);
}
//================================================================================//
void COsdRight1stOsdGeneric(void)
{
   Display1stHighLightBarGeneric(_Menu1stLanguageGeneric);
}
//================================================================================//
void COsdRight1stLanguageGeneric(void)
{
   Display1stHighLightBarGeneric(_Menu1stRecallGeneric);
}
//================================================================================//
void COsdRight1stRecallGeneric(void)
{
   Display1stHighLightBarGeneric(_Menu1stMisGeneric);
}
//================================================================================//
void COsdRight1stMisGeneric(void)
{
#if(_AnalogOnly==_FALSE)
#if(_TMDS_SUPPORT==_ON)
   Display1stHighLightBarGeneric(_Menu1stInputGeneric);
#elif(_AUDIO_SUPPORT==_ON)
   Display1stHighLightBarGeneric(_Menu1stAudioGeneric);
#else
   Display1stHighLightBarGeneric(_Menu1stAutoGeneric);
#endif
#else
#if(_AUDIO_SUPPORT==_ON)
   Display1stHighLightBarGeneric(_Menu1stAudioGeneric);
#else
   Display1stHighLightBarGeneric(_Menu1stAutoGeneric);
#endif

#endif
}
//================================================================================//
#if(_TMDS_SUPPORT==_ON)
void COsdRight1stInputGeneric(void)
{
#if(_AUDIO_SUPPORT==_ON)
   Display1stHighLightBarGeneric(_Menu1stAudioGeneric);
#else
   Display1stHighLightBarGeneric(_Menu1stAutoGeneric);
#endif
}
#endif
//================================================================================//
#if(_AUDIO_SUPPORT==_ENABLE)
void COsdRight1stAudioGeneric(void)
{
#if(_TMDS_SUPPORT==_ON)
   if((GET_INPUTSOURCE_TYPE() == _SOURCE_DVI) || (GET_INPUTSOURCE_TYPE() == _SOURCE_HDMI))
      if((stSystemData.DcrSetting != _OFF)&&(stGlobalData4.BurnIn!=_BURNIN_ON))//ryan add new osd func
         Display1stHighLightBarGeneric(_Menu1stColorGeneric);
      else
         Display1stHighLightBarGeneric(_Menu1stLuminanceGeneric);
   else
#endif
     Display1stHighLightBarGeneric(_Menu1stAutoGeneric);
}
#endif
//================================================================================//
void COsdRight2ndContrastGeneric(void)
{
   //ryan add new osd func
   if((stSystemData.DcrSetting != _OFF)||(CHECKECOON()))
   {}
   else
   {
   //ryan add new osd func

   Display2ndLuminanceHighLightBarGeneric(_Menu2ndBrightGeneric);
      //ryan add new osd func
   if(stGlobalData4.PictureMode!=_STANDARD_PICTURE)
        Display1BitColorWidthGeneric(ROW(6),COL(4),WIDTH(COsdFxCalFontLengthLanGeneric(OSD_CONTRAST_STR_LAN_GENERIC)),(_CP_DARKGRAY<<4));
   }
   //ryan add new osd func

}
//================================================================================//
void COsdRight2ndBrightGeneric(void)
{
   //ryan add new osd func
   if(stGlobalData4.PictureMode!=_STANDARD_PICTURE)
   {
    if((stSystemData.DcrSetting != _OFF)||(CHECKECOON()))
        {
           Display1BitColorWidthGeneric(ROW(6),COL(4),WIDTH(COsdFxCalFontLengthLanGeneric(OSD_CONTRAST_STR_LAN_GENERIC)),(_CP_DARKGRAY<<4));
           ucOsdState=_Menu2ndContrastGeneric;
        }
   }
   else
   //ryan add new osd func

   Display2ndLuminanceHighLightBarGeneric(_Menu2ndContrastGeneric);
}
//================================================================================//
void COsdRight2ndPosHGeneric(void)
{
   Display2ndGeometryHighLightBarGeneric(_Menu2ndPosVGeneric);
}
//================================================================================//
void COsdRight2ndPosVGeneric(void)
{
   Display2ndGeometryHighLightBarGeneric(_Menu2ndClockGeneric);
}
//================================================================================//
void COsdRight2ndClockGeneric(void)
{
   Display2ndGeometryHighLightBarGeneric(_Menu2ndPhaseGeneric);
}
//================================================================================//
void COsdRight2ndPhaseGeneric(void)
{
   Display2ndGeometryHighLightBarGeneric(_Menu2ndPosHGeneric);
}
//================================================================================//
void COsdRight2nd9300ColorGeneric(void)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -