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

📄 osdvga900.c

📁 LCD Monitor 部分源码
💻 C
📖 第 1 页 / 共 4 页
字号:
#define __OSDVGA900___

#include "Header\Include.h"

#if(_OSD_TYPE == _OSD900)

#if(_TMDS_SUPPORT || _VGA_SUPPORT)
//------------------------------------------------------------
void OSDVGAProc()
{
    switch(ucOsdState)
    {
        case _MENU_NONE:                 MNonePorc();           break;

        case _MENU_COLOR:
        case _MENU_IMAGE_SETTING:
        case _MENU_POSITION:
        case _MENU_OSD_MENU:
        case _MENU_LANGUAGE:
        case _MENU_MISC:
        case _MENU_EXIT:                 MMainMenuProc();       break;

        case _MENU_CONTRAST:
        case _MENU_BRIGHTNESS:
        case _MENU_COLOR_ADJUST:
        case _MENU_COLOR_TEMP:
        case _MENU_COLOR_BACK:           MColorPageProc();      break;

        case _MENU_RED:
        case _MENU_GREEN:
        case _MENU_BLUE:                 MColorAdjustPageProc();break;

        case _MENU_9300:
        case _MENU_6500:
        case _MENU_USER:                 MColorTmpPageProc();   break;

        case _MENU_CLOCK:
        case _MENU_PHASE:
        case _MENU_GAMMA:
        case _MENU_SHARPNESS:
        case _MENU_IMAGE_BACK:           MImagePageProc();      break;

        case _MENU_HPOS:
        case _MENU_VPOS:
        case _MENU_POSITION_BACK:        MPositionPageProc();   break;

        case _MENU_OSD_HPOS:
        case _MENU_OSD_VPOS:
        case _MENU_OSD_TIMER:
        case _MENU_OSD_COLOR:
        case _MENU_OSD_BACK:             MOsdPageProc();        break;

        case _MENU_RESET:
        case _MENU_VOLUME:
        case _MENU_MUTE:
        case _MENU_MISC_BACK:            MMiscPageProc();       break;

        case _MENU_LANGUAGE_ADJ:         MLanguageProc();       break;
        case _MENU_CONTRAST_ADJ:         MContrastProc();       break;
        case _MENU_BRIGHTNESS_ADJ:       MBrightnessProc();     break;
        case _MENU_RED_ADJ:              MRedProc();            break;
        case _MENU_GREEN_ADJ:            MGreenProc();          break;
        case _MENU_BLUE_ADJ:             MBlueProc();           break;
        case _MENU_CLOCK_ADJ:            MClockProc();          break;
        case _MENU_PHASE_ADJ:            MPhaseProc();          break;
        case _MENU_GAMMA_ADJ:            MGammaProc();          break;
        case _MENU_SHARPNESS_ADJ:        MSharpnessProc();      break;
        case _MENU_HPOS_ADJ:             MHPosProc();           break;
        case _MENU_VPOS_ADJ:             MVPosProc();           break;
        case _MENU_OSD_HPOS_ADJ:         MOsdHPosProc();        break;
        case _MENU_OSD_VPOS_ADJ:         MOsdVPosProc();        break;
        case _MENU_OSD_TIMER_ADJ:        MOsdTimerProc();       break;
        case _MENU_OSD_COLOR_ADJ:        NOsdColorProc();       break;
        case _MENU_VOLUME_ADJ :          MVolumeProc();         break;

        #if(_VOLUME_CTRL_TYPE != _AUDIO_NONE)
        case _MENU_VOLUME_SP:            MVolumeSPProc();       break;
        #else
        case _MENU_BRIGHT_SP:            MBrightSPProc();       break;
        #endif
        default:                                                break;
    }
}
//------------------------------------------------------------
void DrawVGAMainPage()
{
    // Close Window2
    COsdFxCloseWindow(2);  
    // Load font
    CScalerLoadFont(Fnt_MainPage_Ico,0x7a*2,42*2,_COMPRESS_FONT);
    
    SetIconCntAtb(7);                                             //Set Icon Count : 7

    // Out Icon & Out Text
    DispIcon(3,4,0x7a);                                           //Color Icon
    DispIcon(3,7,0x80);                                           //Image setting Icon
    DispIcon(3,10,0x86);                                          //Position Icon
    DispIcon(3,13,0x8c);                                          //Osd Menu Icon
    DispIcon(3,16,0x92);                                          //Languege Icon
    DispIcon(3,19,0x98);                                          //Misc Icon
    DispIcon(3,22,0x9e);                                          //Exit Icon

    Gotoxy(7,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sColor[GET_LANGUAGE]);

    Gotoxy(7,8,BYTE_DISPLAY);
    Textout((unsigned char code *)sImageSetting[GET_LANGUAGE]);

    Gotoxy(7,11,BYTE_DISPLAY);
    Textout((unsigned char code *)sPosition[GET_LANGUAGE]);

    Gotoxy(7,14,BYTE_DISPLAY);
    Textout((unsigned char code *)sOsdMenu[GET_LANGUAGE]);

    Gotoxy(7,17,BYTE_DISPLAY);
    Textout((unsigned char code *)sLanguage[GET_LANGUAGE]);

    Gotoxy(7,20,BYTE_DISPLAY);
    Textout((unsigned char code *)sMisc[GET_LANGUAGE]);

    Gotoxy(7,23,BYTE_DISPLAY);
    Textout((unsigned char code *)sExit[GET_LANGUAGE]);

    DrawPen(1,(ucOsdState - _MENU_COLOR) * 3 + 5);
}
//---------------------------------------------------------------------------
void DrawVGAColorPage()
{
    // Load font
    CScalerLoadFont(Fnt_ColorTmp_Ico, 0x03,6,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Color_Ico,0x7a*2,24*2,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Back_Ico, 0x92*2,6*2,_COMPRESS_FONT);
    
    CLEAR_OSD_ADJUST();

    SetIconCntAtb(5);                                             //Set Icon Count : 7
    // Out Icon & Out Text
    DispIcon(3,4,0x7a);                                           //Contrast Icon
    DispIcon(3,7,0x80);                                           //Brightness Icon
    DispIcon(3,10,0x86);                                          //Color Adjust Icon
    DispIcon(3,13,0x8c);                                          //Color Temp Icon
    DispIcon(3,16,0x92);                                          //Back Icon

    Gotoxy(7,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sContrast[GET_LANGUAGE]);

    Gotoxy(7,8,BYTE_DISPLAY);
    Textout((unsigned char code *)sBrightness[GET_LANGUAGE]);

    Gotoxy(7,11,BYTE_DISPLAY);
    Textout((unsigned char code *)sColorAdjust[GET_LANGUAGE]);

    Gotoxy(7,14,BYTE_DISPLAY);
    Textout((unsigned char code *)sColorTemp[GET_LANGUAGE]);

    Gotoxy(7,17,BYTE_DISPLAY);
    Textout((unsigned char code *)sBack[GET_LANGUAGE]);

    COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);

    DrawPen(1,(ucOsdState - _MENU_CONTRAST) * 3 + 5);
}
//---------------------------------------------------------------------------
void DrawVGAImagePage()
{
    // Load font
    CScalerLoadFont(Fnt_Image_Ico,0x7a*2,24*2,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Back_Ico,0x92*2,6*2,_COMPRESS_FONT);

    CLEAR_OSD_ADJUST();

    SetIconCntAtb(5);                                             //Set Icon Count : 7
    // Out Icon & Out Text
    DispIcon(3,4,0x86);                                           //Contrast Icon
    DispIcon(3,7,0x8c);                                           //Brightness Icon
    DispIcon(3,10,0x7a);                                          //Color Adjust Icon
    DispIcon(3,13,0x80);                                          //Color Temp Icon
    DispIcon(3,16,0x92);                                          //Back Icon

    Gotoxy(7,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sClock[GET_LANGUAGE]);

    Gotoxy(7,8,BYTE_DISPLAY);
    Textout((unsigned char code *)sPhase[GET_LANGUAGE]);

    Gotoxy(7,11,BYTE_DISPLAY);
    Textout((unsigned char code *)sGamma[GET_LANGUAGE]);

    Gotoxy(7,14,BYTE_DISPLAY);
    Textout((unsigned char code *)sSharpness[GET_LANGUAGE]);

    Gotoxy(7,17,BYTE_DISPLAY);
    Textout((unsigned char code *)sBack[GET_LANGUAGE]);

    COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);

    DrawPen(1,(ucOsdState - _MENU_CLOCK) * 3 + 5);
}
//---------------------------------------------------------------------------
void DrawVGAPositionPage()
{
    // Load font
    CScalerLoadFont(Fnt_POS_Ico,0x7a*2,12*2,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Back_Ico,0x86*2,6*2,_COMPRESS_FONT);     

    CLEAR_OSD_ADJUST();
    SetIconCntAtb(4);                                             //Set Icon Count : 7
    // Out Icon & Out Text
    DispIcon(3,4, 0x7a);                                          //H POSITION Icon
    DispIcon(3,7, 0x80);                                          //V POSITION Icon
    DispIcon(3,10,0x86);                                          //Back Icon

    Gotoxy(7,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sHPos[GET_LANGUAGE]);

    Gotoxy(7,8,BYTE_DISPLAY);
    Textout((unsigned char code *)sVPos[GET_LANGUAGE]);

    Gotoxy(7,11,BYTE_DISPLAY);
    Textout((unsigned char code *)sBack[GET_LANGUAGE]);
    COsdFxDrawWindow(XSTART(40), YSTART(355), XEND(250), YEND(445), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);

    DrawPen(1,(ucOsdState - _MENU_HPOS) * 3 + 5);
}
//---------------------------------------------------------------------------
void MNonePorc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU_OUT:                      break;
         case VK_MENU_IN:       MNoneMenuIn();  break;
         case VK_PREV_MENU:                     break;
         case VK_NEXT_MENU:                     break;
         case VK_ADJ_DEC:                       break;
         case VK_ADJ_INC:                       break;
         case VK_DO:                            break;
         case VK_ENTER:         MNoneMenuIn();  break;
         case VK_LEFT:          MNoneLR(0);     break;
         case VK_RIGHT:         MNoneLR(1);     break;         
     }
}
//---------------------------------------------------------------------------

