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

📄 osdpub003.c

📁 LCD TV,uVision2 Project, (C) Keil Software
💻 C
📖 第 1 页 / 共 2 页
字号:
    pData[1] = (ucIndex % 10) + '0';
    pData[2] = '/';
    pData[3] = (ucMaxPage / 10) + '0';
    pData[4] = (ucMaxPage % 10) + '0';
    CScalerWrite(_OSD_DATA_PORT_92,5,pData,_NON_AUTOINC);
}
//----------------------------------------------------------------------------------------------------
void DrawBrightPage()
{
     TITLE_OUT((unsigned char code *)sBright[GET_LANGUAGE]);
     LOADICOFNT(FntIcnBright);
     ICON_OUT();
     SLIDER2(BRIGHTNESS_GUAGE);
}
//----------------------------------------------------------------------------------------------------
void DrawContrastPage()
{
     TITLE_OUT((unsigned char code *)sContrast[GET_LANGUAGE]);
     LOADICOFNT(FntIcnContrast);
     ICON_OUT();
     SLIDER2(CONTRAST_GUAGE);
}
//----------------------------------------------------------------------------------------------------
void DrawLanguagePage()
{
     TITLE_OUT((unsigned char code *)sLanguage[GET_LANGUAGE]);
     LOADICOFNT(FntIcnLang);
     ICON_OUT();
     SUBTITLE_OUT((unsigned char code *)sLangName[GET_LANGUAGE]);     
}
//----------------------------------------------------------------------------------------------------
void DrawResetPage()
{
     TITLE_OUT((unsigned char code *)sReset[GET_LANGUAGE]);
     LOADICOFNT(FntIcnRecall);
     DispIcon(12,4,0x60);
}
//----------------------------------------------------------------------------------------------------
void DrawVolumePage()
{
     TITLE_OUT((unsigned char code *)sVolume[GET_LANGUAGE]);
     CScalerLoadFont(FntIcnSpker,0x60,12,_COMPRESS_FONT);
     if(GET_MUTE_STATE() == STATE_MUTEON)     DispIcon(1,4,0x66);
     else                                     DispIcon(1,4,0x60);
     SLIDER2(stOsdUserData.Volume);
}
//----------------------------------------------------------------------------------------------------
#if(_IR_ENABLE)        
void DrawMuteState(const BYTE bMuteState)
{
    COsdFxDisableOsd();
    SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
    SetOSDDouble(OSD_DOUBLE_HEIGHT_ENABLE | OSD_DOUBLE_WIDTH_ENABLE);
    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,38,1,0x01);


     if(bMuteState == STATE_MUTEON)
        DispIcon(1,4,0x66);
     else
        DispIcon(1,4,0x60);


    COsdFxEnableOsd();
    CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
#endif
//----------------------------------------------------------------------------------------------------
void DrawExitPage()
{
     TITLE_OUT((unsigned char code *)sExit[GET_LANGUAGE]);
     LOADICOFNT(FntIcnExit);
     DispIcon(12,4,0x60);
}
//----------------------------------------------------------------------------------------------------
void ClearClientDisplay()
{
     OSDLine(1, 3, 19, 0x00, BYTE_DISPLAY);
     OSDClear(4,3,0,COL_WIDTH,0x00,BYTE_DISPLAY);
}
//----------------------------------------------------------------------------------------------------



