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

📄 osd.c

📁 可配三星17寸屏的2523源程序+MTV512
💻 C
📖 第 1 页 / 共 5 页
字号:
//----------------------------------------------------------------------------------------------------
// ID Code      : Osd.c No.0000
// Update Note  : 

//----------------------------------------------------------------------------------------------------

#define __OSD__

#include "Common\Header\Include.h"


//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdHandler(void)
{
    COsdSystemFlowProc();

    COsdEventMsgProc();

    if (ucCurrState == _ACTIVE_STATE)
    {
        if(ucKeyMessage < _KEY_AMOUNT)
        {
            (*OperationTable[ucOsdState][ucKeyMessage])();

            if(stOsdUserData.OsdTimeout > 3)
            {
                CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
            }
            else
            {
                CTimerCancelTimerEvent(COsdDispOsdTimerEvent);
            }
        }
    }
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdSystemFlowProc(void)
{
    switch(ucCurrState)
	{
        case _PWOFF_STATE:
            break;

        case _INITIAL_STATE:
            break;

        case _SEARCH_STATE:
            break;

        case _ACTIVE_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CLR_OSD_READYFORDISPLAY();
                CAdjustBackgroundColor(0x00, 0x00, 0x00);

                if(GET_FIRST_LOADFONT() == _TRUE)
                {
                    CLR_FIRST_LOADFONT();
                    COsdDispFirstTimeLoadFont();
                }
            }

            break;

        case _NOSUPPORT_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CLR_OSD_READYFORDISPLAY();
                CAdjustBackgroundColor(0xff, 0x00, 0x00);
                CTimerReactiveTimerEvent(SEC(1), CModeNoSupportEvent);
            }

            break;

        case _NOSIGNAL_STATE:
            if(GET_OSD_READYFORDISPLAY() == _TRUE)
            {
                CLR_OSD_READYFORDISPLAY();
                CAdjustBackgroundColor(0x00, 0x00, 0x00);

#if(_TMDS_SUPPORT == _ON)
                if(bVGACONNECT && bDVICONNECT)
#else
                if(bVGACONNECT)
#endif
                {
                    CTimerReactiveTimerEvent(SEC(1), CModeNoCableEvent);
                }
                else
                {
                    CTimerReactiveTimerEvent(SEC(1), CModeNoSignalEvent);
                    CTimerActiveTimerEvent(SEC(6), CModePowerSavingEvent);
                }
            }

            break;

        case _SLEEP_STATE:
            break;

        default:
            break;
    }
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdEventMsgProc(void)
{
    switch(ucOsdEventMsg)
    {
        case _SHOW_NOSIGNAL_MSG:
            COsdDispNoSignalProc();
            break;

        case _SHOW_NOCABLE_MSG:
            COsdDispNoCableProc();
            break;

        case _SHOW_NOSUPPORT_MSG:
            COsdDispNoSupportProc();
            break;

        case _SAVE_EE_MODEUSERDATA_MSG:
            CEepromSaveModeData(stModeInfo.ModeCurr);
            break;

        case _SAVE_EE_SYSTEMDATA_MSG:
            CEepromSaveSystemData();
            break;

        case _SAVE_EE_OSDUSERDATA_MSG:
            CEepromSaveOsdUserData();
            break;

        case _SAVE_EE_ADCDATA_MSG:
            CEepromSaveAdcData();
            break;

        case _SAVE_EE_COLORPROC0_MSG:
            CEepromSaveBriConData();
            break;

        case _SAVE_EE_COLORPROC1_MSG:
            CEepromSaveColorTempData();
            break;

        case _ENTER_FACTORY_MODE_MSG:
            stOsdUserData.OsdSettingFlag |= _BIT7;
            break;

        case _CHANGE_SOURCE_MSG:
            CLR_SOURCE_AUTOCHANGE();
            CEepromSaveSystemData();
            CModeResetMode();
            break;

        case _DO_AUTO_CONFIG:
            COsdDispAutoProc();
            break;

        default:
            break;
    }

    ucOsdEventMsg = _NONE_MSG;
}