void MNoneLR(unsigned char LR)
{
#if(_TMDS_SUPPORT)
     if(LR)
     {
          if(stSystemData.InputSource != _SOURCE_DVI)
             DoAuto();
          else
          {
            #if(_VOLUME_CTRL_TYPE != _AUDIO_NONE)
               DrawVolume();
               ucOsdState = _MENU_VOLUME_SP;
            #else
               DrawBright();
               ucOsdState = _MENU_BRIGHT_SP;
            #endif
          }
     }
     else
     {
          #if(_VOLUME_CTRL_TYPE != _AUDIO_NONE)
          DrawVolume();
          ucOsdState = _MENU_VOLUME_SP;
          #else
          DrawBright();
          ucOsdState = _MENU_BRIGHT_SP;
          #endif
     }
#else
     {
          LR = LR;
          #if(_VOLUME_CTRL_TYPE != _AUDIO_NONE)
          DrawVolume();
          ucOsdState = _MENU_VOLUME_SP;
          #else
          DrawBright();
          ucOsdState = _MENU_BRIGHT_SP;
          #endif
     }
#endif
}
//------------------------------------------------------------
void MNoneMenuIn()
{
     ucOsdState = _MENU_COLOR;
     LoadLanguageFont();
     InitOSDFrame();
     DrawMainPage();
     COsdFxEnableOsd();
}
//------------------------------------------------------------
void MMainMenuProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU_OUT:      MMainMenuMenuOut();     break;
         case VK_MENU_IN:       MMainMenuMenuIn();      break;
         case VK_PREV_MENU:     MMainMenuLR(0);         break;
         case VK_NEXT_MENU:     MMainMenuLR(1);         break;
         case VK_ADJ_DEC:                               break;
         case VK_ADJ_INC:                               break;
         case VK_DO:                                    break;
         case VK_ENTER:         MMainMenuMenuIn();      break;
         case VK_LEFT:          MMainMenuLR(0);         break;
         case VK_RIGHT:         MMainMenuLR(1);         break;
     }
}
//------------------------------------------------------------
void MMainMenuMenuIn()
{
     CLEAR_OSD_CLIENT();
     switch(ucOsdState)
     {
        case _MENU_COLOR:
             ucOsdState = _MENU_CONTRAST;
             DrawColorPage();
             break;
        case _MENU_IMAGE_SETTING:
             ucOsdState = _MENU_CLOCK;
             DrawImagePage();
             break;
        case _MENU_POSITION:
             ucOsdState = _MENU_HPOS;
             DrawPositionPage();
             break;
        case _MENU_OSD_MENU:
             ucOsdState = _MENU_OSD_HPOS;
             DrawOSDPage();
             break;
        case _MENU_LANGUAGE:
             ucOsdState = _MENU_LANGUAGE_ADJ;
             DrawLanguagePage();
             break;
        case _MENU_MISC:
             ucOsdState = _MENU_RESET;
             DrawMiscPage();
             break;
        case _MENU_EXIT:
             ucOsdState = _MENU_NONE;             
             COsdFxDisableOsd();
             break;
     }
}
//------------------------------------------------------------
void MMainMenuLR(unsigned char LR)
{
     // Step 1: Clear Old Select
     DrawPen(0,(ucOsdState - _MENU_COLOR) * 3 + 5);

     // Step 2: Change Select Item
     ucOsdState = ValueInRangeChange(_MENU_COLOR,_MENU_EXIT,ucOsdState,LR,1);

     // Step 3: Draw
     DrawPen(1,(ucOsdState - _MENU_COLOR) * 3 + 5);
}
//------------------------------------------------------------
void MMainMenuMenuOut()
{
     ucOsdState = _MENU_NONE;
     COsdFxDisableOsd();
}
//------------------------------------------------------------


void MColorPageProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU_OUT:      MColorPageMenuOut();    break;
         case VK_MENU_IN:       MColorPageMenuIn();     break;
         case VK_PREV_MENU:     MColorPageLR(0);        break;
         case VK_NEXT_MENU:     MColorPageLR(1);        break;
         case VK_ADJ_DEC:                               break;
         case VK_ADJ_INC:                               break;
         case VK_DO:                                    break;
         case VK_ENTER:         MColorPageMenuIn();     break;
         case VK_LEFT:          MColorPageLR(0);        break;
         case VK_RIGHT:         MColorPageLR(1);        break;
     }
}
//------------------------------------------------------------
void MColorPageMenuIn()
{
     switch(ucOsdState)
     {
        case _MENU_CONTRAST:
             ucOsdState = _MENU_CONTRAST_ADJ;
             SLIDER(CONTRAST_GUAGE);
             break;
        case _MENU_BRIGHTNESS:
             ucOsdState = _MENU_BRIGHTNESS_ADJ;
             SLIDER(BRIGHTNESS_GUAGE);
             break;
        case _MENU_COLOR_ADJUST:
             if(GET_COLOR_TEMP_TYPE() != _CT_USER)
                  break;
             ucOsdState = _MENU_RED;
             MColorPageRGBSelect(ucOsdState - _MENU_RED,1);
             MDrawColorPageRGB();
             break;
        case _MENU_COLOR_TEMP:
             if(GET_COLOR_TEMP_TYPE() == _CT_9300)
                  ucOsdState = _MENU_9300;
             else if(GET_COLOR_TEMP_TYPE() == _CT_6500)
                  ucOsdState = _MENU_6500;
             else ucOsdState = _MENU_USER;
             MColorPageRGBSelect(ucOsdState - _MENU_9300,1);
             MDrawColorTmp();
             break;
        case _MENU_COLOR_BACK:
             MColorPageMenuOut();
             break;
     }
}
//------------------------------------------------------------
void MColorPageLR(unsigned char LR)
{
     // Step 1: Clear Old Select
     DrawPen(0,(ucOsdState - _MENU_CONTRAST) * 3 + 5);

     // Step 2: Change Select Item
     ucOsdState = ValueInRangeChange(_MENU_CONTRAST,_MENU_COLOR_BACK,ucOsdState,LR,1);

     // Step 3: Draw

⌨️ 快捷键说明

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