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

📄 osd_001.c

📁 RTD2662板卡源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "Core\Header\Include.h"

#if(_001_OSD)
//-----------------------------------------------------------
void Clear(void)
{
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
   
    OSDClear(0, 1, 0, COL_WIDTH, 0xf0, BYTE_COLOR);
    //OSDClear(4, 11, 0, COL_WIDTH, 0x00,BYTE_COLOR);
    OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);

}

//---------------------------------------------------------------------------
void Draw001Menu(void)
{
    InitOsdFrame();
    //COsdFxDisableOsd();
    SetOSDDouble(0);
    COsdFxCodeWrite(ucCloseAllWindow);

    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
    
    OSDClear(0,1,0,COL_WIDTH,0xf0,BYTE_COLOR);
    
    OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);
    
    OSDPosition(348,72,100,90,0x01);

    ucOsdState = _MI_001_CONTRAST;
    CCenterTextout(sContrast[GET_LANGUAGE()], ROW(0), 0, 28);
    OSDSlider1(ROW(2), 3, 16, stConBriData.Contrast, 100,0xe0);
    
    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(348), YEND(72), tOSD_WINDOW0_STYLE);


    OSDPosition(70,20,39,85,0x03);

	COsdFxEnableOsd();
	//CTimerReactiveTimerEvent(SEC(15), COsdFxDisableOsd);

	while(0)
    {
		CGetADCValue(&pData[3]);
		Gotoxy(5, 10, BYTE_DISPLAY);
		CShowNumber(2,2,pData[3]);
    }
}
//---------------------------------------------------------------------------

void Draw001MainMenu(void)
{
    COsdFxDisableOsd();
    COsdFxCodeWrite(ucCloseAllWindow);
    
    OSDClear(0, 15, 0 , 30, 0x00, BYTE_DISPLAY);  
    OSDClear(0, 15, 0 , 30, 0x8c, BYTE_ATTRIB);
    OSDClear(0, 15, 0,  30, 0x10, BYTE_COLOR);
    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(348), YEND(72), tOSD_WINDOW0_STYLE);

    OSDPosition(70,20,39,85,0x03);

	COsdFxEnableOsd();
	bOSDTimeOut = 0;

}

//---------------------------------------------------------------------------
void M001MenuAdj(BYTE ucMode)
{   
    BYTE ucNewItem = AdjustMenuItem(_MI_001_CONTRAST,_MI_001_EXIT,ucMode);

    if(ucNewItem == ucOsdState)
    {
    	return;
    }

    // 1. Clear Current Menu
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
    OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
       
    OSDClear(0, 1, 0, COL_WIDTH, 0xf0, BYTE_COLOR);
    OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);

    //OSDClear(4, 11, 0, COL_WIDTH, 0x00,BYTE_COLOR);

    if(ucNewItem == _MI_001_EXIT)
    {
    	ucOsdState = _MI_MENU_NONE;
    	COsdFxDisableOsd();
    	return;
    }

    // 2. Change ucOsdState
    ucOsdState = ucNewItem;
    
    // 3. Draw New Item
    Draw001MenuItem(ucOsdState,_ST_SELECT);   
}

//---------------------------------------------------------------------------
void M001ValueAdj(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    switch(ucOsdState)
    {
	    case _MI_001_CONTRAST:  			Adjust001Contrast(ucMode);    			break;
	    case _MI_001_BRIGHTNESS:    		Adjust001Brightness(ucMode);         	break;  
		case _MI_001_HUE:  	    			Adjust001Hue(ucMode);  					break;
	    case _MI_001_SATURATION:  			Adjust001Saturation(ucMode);    		break;         
	    case _MI_001_AV1_AV2:     			Adjust001Source(ucMode);          		break;
	    case _MI_001_LEFT_RIGHT:			Adjust001LeftRight(ucMode);				break;
	    case _MI_001_UP_DOWN:				Adjust001UpDown(ucMode);				break;
	    case _MI_001_DISPLAY_RATIO:			Adjust001DisplayRatio(ucMode);			break;
	    case _MI_001_RESET:    				ResetAdjustLeftRight(1);       			break;
	    case _MI_001_EXIT:                  Exit001Menu();							break;
    }
}
//---------------------------------------------------------------------------
void M001Proc(void)
{
    switch(ucOsdEventMsg)
    {
        case _OE_ADJ_INC:  				M001ValueAdj(_INC);   					break;        
        case _OE_ADJ_DEC:   		 	M001ValueAdj(_DEC);      				break;    
        case _OE_RETURN_UPMENU: 		M001MenuAdj(_NEXT);  					break;
        case _OE_ENTER_RESET:           ResetMenuProc();                        break;
    }    
}
//------------------------------------------------------------------------------

