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

📄 osdvga003.c

📁 LCD TV,uVision2 Project, (C) Keil Software
💻 C
字号:
#define __OSDVGA003___

#include "Header\Include.h"
#if(OSD_TYPE == OSD003)



#if(_TMDS_SUPPORT || _VGA_SUPPORT)
//------------------------------------------------------------
void OSDVGAProc()
{
     switch(ucOsdState)
     {
          case _MENU_NONE:                    MNoneProc();           break;
          case MENU_ITEM_BRIGHT:
          case MENU_ITEM_CONTRAST:
          case MENU_ITEM_PHASE:
          case MENU_ITEM_CLOCK:
          case MENU_ITEM_HPOS:
          case MENU_ITEM_VPOS:
          case MENU_ITEM_LANGUAGE:
          case MENU_ITEM_AUTO:
          case MENU_ITEM_RESET:
          case MENU_ITEM_CLOSE:
               MMainItemProc();
               break;
          case MENU_ITEM_BRIGH_ADJ:           MBrightAdjProc();      break;
          case MENU_ITEM_CONTRAST_ADJ:        MContrastAdjProc();    break;
          case MENU_ITEM_PHASE_ADJ:           MPhaseAdjProc();       break;
          case MENU_ITEM_CLOCK_ADJ:           MClockAdjProc();       break;
          case MENU_ITEM_HPOS_ADJ:            MHPosAdjProc();        break;
          case MENU_ITEM_VPOS_ADJ:            MVPosAdjProc();        break;
          case MENU_ITEM_LANGUAGE_ADJ:        MLanguageAdjProc();    break;
          case MENU_VOLUME_SP:                MVolumeAdjProc();      break;
          default:                                                   break;

     }
}
//------------------------------------------------------------

void DrawPhasePage()
{
     TITLE_OUT((unsigned char code *)sPhase[GET_LANGUAGE]);
     LOADICOFNT(FntIcnPhase);         // andy icon not ready
     ICON_OUT();
     SLIDER2(PHASE_GUAGE);
}
//----------------------------------------------------------------------------------------------------
void DrawClockPage()
{
     TITLE_OUT((unsigned char code *)sClock[GET_LANGUAGE]);
     LOADICOFNT(FntIcnClk);         // andy icon not ready
     ICON_OUT();
     SLIDER2(ClockGuage());
}
//----------------------------------------------------------------------------------------------------
void DrawHPosPage()
{
     TITLE_OUT((unsigned char code *)sHPos[GET_LANGUAGE]);
     LOADICOFNT(FntIcnHPos);         // andy icon not ready
     ICON_OUT();
     SLIDER2(HPosGuage());
}
//----------------------------------------------------------------------------------------------------
void DrawVPosPage()
{
     TITLE_OUT((unsigned char code *)sVPos[GET_LANGUAGE]);
     LOADICOFNT(FntIcnVPos);         // andy icon not ready
     ICON_OUT();
     SLIDER2(VPosGuage());
}
//----------------------------------------------------------------------------------------------------
void DrawAutoPage()
{
     TITLE_OUT((unsigned char code *)sAuto[GET_LANGUAGE]);
     LOADICOFNT(FntIcnAuto);         // andy icon not ready
     DispIcon(12,4,0x60);
}
//----------------------------------------------------------------------------------------------------
void MNoneProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MNoneMenu();       break;
         case VK_LEFT:        MNoneLR(1);        break;
         case VK_RIGHT:       MNoneLR(0);        break;
         case VK_ENTER:       MNoneEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MNoneMenu()
{
     InitOSDFrame();
     SelectState();
     DrawBrightPage();
     ucOsdState = MENU_ITEM_BRIGHT;
     ShowPageIndex(ucOsdState,10);     
     COsdFxEnableOsd();
}
//----------------------------------------------------------------------------------------------------
void MNoneLR(unsigned char LR)
{
     if(LR)    GotoAdjustBrightness();
     else      GotoAdjustVolume();
}
//----------------------------------------------------------------------------------------------------
void MNoneEnter()
{
     DoAuto();
}
//----------------------------------------------------------------------------------------------------

void MMainItemProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MMainItemMenu();       break;
         case VK_LEFT:        MMainItemLR(1);        break;
         case VK_RIGHT:       MMainItemLR(0);        break;
         case VK_ENTER:       MMainItemEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MMainItemMenu()
{

    AdjustState();
    // Enter Sub Item
    switch(ucOsdState)
    {
        case MENU_ITEM_BRIGHT:
             SLIDER1(BRIGHTNESS_GUAGE);
             ucOsdState = MENU_ITEM_BRIGH_ADJ;
             break;
        case MENU_ITEM_CONTRAST:
             SLIDER1(CONTRAST_GUAGE);
             ucOsdState = MENU_ITEM_CONTRAST_ADJ;
             break;
        case MENU_ITEM_PHASE:
             SLIDER1(PHASE_GUAGE);
             ucOsdState = MENU_ITEM_PHASE_ADJ;
             break;
        case MENU_ITEM_CLOCK:
             SLIDER1(ClockGuage());
             ucOsdState = MENU_ITEM_CLOCK_ADJ;
             break;
        case MENU_ITEM_HPOS:
             SLIDER1(HPosGuage());
             ucOsdState = MENU_ITEM_HPOS_ADJ;
             break;
        case MENU_ITEM_VPOS:
             SLIDER1(VPosGuage());
             ucOsdState = MENU_ITEM_VPOS_ADJ;
             break;
        case MENU_ITEM_LANGUAGE:
             ucOsdState = MENU_ITEM_LANGUAGE_ADJ;
             break;
        case MENU_ITEM_AUTO:
             CenterTextout((unsigned char code *)sAuto[GET_LANGUAGE],14,6);
             CAutoDoAutoConfig();
             SelectState();
             OSDLine(6,0,COL_WIDTH,0x00,BYTE_DISPLAY);
             break;
        case MENU_ITEM_RESET:
             DoReset();
             SelectState();
             break;
        case MENU_ITEM_CLOSE:
             COsdFxDisableOsd();
             ucOsdState = _MENU_NONE;
             break;
    }
}
//----------------------------------------------------------------------------------------------------
void MMainItemLR(unsigned char LR)
{
     //STEP 1 : BEFORE ITEM CHANGE CLEAR OLD SELECT
     ClearClientDisplay();

     //STEP 2 : ITEM CHANGE
     ucOsdState = ValueInRangeChange(MENU_ITEM_BRIGHT,MENU_ITEM_CLOSE,ucOsdState,LR,1);
     ShowPageIndex(ucOsdState,10);

     //STEP 3 : AFTER ITEM CHANGE DRAW SELECT 
     switch(ucOsdState)
     {
        case MENU_ITEM_BRIGHT:             DrawBrightPage();             break;
        case MENU_ITEM_CONTRAST:           DrawContrastPage();           break;
        case MENU_ITEM_PHASE:              DrawPhasePage();              break;
        case MENU_ITEM_CLOCK:              DrawClockPage();              break;
        case MENU_ITEM_HPOS:               DrawHPosPage();               break;
        case MENU_ITEM_VPOS:               DrawVPosPage();               break;
        case MENU_ITEM_LANGUAGE:           DrawLanguagePage();           break;
        case MENU_ITEM_AUTO:               DrawAutoPage();               break;
        case MENU_ITEM_RESET:              DrawResetPage();              break;
        case MENU_ITEM_CLOSE:              DrawExitPage();               break;
     }
}
//----------------------------------------------------------------------------------------------------
void MMainItemEnter()
{

}
//----------------------------------------------------------------------------------------------------