void COsdMenuNone(void)
{    
    stOsdUserData.OsdSettingFlag = 0x80;
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL2ND, 0x54);

    switch(stOsdUserData.Language)
    {
        case _CHINESE_T:
        case _CHINESE_S:
            CScalerLoadHardwareVLCFont(tFONT_CHI, 0x60);
            break;

        case _JAPAN:
            CScalerLoadHardwareVLCFont(tFONT_JAP, 0x60);
            break;
    }

    COsdFxApplyMapSetting(_OSD_MAP0);

    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(22), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
    COsdFxChange2bitColor(ROW(0), COL(0), WIDTH(25), HEIGHT(5), COLOR00(_CP_BLACK),COLOR01(_CP_WHITE),COLOR10(_CP_WHITE),COLOR11(_CP_BLUE));

    COsdDispClearIcon(ROW(0), COL(0), 25, 5);

    COsdFxLoadIcon(ROW(1), COL(2), tOSD_RT_MARK_ICO1);

    COsdDispDrawInitWindow();
    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));

    COsdDispClearIcon(ROW(9), COL(0), 2, 15);

    COsdFxCloseWindow(WINNO(1));
    COsdFxCloseWindow(WINNO(2));
    COsdFxCloseWindow(WINNO(3));
    COsdFxCloseWindow(WINNO(4));
    COsdFxCloseWindow(WINNO(6));

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(280), YEND(400), tOSD_WINDOW0_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW0_STYLE);

    COsdFxDrawWindow(XSTART(20), YSTART(15), XEND(265), YEND(65), tOSD_WINDOW5_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_GRAY), tOSD_WINDOW5_STYLE);

    COsdFxShowNumber(ROW(21), COL(10), stModeInfo.IHWidth, (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_4));
    COsdFxHLine(ROW(21), COL(11), LENGTH(1), 0x0e, _WRITE_BYTE1);
    COsdFxShowNumber(ROW(21), COL(12), stModeInfo.IVHeight, (_ALIGN_LEFT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
    COsdFxShowNumber(ROW(21), COL(17), stModeInfo.IVFreq/10, (_ALIGN_LEFT | _FORCE_SHOW_NUMBER_OFF | _SHOW_2));
    COsdFxHLine(ROW(21), COL(19), LENGTH(1), _H_, _WRITE_BYTE1);
    COsdFxHLine(ROW(21), COL(20), LENGTH(1), _z_, _WRITE_BYTE1);

    COsdFxChange1bitColor(ROW(21), COL(5), WIDTH(20), HEIGHT(1), FGCOLOR(_CP_PINK), BGCOLOR(_CP_BLACK));
    
    COsdDispPenPoint(ROW(17), COL(3), ROW(5), COL(3), _MENU_COLOR_SETTING);
    COsdFxSetPosition(WIDTH(280), WIDTH(400), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x01);

    COsdFxEnableOsd();    	
}


void COsdLeftNone(void)
{
    COsdDispAutoProc();
}

void COsdRightNone(void)
{
    COsdDispAutoColorProc();
}

void COsdExitNone(void)
{
    COsdFxDisableOsd();

    CScalerLoadHardwareVLCFont(tFONT_GLOBAL2ND, 0x54);

    COsdFxCodeWrite(tOSD_ROW_COMMAND5);		
    ucOsdMap = _OSD_MAP5;
    COsdFxSetFrameCtrlCommand();
    COsdFxSetCharCommandMap();

    COsdFxChange2bitColor(ROW(0), COL(0), WIDTH(28), HEIGHT(3), COLOR00(_CP_BLACK), COLOR01(_CP_WHITE), COLOR10(_CP_WHITE), COLOR11(_CP_BLUE));
    COsdFxChange1bitColor(ROW(3), COL(0), WIDTH(28), HEIGHT(22), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));

    COsdDispClearIcon(ROW(0), COL(0), WIDTH(28), HEIGHT(3));
    COsdFxLoadIcon(ROW(1), COL(2), tOSD_RT_MARK_ICO1);

    COsdFxCloseWindow(WINNO(0));
    COsdFxCloseWindow(WINNO(1));
    COsdFxCloseWindow(WINNO(2));
    COsdFxCloseWindow(WINNO(3));
    COsdFxCloseWindow(WINNO(4));
    COsdFxCloseWindow(WINNO(6));

    COsdDispMZReturnMain(_MENU_MZ_WINDOW_CONFIG);

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(360), YEND(270), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
    COsdFxDrawWindow(XSTART(15), YSTART(10), XEND(345), YEND(60), tOSD_WINDOW5_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW5_STYLE);	

    ucOsdState = _MENU_MZ_WINDOW_CONFIG;

    COsdFxSetPosition(WIDTH(360), WIDTH(270), stOsdUserData.OsdHPos, stOsdUserData.OsdVPos, 0x01);

    CAdjustHLWindow();

    COsdFxEnableOsd();
}

