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

📄 osdvga902.c

📁 LCD Monitor 部分源码
💻 C
📖 第 1 页 / 共 4 页
字号:
#define __OSDVGA902___ 
#include "Header\Include.h"
#if(_OSD_TYPE == _OSD902)
#if(_VGA_SUPPORT)
//------------------------------------------------------------
void OSDVGAProc()
{                                
    switch(ucOsdState)
    {
        case _MENU_NONE:                 MNonePorc();           break;

        //MAIN MENU
        case _MENU_BRIGHTNESS_CONTRAST:
        case _MENU_ADJUST:
        case _MENU_PHASE_CLOCK:
        case _MENU_HV_POSITION:
        case _MENU_MISC:
        case _MENU_RESET:	             MMainMenuProc();       break;

        //_MENU_BRIGHTNESS_CONTRAST
        case _MENU_BRIGHTNESS:           MBrightnessProc();     break;
        case _MENU_CONTRAST:             MContrastProc();       break;

        //_MENU_ADJUST
        case _MENU_AUTO_ADJUST:
        case _MENU_AUTO_BALANCE:         MAdjustProc();         break;

        case _MENU_ADJUSTING:                                   break; 

        //_MENU_PHASE_CLOCK
        case _MENU_PHASE:                MPhaseProc();          break;
        case _MENU_CLOCK:                MClockProc();          break;

        //_MENU_HV_POSITION
        case _MENU_H_POSITION:           MH_PositionProc();     break;
        case _MENU_V_POSITION:           MV_PositionProc();     break;

        //_MENU_MISC
        case _MENU_INFORMATION:
        case _MENU_TIMER:
        case _MENU_COLOR:
        case _MENU_LANGUAGE:
        case _MENU_DISPLAY_MODE:         MMiscProc();           break;

        case _MENU_TITLE_INFORMATION:    MInformationProc();    break;

        case _MENU_OSD_TIMER:            MTimerProc();          break;

        //_MENU_COLOR
        case _MENU_5500K:
        case _MENU_6500K:
        case _MENU_9300K:
        case _MENU_USER:                 MColorProc();          break;

        case _MENU_RED:                  MRedProc();            break;
        case _MENU_GREEN:                MGreenProc();          break;
        case _MENU_BLUE:                 MBlueProc();           break;

        //_MENU_LANGUAGE
        case _MENU_ENGLISH:
        case _MENU_JAPANESE:
        case _MENU_CHINESE_S:
        case _MENU_GERMAN:
        case _MENU_FRANCAIS:
        case _MENU_ESPANOL:
        case _MENU_ITALIANO:             MLanguageProc();       break;

        case _MENU_RESET_ALL:                                   break;

      #if(_VOLUME_CTRL_TYPE != _AUDIO_NONE)
        case _MENU_VOLUME_SP:            MVolumeSPProc();       break;
      #endif

        default:                                                break;
    }
}
//---------------------------------------------------------------------------
void DrawVGAMainPage()
{
    // Init
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);      //Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);     //Byte 1
    OSDLine(0,0,COL_WIDTH,COLOR_HEAD,BYTE_COLOR);
    OSDClear(1, 6, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);         //Byte 2
    OSDLine(7,0,COL_WIDTH,COLOR_BOTTOM,BYTE_COLOR);                //COLOR_HEAD

    // Out Icon & Out Text
    DispIcon(1,1,0x01);
    DispIcon(3,1,0x03);                                           //BRIGHTNESS/CONTRAST
    DispIcon(1,2,0x05);                                           //AUTO ADJUST
    DispIcon(1,3,0x18);
    DispIcon(3,3,0x0b);                                           //PHASE/CLOCK
    DispIcon(1,4,0x07);
    DispIcon(3,4,0x09);                                           //H/V POSITION
    DispIcon(1,5,0x0f);                                           //MISC
    DispIcon(1,6,0x11);                                           //RESET

    //Gotoxy(7,0,BYTE_DISPLAY);
    //Textout((unsigned char code *)sMain_Menu[GET_LANGUAGE]);
    CenterLineTextout((unsigned char code *)sMain_Menu[GET_LANGUAGE],0,COL_WIDTH);

    Gotoxy(7,1,BYTE_DISPLAY);
    Textout((unsigned char code *)sBrightness_Contrast[GET_LANGUAGE]);

    Gotoxy(7,2,BYTE_DISPLAY);
    Textout((unsigned char code *)sAuto_Adjust[GET_LANGUAGE]);

    Gotoxy(7,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sPhase_Clock[GET_LANGUAGE]);

    Gotoxy(7,4,BYTE_DISPLAY);
    Textout((unsigned char code *)sHV_Position[GET_LANGUAGE]);

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

    Gotoxy(7,6,BYTE_DISPLAY);
    Textout((unsigned char code *)sReset[GET_LANGUAGE]);

    Gotoxy(7,6,BYTE_DISPLAY);
    Textout((unsigned char code *)sReset[GET_LANGUAGE]);

    //display display size  1024 x 768 @ 60Hz
    //Gotoxy(5,7,BYTE_DISPLAY);
    //ShowMode();
}                                                             
//------------------------------------------------------------
void DrawVGABrightness()
{
    ucOsdState = _MENU_BRIGHTNESS;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x01);

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

    SLIDER(BRIGHTNESS_GUAGE);;
    
    //Gotoxy(17,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_Contrast[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_Contrast[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAContrast()
{
    ucOsdState = _MENU_CONTRAST;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x03);

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

    SLIDER(CONTRAST_GUAGE);
    
    //Gotoxy(15,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_Brightness[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_Brightness[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAAdjust()
{
    ucOsdState = _MENU_AUTO_ADJUST;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(2, 1, 0 , COL_WIDTH, COLOR_HEAD, BYTE_COLOR);      //Byte 2
    OSDClear(3, 2, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2
    OSDClear(5, 1, 0 , COL_WIDTH, COLOR_BOTTOM, BYTE_COLOR);    //Byte 2

    //Gotoxy(8,2,BYTE_DISPLAY);
    //Textout((unsigned char code *)sAuto_Adjust[GET_LANGUAGE]);
    CenterLineTextout((unsigned char code *)sAuto_Adjust[GET_LANGUAGE],2,COL_WIDTH);

    Gotoxy(3,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sAuto_Adjust[GET_LANGUAGE]);

    Gotoxy(3,4,BYTE_DISPLAY);
    Textout((unsigned char code *)sAuto_Balance[GET_LANGUAGE]);

    //display display size  1024 x 768 @ 60Hz
    //Gotoxy(5,5,BYTE_DISPLAY);
    //ShowMode();

    MENUITEM_SELECT(3);
}
//------------------------------------------------------------
void DrawVGAPhase()
{
	ucOsdState = _MENU_PHASE;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x18);

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

    SLIDER(PHASE_GUAGE);
    
    //Gotoxy(20,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_Clock[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_Clock[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAClock()
{
	ucOsdState = _MENU_CLOCK;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x0b);

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

    SLIDER(ClockGuage());
    
    //Gotoxy(20,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_Phase[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_Phase[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAH_Position()
{
    ucOsdState = _MENU_H_POSITION;
    
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x07);

    Gotoxy(3,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sH_Position[GET_LANGUAGE]);

    SLIDER(HPosGuage());
    
    //Gotoxy(15,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_V_Position[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_V_Position[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAV_Position()
{
    ucOsdState = _MENU_V_POSITION;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    DispIcon(1,3,0x09);

    Gotoxy(3,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sV_Position[GET_LANGUAGE]);

    SLIDER(VPosGuage());
    
    //Gotoxy(15,5,BYTE_DISPLAY);
    //Textout((unsigned char code *)sDown_H_Position[GET_LANGUAGE]);
    RightAlignLineTextOut((unsigned char code *)sDown_H_Position[GET_LANGUAGE],5,COL_WIDTH-1);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAMisc()
{
    ucOsdState = _MENU_INFORMATION;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(0, 1, 0 , COL_WIDTH, COLOR_HEAD, BYTE_COLOR);      //Byte 2
    OSDClear(1, 5, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2
    OSDClear(6, 1, 0 , COL_WIDTH, COLOR_BOTTOM, BYTE_COLOR);    //Byte 2

    //Gotoxy(11,0,BYTE_DISPLAY);
    //Textout((unsigned char code *)sMisc[GET_LANGUAGE]);
    CenterLineTextout((unsigned char code *)sMisc[GET_LANGUAGE],0,COL_WIDTH);

    Gotoxy(2,1,BYTE_DISPLAY);
    Textout((unsigned char code *)sInformation[GET_LANGUAGE]);

    Gotoxy(2,2,BYTE_DISPLAY);
    Textout((unsigned char code *)sOsd_Timer[GET_LANGUAGE]);

    Gotoxy(2,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sColor[GET_LANGUAGE]);
    
    Gotoxy(2,4,BYTE_DISPLAY);
    Textout((unsigned char code *)sLanguage[GET_LANGUAGE]);

    Gotoxy(2,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sDisplay_Mode[GET_LANGUAGE]);

    //display display size  1024 x 768 @ 60Hz
    //Gotoxy(5,6,BYTE_DISPLAY);
    //ShowMode();

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAResetAll()
{
    ucOsdState = _MENU_RESET_ALL;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(3, 3, 0, COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    

    //Gotoxy(8,4,BYTE_DISPLAY);
    //Textout((unsigned char code *)sReset_All[GET_LANGUAGE]);
    CenterLineTextout((unsigned char code *)sReset_All[GET_LANGUAGE],4,COL_WIDTH);

    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGAInformation()
{
    ucOsdState = _MENU_TITLE_INFORMATION;

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);  	//Byte 0
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);	//Byte 1
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0, BYTE_COLOR);       //Byte 2
    OSDClear(1, 6, 0 , COL_WIDTH, COLOR_BODY, BYTE_COLOR);      //Byte 2

    CenterLineTextout((unsigned char code *)sInformation[GET_LANGUAGE],1,COL_WIDTH);

    Gotoxy(2,3,BYTE_DISPLAY);
    Textout((unsigned char code *)sRES);
    OSDClear(3, 1, 8 , 12, 0x26, BYTE_COLOR);
    Gotoxy(8,3,BYTE_DISPLAY);
    OutputDisplaySize();

    Gotoxy(2,4,BYTE_DISPLAY);
    Textout((unsigned char code *)sH);
    OSDClear(4, 1, 8 , 12, 0x26, BYTE_COLOR);
    Gotoxy(8,4,BYTE_DISPLAY);
    OutputHSync();    

    Gotoxy(2,5,BYTE_DISPLAY);
    Textout((unsigned char code *)sV);
    OSDClear(5, 1, 8 , 12, 0x26, BYTE_COLOR);
    Gotoxy(8,5,BYTE_DISPLAY);    
    OutputRefrushRate();
    
    COsdFxEnableOsd();
}
//------------------------------------------------------------
void DrawVGATimer()
{
    ucOsdState = _MENU_OSD_TIMER;

⌨️ 快捷键说明

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