//--------- PHASE ADJUST PROC ----------------------------------
void MPhaseAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MPhaseAdjMenu();       break;
         case VK_LEFT:        MPhaseAdjLR(1);        break;
         case VK_RIGHT:       MPhaseAdjLR(0);        break;
         case VK_ENTER:       MPhaseAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MPhaseAdjMenu()
{
     ucOsdState = MENU_ITEM_PHASE;
     SelectState();
     SLIDER2(PHASE_GUAGE);

     ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MPhaseAdjLR(unsigned char  LR)
{
     SET_KEYREPEATENABLE();
     stModeUserData.Phase = ValueInRangeChange(0,63,stModeUserData.Phase,LR,0);
     SLIDER1(PHASE_GUAGE);
     CAdjustPhase(stModeUserData.Phase);
}
//----------------------------------------------------------------------------------------------------
void MPhaseAdjEnter()
{

}
//----------------------------------------------------------------------------------------------------


//--------- CLOCK ADJUST PROC ----------------------------------
void MClockAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MClockAdjMenu();       break;
         case VK_LEFT:        MClockAdjLR(1);        break;
         case VK_RIGHT:       MClockAdjLR(0);        break;
         case VK_ENTER:       MClockAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MClockAdjMenu()
{
     ucOsdState = MENU_ITEM_CLOCK;
     SelectState();
     SLIDER2(ClockGuage());

     ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MClockAdjLR(unsigned char  LR)
{
     SET_KEYREPEATENABLE();
     stModeUserData.Clock = ValueInRangeChange(COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN),COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MAX),stModeUserData.Clock,LR,0);
     SLIDER1(ClockGuage());
     CAdjustAdcClock(stModeUserData.Clock);
}
//----------------------------------------------------------------------------------------------------
void MClockAdjEnter()
{

}
//----------------------------------------------------------------------------------------------------


//--------- H POSITION ADJUST PROC ----------------------------------
void MHPosAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MHPosAdjMenu();       break;
         case VK_LEFT:        MHPosAdjLR(1);        break;
         case VK_RIGHT:       MHPosAdjLR(0);        break;
         case VK_ENTER:       MHPosAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MHPosAdjMenu()
{
     ucOsdState = MENU_ITEM_HPOS;
     SelectState();
     SLIDER2(HPosGuage());

     ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MHPosAdjLR(unsigned char  LR)
{
     SET_KEYREPEATENABLE();
     stModeUserData.HPosition = ValueInRangeChange(stModeUserCenterData.CenterHPos - _HPOSITION_BIAS,
                                                   stModeUserCenterData.CenterHPos + _HPOSITION_BIAS,
                                                   stModeUserData.HPosition,LR,0);
     SLIDER1(HPosGuage());
     CAdjustHPosition();
}
//----------------------------------------------------------------------------------------------------
void MHPosAdjEnter()
{

}
//----------------------------------------------------------------------------------------------------


//--------- V POSITION ADJUST PROC ----------------------------------
void MVPosAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MVPosAdjMenu();       break;
         case VK_LEFT:        MVPosAdjLR(1);        break;
         case VK_RIGHT:       MVPosAdjLR(0);        break;
         case VK_ENTER:       MVPosAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MVPosAdjMenu()
{
     ucOsdState = MENU_ITEM_VPOS;
     SelectState();
     SLIDER2(VPosGuage());
     ucOsdEventMsg = _SAVE_EE_MODEUSERDATA_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MVPosAdjLR(unsigned char  LR)
{
     stModeUserData.VPosition = ValueInRangeChange(stModeUserCenterData.CenterVPos - _VPOSITION_BIAS,stModeUserCenterData.CenterVPos + _VPOSITION_BIAS,stModeUserData.VPosition,LR,0);
     SLIDER1(VPosGuage());
     CAdjustVPosition();
}
//----------------------------------------------------------------------------------------------------
void MVPosAdjEnter()
{

}
//----------------------------------------------------------------------------------------------------
void DoAuto()
{
     InitOSDFrame();
     SelectState();
     DrawAutoPage();
     COsdFxEnableOsd();     
     CenterTextout((unsigned char code *)sAuto[GET_LANGUAGE],14,6);
     CAutoDoAutoConfig();
     SelectState();
     COsdFxDisableOsd();
}
//----------------------------------------------------------------------------------------------------
#endif  //#if(_TMDS_SUPPORT || _VGA_SUPPORT)
#endif  //#if(OSD_TYPE == OSD003)

⌨️ 快捷键说明

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