//----------------------------------------------------------------------------------------------------
// OSD "ColorSetting" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuColorSetting(void)
{
    BYTE temp;

    COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
    COsdDispClearText(ROW(5) ,COL(5) ,18 ,15);

    for(temp = 0; temp < 4; temp++)
    {
        COsdFxLoadText(ROW(5 + temp*2), COL(7), stOsdUserData.Language, tCOLOR_TABLE[temp]);
    }

//    COsdFxLoadIcon(ROW(5 + 4*3), COL(2), tOSD_BACK_ICO);
    COsdFxLoadText(ROW(5 + 4*2), COL(7), stOsdUserData.Language, tCOLOR_TABLE[temp]);

    COsdDispPenPoint(ROW(5), COL(3), ROW(5), COL(3), _MENU_CONTRAST);

    COsdFxDrawWindow(XSTART(40), YSTART(260), XEND(250), YEND(360), tOSD_WINDOW2_STYLE);
    // adjust window ->black
    //COsdFxChangeWindowColor(COLOR00(_CP_SELECTBOTTOM), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);


    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));

}

void COsdLeftColorSetting(void)
{
    COsdDispPenPoint(ROW(5), COL(3), ROW(7), COL(3), _MENU_IMAGE_SETTING);
    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
    COsdFxChange1bitColor(ROW(7), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));

}

void COsdRightColorSetting(void)
{
    COsdDispPenPoint(ROW(5), COL(3), ROW(17), COL(3), _MENU_EXIT);
    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
    COsdFxChange1bitColor(ROW(17), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));
}

void COsdExitColorSetting(void)
{

}

//----------------------------------------------------------------------------------------------------
// OSD "ImageSetting" Operation
//----------------------------------------------------------------------------------------------------
void COsdMenuImageSetting(void)
{
    BYTE temp;

    COsdDispClearIcon(ROW(5) ,COL(0) ,5 ,20);
    COsdDispClearText(ROW(5) ,COL(5) ,18 ,15);

    for(temp = 0; temp < 4; temp++)
    {
//        COsdFxLoadIcon(ROW(5 + temp*3), COL(2), tICONPOS_TABLE[temp]);
        COsdFxLoadText(ROW(5 + temp*2), COL(7), stOsdUserData.Language, tIMG_TABLE[temp]);
    }

//    COsdFxLoadIcon(ROW(5 + 4*3), COL(2), tOSD_BACK_ICO);
    COsdFxLoadText(ROW(5 + 4*2), COL(7), stOsdUserData.Language, tIMG_TABLE[temp]);

    COsdDispPenPoint(ROW(7), COL(3), ROW(5), COL(3), _MENU_CLOCK);

    COsdFxDrawWindow(XSTART(40), YSTART(260), XEND(250), YEND(360), tOSD_WINDOW2_STYLE);
    // adjust window ->black
    //COsdFxChangeWindowColor(COLOR00(_CP_SELECTBOTTOM), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_BLACK), tOSD_WINDOW2_STYLE);

    COsdFxChange1bitColor(ROW(5), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));

}

void COsdLeftImageSetting(void)
{
    COsdDispPenPoint(ROW(7), COL(3), ROW(9), COL(3), _MENU_POSITION);
    COsdFxChange1bitColor(ROW(7), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_WHITE), BGCOLOR(_CP_BLACK));
    COsdFxChange1bitColor(ROW(9), COL(5), WIDTH(17), HEIGHT(1), FGCOLOR(_CP_YELLOW), BGCOLOR(_CP_BLACK));

}

⌨️ 快捷键说明

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