//--------- BRIGHTNESS PROC ----------------------------------
void MBrightAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MBrightAdjMenu();       break;
         case VK_LEFT:        MBrightAdjLR(1);        break;
         case VK_RIGHT:       MBrightAdjLR(0);        break;
         case VK_ENTER:       MBrightAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjMenu()
{
     ucOsdState = MENU_ITEM_BRIGHT;
     SelectState();
     SLIDER2(BRIGHTNESS_GUAGE);

     ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjLR(unsigned char  LR)
{
     unsigned int iBright = BRIGHTNESS_GUAGE;
     SET_KEYREPEATENABLE();
     iBright = ValueInRangeChange(0,100,iBright,LR,0);
     iBright = iBright * 255;
     if((iBright % 100) == 0)    iBright /= 100;
     else                        iBright = iBright/100 + 1;
     stConBriData.Brightness = iBright;
     SLIDER1(BRIGHTNESS_GUAGE);
     CAdjustBrightness();
     
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjEnter()
{
}
//----------------------------------------------------------------------------------------------------



//--------- CONTRAST ADJUST PROC ----------------------------------
void MContrastAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MContrastAdjMenu();       break;
         case VK_LEFT:        MContrastAdjLR(1);        break;
         case VK_RIGHT:       MContrastAdjLR(0);        break;
         case VK_ENTER:       MContrastAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjMenu()
{
     ucOsdState = MENU_ITEM_CONTRAST;
     SelectState();
     SLIDER2(CONTRAST_GUAGE);

     ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;     
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjLR(unsigned char  LR)
{
     unsigned int ucContrast = CONTRAST_GUAGE;
     SET_KEYREPEATENABLE();
     ucContrast = ValueInRangeChange(0,100,ucContrast,LR,0);
     ucContrast = ucContrast * 255;
     stConBriData.Contrast = ucContrast / 100;
     if(ucContrast % 100 != 0)    stConBriData.Contrast = stConBriData.Contrast + 1;
     SLIDER1(CONTRAST_GUAGE);
     CAdjustContrast();
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjEnter()
{

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




//--------- LANGUAGE ADJUST PROC ----------------------------------
void MLanguageAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MLanguageAdjMenu();       break;
         case VK_LEFT:        MLanguageAdjLR(1);        break;
         case VK_RIGHT:       MLanguageAdjLR(0);        break;
         case VK_ENTER:       MLanguageAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MLanguageAdjMenu()
{
     ucOsdState = MENU_ITEM_LANGUAGE;
     SelectState();     

     ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
}
//----------------------------------------------------------------------------------------------------
void MLanguageAdjLR(unsigned char  LR)
{
     unsigned char ucLng = GET_LANGUAGE;
     if(LR)   ucLng = GetNextLanguage(ucLng);
     else     ucLng = GetPrevLanguage(ucLng);
     SET_LANGUAGE(ucLng);

     // Load Font
     LoadLanguageFont();
     // Redraw
     ClearClientDisplay();
     DrawLanguagePage();
}
//----------------------------------------------------------------------------------------------------
void MLanguageAdjEnter()
{

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



//--------- Volume ADJUST PROC ----------------------------------
void MVolumeAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MVolumeAdjMenu();       break;
#if(_IR_ENABLE)
         case VK_IR_VOLINC:
#endif
         case VK_LEFT:        MVolumeAdjLR(1);        break;
#if(_IR_ENABLE)
         case VK_IR_VOLDEC:
#endif
         case VK_RIGHT:       MVolumeAdjLR(0);        break;
         case VK_ENTER:       MVolumeAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MVolumeAdjMenu()
{
     ucOsdState = _MENU_NONE;
     COsdFxDisableOsd();

     ucOsdEventMsg = _SAVE_EE_OSDUSERDATA_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MVolumeAdjLR(unsigned char  LR)
{
     SET_KEYREPEATENABLE();
     stOsdUserData.Volume = ValueInRangeChange(0,100,stOsdUserData.Volume,LR,0);
     SLIDER1(stOsdUserData.Volume);
	 SetVolume();//     CSetVolume();
}
//----------------------------------------------------------------------------------------------------
void MVolumeAdjEnter()
{

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



void GotoAdjustBrightness()
{
     InitOSDFrame();
     DrawBrightPage();
     AdjustState();
     COsdFxEnableOsd();
     ucOsdState = MENU_ITEM_BRIGH_ADJ;
}
//----------------------------------------------------------------------------------------------------
void GotoAdjustVolume()
{
     InitOSDFrame();
     DrawVolumePage();
     AdjustState();
     COsdFxEnableOsd();
     ucOsdState = MENU_VOLUME_SP;
}
//----------------------------------------------------------------------------------------------------
#if(_IR_ENABLE)        
void SSetMuteState(void)
{
    BYTE ucMuteCurrent = GET_MUTE_STATE();

    DrawMuteState(ucMuteCurrent);

    if (STATE_MUTEON == ucMuteCurrent) // Current mute on,so set mute off
    {
        DrawMuteState(STATE_MUTEOFF);
        SET_MUTE_STATE(STATE_MUTEOFF);
        SetVolume();//     CSetVolume();
    }
    else
    {
        DrawMuteState(STATE_MUTEON);
        SET_MUTE_STATE(STATE_MUTEON);
    }
}
#endif

//----------------------------------------------------------------------------------------------------
void HintDialog()
{
     InitOSDFrame();
     if((ucOsdEventMsg == _SHOW_NOSIGNAL_MSG) || (ucOsdEventMsg == _SHOW_NOCABLE_MSG))
           SUBTITLE_OUT((unsigned char code *)sNoSignal[GET_LANGUAGE]);
     else  SUBTITLE_OUT((unsigned char code *)sNotSupport[GET_LANGUAGE]);
     COsdFxEnableOsd();

     if(GET_PANELPOWERSTATUS() == _OFF)
         CPowerPanelOn();
     if (GET_LIGHTPOWERSTATUS() == _OFF)  
         CPowerLightPowerOn(); 
}
//----------------------------------------------------------------------------------------------------
void ShowChecksum(void)//cll
{
	COsdFxDisableOsd();
//    SetOSDDouble(OSD_DOUBLE_HEIGHT_ENABLE | OSD_DOUBLE_WIDTH_ENABLE);
    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(10,10,10,10,0x01);
    Gotoxy(0,0,BYTE_DISPLAY);
	
	Textout(sCheckSum);//
	//Textout(sVersion);	
 	COsdFxEnableOsd();
    CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
}
//----------------------------------------------------------------------------------------------------
void ShowNote()
{
#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

    COsdFxDisableOsd();
    SetOSDDouble(OSD_DOUBLE_HEIGHT_ENABLE | OSD_DOUBLE_WIDTH_ENABLE);
    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,1,0x01);
    Gotoxy(1,1,BYTE_DISPLAY);
    switch(stSystemData.InputSource)
    {
        case _SOURCE_VGA:             Textout(sVGA);             break;
 //       case _SOURCE_DVI:             Textout(sDVI);             break;
        case _SOURCE_VIDEO8_AV:       Textout(sVIDEO);           break;
 //       case _SOURCE_VIDEO8_SV:       Textout(sSVIDEO);          break;
 //       case _SOURCE_VIDEO8_YUV:      Textout(sYUV);             break;    
        case _SOURCE_VIDEO8_TV:       Textout(sTV);              break;
 //       case _SOURCE_YPBPR:           Textout(sYPBPR);           break;
    }
    COsdFxEnableOsd();
    CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);

    if(GET_PANELPOWERSTATUS() == _OFF)
        CPowerPanelOn();
    if (GET_LIGHTPOWERSTATUS() == _OFF)  
        CPowerLightPowerOn(); 
}
//---------------------------------------------------------------------------------------------------------------------
#endif        //#if(OSD_TYPE == OSD03)

⌨️ 快捷键说明

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