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

📄 osdpub900.c

📁 LCD Monitor 部分源码
💻 C
📖 第 1 页 / 共 3 页
字号:
         case _SOURCE_DVI:
              Textout(sLCDDVI);
              break;
         #endif
         #if(_VIDEO_SUPPORT)
         case _SOURCE_VIDEO8_AV:
              Textout(sLCDAV);
              break;
         case _SOURCE_VIDEO8_SV:
              Textout(sLCDSV);
              break;
         #endif  
         #if(_TV_CHIP != _TV_NONE)
         case _SOURCE_VIDEO8_TV:
              Textout(sLCDTV);
              break;
         #endif
     }
/*
     // Realtek Logo
     DispIcon(3,1,0xa4);

     Gotoxy(7,2,BYTE_DISPLAY);
     pData[0] = 0xaa;
     pData[1] = 0xab;
     pData[2] = 0xac;
     pData[3] = 0xad;
     pData[4] = 0xae;
     pData[5] = 0xaf;
     CScalerWrite(_OSD_DATA_PORT_92,6,pData,_NON_AUTOINC);
*/
}
//---------------------------------------------------------------------------
void DrawMainPage()
{
     switch(stSystemData.InputSource)
     {
         #if(_VGA_SUPPORT)
         case _SOURCE_VGA:
         case _SOURCE_DVI:
              DrawVGAMainPage();
             break;
         #endif
         #if(_VIDEO_SUPPORT)
         case _SOURCE_VIDEO8_AV:
         case _SOURCE_VIDEO8_SV:
         case _SOURCE_VIDEO8_YUV:
              DrawAVMainPage();
              break;
         #endif
  
         #if(_TV_CHIP != _TV_NONE)
         case _SOURCE_VIDEO8_TV:
              DrawTVMainPage();
              break;
         #endif
     }
}
//---------------------------------------------------------------------------
void DrawColorPage()
{
     switch(stSystemData.InputSource)
     {
         #if(_VGA_SUPPORT)
         case _SOURCE_VGA:
         case _SOURCE_DVI:
             DrawVGAColorPage();
             break;
         #endif
         #if(_VIDEO_SUPPORT)
         case _SOURCE_VIDEO8_AV:
         case _SOURCE_VIDEO8_SV:
         case _SOURCE_VIDEO8_YUV:
         case _SOURCE_VIDEO8_TV:
             DrawAVColorPage();
             break;
         #endif
     }
}
//---------------------------------------------------------------------------
void DrawImagePage()
{
     switch(stSystemData.InputSource)
     {
         #if(_VGA_SUPPORT)
         case _SOURCE_VGA:
         case _SOURCE_DVI:
             DrawVGAImagePage();
             break;
         #endif
         #if(_VIDEO_SUPPORT)
         case _SOURCE_VIDEO8_AV:
         case _SOURCE_VIDEO8_SV:
         case _SOURCE_VIDEO8_YUV:
         case _SOURCE_VIDEO8_TV:
             DrawAVImagePage();
             break;
         #endif
     }
}
//---------------------------------------------------------------------------
void DrawPositionPage()
{
     switch(stSystemData.InputSource)
     {
         #if(_VGA_SUPPORT)
         case _SOURCE_VGA:
         case _SOURCE_DVI:
             DrawVGAPositionPage();
             break;
         #endif
         #if(_VIDEO_SUPPORT)
         case _SOURCE_VIDEO8_AV:
         case _SOURCE_VIDEO8_SV:
         case _SOURCE_VIDEO8_YUV:

             break;
         #endif
  
         #if(_TV_CHIP != _TV_NONE)
         case _SOURCE_VIDEO8_TV:

             break;
         #endif
     }
}
//---------------------------------------------------------------------------
void DrawOSDPage()
{
    // Load font
    CScalerLoadFont(Fnt_OSD_Ico,0x7a*2,18*2,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Back_Ico,0x8c*2,6*2,_COMPRESS_FONT);
    CScalerLoadFont(Osd_Color,0x92*2,6*2,_COMPRESS_FONT);
    CLEAR_OSD_ADJUST();
    SetIconCntAtb(5);                                             //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);                                          //OSD Timer Icon
    DispIcon(3,13,0x92);                                          //OSD Timer Icon
    DispIcon(3,16,0x8c);                                          //Back Icon


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

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

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

    Gotoxy(7,14,BYTE_DISPLAY);
    Textout((unsigned char code *)sOSDColor[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_OSD_HPOS) * 3 + 5);
}
//---------------------------------------------------------------------------
void DrawLanguagePage()
{
     //load language
     unsigned char i,ucCount,ucLanguage;
     unsigned char ucLine = 0;

     CScalerLoadFont(Fnt_Language, 0x5c,30,_COMPRESS_FONT);

     SetIconCntAtb(7);                                             //Set Icon Count : 7

     ucLanguage = FirstLanguage();
     DrawALanguage(ucLanguage,ucLine);
     ucLine++;

     ucCount = GetLanguegeCount();
     for(i=1;i<ucCount;i++)
     {
         ucLanguage = GetNextLanguage(ucLanguage);
         DrawALanguage(ucLanguage,ucLine);
         ucLine++;
     }
     
     i = GetCurrLanguagePos();
     DrawPen(1,i * 3 + 5);
     //SET_LANGUAGE(i);          //进入 Language Page 后stOsdUserData.Language 作为临时变量使用
}
//---------------------------------------------------------------------------
void DrawALanguage(unsigned char ucLnguage,unsigned char ucItem)
{
     unsigned char ucFontAddress = 0x7A + (ucItem * 6);
     switch(ucLnguage)
     {
         case LNG_ENG:
              CScalerLoadFont(LNG_ENG_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_FRA:
              CScalerLoadFont(LNG_FRA_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_DEU:
              CScalerLoadFont(LNG_DEU_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_ESP:
              CScalerLoadFont(LNG_ESP_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_CHI_S:
              CScalerLoadFont(LNG_CHI_S_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_CHI_T:
              CScalerLoadFont(LNG_CHI_T_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_JAP:
              CScalerLoadFont(LNG_JAP_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              break;
         case LNG_RUS:
              CScalerLoadFont(LNG_RUS_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              Set2BitColor(3,ucItem,3,2,sLNG_RUSKOR_LOGO);              
              break;
         case LNG_KOR:
              CScalerLoadFont(LNG_KOR_ICO,ucFontAddress * 2,6*2,_COMPRESS_FONT);
              Set2BitColor(3,ucItem,3,2,sLNG_RUSKOR_LOGO);
              break;
     }
     ucItem = ucItem * 3 + 4;
     DispIcon(3,ucItem,ucFontAddress);

     ucItem = ucItem + 1;
     Gotoxy(7,ucItem,BYTE_DISPLAY);
     Textout((unsigned char code *)sLangName[ucLnguage]);
}
//---------------------------------------------------------------------------
void DrawMiscPage()
{
    // Load font
    CScalerLoadFont(Fnt_Misc_Ico,0x7a*2,18*2,_COMPRESS_FONT);
    CScalerLoadFont(Fnt_Back_Ico,0x8c*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);                                          //OSD Timer Icon
    DispIcon(3,13,0x8c);                                          //Back Icon

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

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

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

    Gotoxy(7,14,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_RESET) * 3 + 5);
}
//---------------------------------------------------------------------------
void InitOsd()
{
    COsdFxDisableOsd();
    if(fOsdDouble)    SetOSDDouble(OSD_DOUBLE_WIDTH_ENABLE);
    else              SetOSDDouble(0);
    SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);     //  1
    SetRowCmds(ROW_COUNT,COL_WIDTH);                             //  2
    COsdFxCodeWrite(ucCloseAllWindow);                           //  Close all windows

    // Init Char Cmd
    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, 0x10, BYTE_COLOR);       //Byte 2
    LoadPalette();
}
//---------------------------------------------------------------------------
void InitOSDFrame()
{
    InitOsd();
    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(280), YEND(490), tOSD_WINDOW0_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW0_STYLE);

    COsdFxDrawWindow(XSTART(10), YSTART(15), XEND(260), YEND(65), tOSD_WINDOW5_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW5_STYLE);

    //Set2BitColor(3, 1, 11, 2,sStyle2BitLogo);                   //Set Logo Attrib
    MenuShowLogo();                                               //Display Logo

    DrawMainPage();
    
    if(fOsdDouble)
         OSDPosition(MAIN_OSD_WIDTH * 2 ,MAIN_OSD_HEIGHT,stOsdUserData.OsdHPos/2,stOsdUserData.OsdVPos,0x01);
    else OSDPosition(MAIN_OSD_WIDTH ,MAIN_OSD_HEIGHT,stOsdUserData.OsdHPos,stOsdUserData.OsdVPos,0x01);
    ShowMode();
}
//---------------------------------------------------------------------------
void InitDialog()
{
    InitOsd();

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(DIALOG_OSD_WIDTH), YEND(DIALOG_OSD_HEIGHT), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);

    COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(DIALOG_OSD_WIDTH - 10), YEND(DIALOG_OSD_HEIGHT - 20), tOSD_WINDOW6_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);
}
//---------------------------------------------------------------------------
void DrawPen(unsigned char ucState,unsigned char y)    // State 0 : Clear Pen   1: Draw Pen
{
     Gotoxy(1,y,BYTE_DISPLAY);
     if(ucState)
     {
         OutputChar(0x78);
         OutputChar(0x79);
     }
     else
     {
         OutputChar(0x00);
         OutputChar(0x00);
     }
}
//------------------------------------------------------------
void ShowNote()
{
    unsigned char w;

    CPowerPanelOn();
    #if(_TV_CHIP != _TV_NONE)
    if(stSystemData.InputSource == _SOURCE_VIDEO8_TV)
    {         
         CShowTVNumber(stVDCColor.CurrentChannel,SHOW_CH_TV_NUMBER | SHOW_CH_TV_TYPE | SHOW_CH_SOUND_TYPE);
         return;
    }
    #endif
    LoadPalette();
    COsdFxDisableOsd();
    SetOSDDouble(0);
    SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
    SetRowCmds(ROW_COUNT,COL_WIDTH);
    COsdFxCodeWrite(ucCloseAllWindow);

    OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x8C, THE_BYTE0);
    OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x00, THE_BYTE1);
    OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x20, THE_BYTE2);
    OSDPosition(30,30,1,0,0x01);
    Gotoxy(1,1,BYTE_DISPLAY);
    switch(stSystemData.InputSource)
    {
        case _SOURCE_VGA:
             Textout(sVGA);
             w = 3;
             break;
        case _SOURCE_DVI:
             w = 3;
             Textout(sDVI);
             break;
        case _SOURCE_VIDEO8_AV:
             w = 5;
             Textout(sVIDEO);
             break;
        case _SOURCE_VIDEO8_SV:
             Textout(sSVIDEO);
             w = 6;
             break;
        case _SOURCE_VIDEO8_YUV:
             Textout(sYUV);
             w = 3;
             break;
        case _SOURCE_YPBPR:
             Textout(sYPBPR);
             w = 5;
             break;
    }
    w = 40 + w * 12;

⌨️ 快捷键说明

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