void ResetItemProc()
{
    switch(ucKeyMessage)
    {
	    case _OE_ENTER_SUBMENU:        	ResetMenuProc();       					break;
	    case _OE_ADJ_INC:        		ResetAdjustLeftRight(1);       			break;
	    case _OE_ADJ_DEC:       		ResetAdjustLeftRight(0);       			break;
	    default:                 												break; 
    }
}
//------------------------------------------------------------------------------

void ResetAdjustLeftRight(BYTE LR)
{
     LR = 1;
	if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
	{
		Gotoxy(14,2,BYTE_DISPLAY);
		OutputChar(0x56);

		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x00);

		_SET_RESET_SELECT_STATE(_RESET_NO_STATE);
	}
	else 
	{
		Gotoxy(14,2,BYTE_DISPLAY);
		OutputChar(0x00);

		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x56);

		_SET_RESET_SELECT_STATE(_RESET_SELECT_STATE);

	}   

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

void ResetMenuProc(void)
{

    if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
    {
	    if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
	    {
	    	CDoReset();
	    }
    }
    
    CLR_KEYREPEATENABLE();
    COsdFxDisableOsd();
    ucOsdState = _MI_MENU_NONE;

    //CTimerDelayXms(500);

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

void DrawContrastMenu(void)
{
	Clear();  
	CCenterTextout(sContrast[GET_LANGUAGE()], ROW(0), 0, 28);
	OSDSlider1(ROW(2), 3, 16, GET_CONTRAST(), 100,0xe0);
}
//------------------------------------------------------------------------------

void DrawBrightnessMenu(void)
{
	Clear(); 
	CCenterTextout(sBrightness[GET_LANGUAGE()], ROW(0), 0, 28);
	OSDSlider1(ROW(2), 3, 16, stConBriData.Brightness, 100,0xe0);
}

//------------------------------------------------------------------------------
void DrawSaturationMenu(void)
{
	Clear();
	CCenterTextout(sSaturation[GET_LANGUAGE()], ROW(0), 0, 28);
	OSDSlider1(ROW(2), 3, 16, GET_SATURATION(), 100,0xe0);
}
//------------------------------------------------------------------------------

void DrawHueMenu(void)
{
	Clear();
	CCenterTextout(sHue[GET_LANGUAGE()], ROW(0), 0, 25);
	OSDSlider1(ROW(2), 3, 16, GET_HUE(), 100,0xe0);
}


//------------------------------------------------------------------------------
void DrawSourceA1A2Menu(void)
{
    Clear();
    CCenterTextout(sSource, ROW(0), 0, 27);
    CTextOutEx(sAV,COL(6),ROW(2));
    CTextOutEx(sSVideo,COL(18),ROW(2));
    if(stSystemData.InputSource == _SOURCE_VIDEO_AV)
	{


	    //Gotoxy(8,2,BYTE_DISPLAY);         
		//OutputChar(0x00);
		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x56);

	}
	else if(stSystemData.InputSource == _SOURCE_VIDEO_SV)
	{
	    //Gotoxy(4,2,BYTE_DISPLAY);
		//OutputChar(0x56);
		Gotoxy(15,2,BYTE_DISPLAY);
		//OutputChar(0x00);
        OutputChar(0x56);
	}
}
//------------------------------------------------------------------------------
void DrawLeftRightChangeMenu()
{
    Clear();
    CCenterTextout(sLeftRight, ROW(0), 0, 27);
	CTextOutEx(sLeft,COL(6),ROW(2));
	CTextOutEx(sRight,COL(16),ROW(2));
    if(bLR)
    {
		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x56);
    }
    else
    {
		Gotoxy(15,2,BYTE_DISPLAY);
        OutputChar(0x56);
    }
}
//------------------------------------------------------------------------------
void DrawUpDownChangeMenu()
{
    Clear();
    CCenterTextout(sUpDown, ROW(0), 0, 27);
	CTextOutEx(sUp,COL(6),ROW(2));
	CTextOutEx(sDown,COL(16),ROW(2));
    if(bUD)
    {
		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x56);
    }
    else
    {
		Gotoxy(15,2,BYTE_DISPLAY);
        OutputChar(0x56);
    }
}
//------------------------------------------------------------------------------
void DrawDisplayRadioMenu()
{
    Clear();
    CCenterTextout(sDisplayRatio[GET_LANGUAGE()], ROW(0), 0, 27);
	CTextOutEx(s16_9,COL(6),ROW(2));

⌨️ 快捷键说明

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