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

📄 osd_fac.c

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

#if(_FAC_OSD)

#define FACTORYSUBMENU_LINECOLOR(row,color)		OSDLine(row, COL(15), LENGTH(38), color, BYTE_COLOR)
#define FACTORYSUBMENU_TEXTOUT(str,row)			TextOutCalcWidth(str,row,20,30,14 * 12)


//-----------------------------------------------------------
void EnterFacBurnin(void)
{
	if(GET_BURNIN_STATE()==_BURNIN_ON)
    {	
    	SET_BURNIN_STATE(0);
    	OSDClear(6, 1, 17, 5, 0x00,BYTE_DISPLAY);
    	TextOutCalcWidth(sFacOff,ROW(6),COL(17),5,5*12);
    }
    else
    {
    	SET_BURNIN_STATE(1);
    	OSDClear(6, 1, 17, 5, 0x00,BYTE_DISPLAY);
		TextOutCalcWidth(sFacOn,ROW(6),COL(17),5,5*12);
	}
}


void DrawFactoryMenu()
{
    BYTE y = 0;

    COsdFxDisableOsd();

    SetOsdMap(tFactoryMenuOsdMap);
    COsdFxCodeWrite(ucCloseAllWindow);

    OSDClear(ROW(0), HEIGHT(9), COL(0), WIDTH(35), 0x8C, BYTE_ATTRIB);
    OSDClear(ROW(0), HEIGHT(9), COL(0), WIDTH(35), 0x00, BYTE_DISPLAY);
	OSDClear(ROW(0), HEIGHT(9), COL(0), WIDTH(35), 0x20, BYTE_COLOR);
    SetOSDDouble(0x00);  

	ucOsdState = _MI_FAC_AUTOCOLOR;
	COsdFxDrawWindow(0,0,									//WORD usXStart,WORD usYStart,  
					450,150,	//WORD usXEnd,WORD usYEnd,  
					tMainWindowStyle);						//BYTE *pStyle)

	OSDPosition(450,150,3, 3,0x03);
   

	CTextOutBase(sFacAdjustColor,COL(1),ROW(1));
/*
	CTextOutEx(sFacGain,COL(1),ROW(2));
	CTextOutEx(sFacOffset,COL(1),ROW(3));
	CTextOutEx(sFac9300,COL(1),ROW(4));
	CTextOutEx(sFac6500,COL(1),ROW(5));
*/
	TextOutCalcWidth(sFacGain,ROW(2),COL(1),16,16 * 12);
	TextOutCalcWidth(sFacOffset,ROW(3),COL(1),16,16 * 12);
	TextOutCalcWidth(sFac9300,ROW(4),COL(1),16,16 * 12);
	TextOutCalcWidth(sFac6500,ROW(5),COL(1),16,16 * 12);
	TextOutCalcWidth(sBurnIn,ROW(6), COL(1),16,16 * 12);
	//CTextOutBase(sFacRGB,COL(17),ROW(2));
	//CTextOutBase(sFacRGB,COL(17),ROW(3));
	//CTextOutBase(sFacRGB,COL(17),ROW(4));
	//CTextOutBase(sFacRGB,COL(17),ROW(5));
	Gotoxy(COL(17),ROW(2), BYTE_DISPLAY);
	Textout(sFacRGB);
	Gotoxy(COL(17),ROW(3), BYTE_DISPLAY);
	Textout(sFacRGB);
	Gotoxy(COL(17),ROW(4), BYTE_DISPLAY);
	Textout(sFacRGB);
	Gotoxy(COL(17),ROW(5), BYTE_DISPLAY);
	Textout(sFacRGB);
	
	CTextOutBase(sFacExit,COL(1),ROW(7));
	
	
	for(;y<8;y++)
    {
		SETCOLOR_FACMAINMENU_NORLINE(y,_MENU_NORMAL_COLOR);
    }
		
	SETCOLOR_FACMAINMENU_SELLINE(1,_MENU_SECECT_COLOR);
	CFacShowNumber(18,2,stAdcData.AdcGain[_RED]);
	CFacShowNumber(25,2,stAdcData.AdcGain[_GREEN]);
	CFacShowNumber(31,2,stAdcData.AdcGain[_BLUE]);

	CFacShowNumber(18,3,stAdcData.AdcOffset[_RED]);
	CFacShowNumber(25,3,stAdcData.AdcOffset[_GREEN]);
	CFacShowNumber(31,3,stAdcData.AdcOffset[_BLUE]);

    SET_COLOR_TEMP_TYPE(_CT_9300);
	CEepromLoadColorTempData();
	CFacShowNumber(18,4,stColorTempData.ColorTemp[3 + _RED]);
	CFacShowNumber(25,4,stColorTempData.ColorTemp[3 + _GREEN]);
	CFacShowNumber(31,4,stColorTempData.ColorTemp[3 + _BLUE]);

	SET_COLOR_TEMP_TYPE(_CT_6500);
	CEepromLoadColorTempData();
	CFacShowNumber(18,5,stColorTempData.ColorTemp[3 + _RED]);
	CFacShowNumber(25,5,stColorTempData.ColorTemp[3 + _GREEN]);
	CFacShowNumber(31,5,stColorTempData.ColorTemp[3 + _BLUE]);

   	if(GET_BURNIN_STATE()==_BURNIN_ON)
    {	
    	TextOutCalcWidth(sFacOn,ROW(6),COL(17),5,5*12);
    }
    else
    {
		TextOutCalcWidth(sFacOff,ROW(6),COL(17),5,5*12);
	}
	
	COsdFxEnableOsd();
	bOSDTimeOut=0;
	
}
//---------------------------------------------------------------------------
void MFactoryMenuAdj(BYTE ucMode)
{    
    // ucMode : _NEXT or _Prev
    BYTE ucNewItem = AdjustMenuItem(_MI_FAC_AUTOCOLOR,_MI_FAC_EXIT,ucMode);

    if(ucNewItem == ucOsdState)
    {
    	return;
    }
    
    // 1. Clear Current Menu
    SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_NORMAL_COLOR);
    
    // 2. Change ucOsdState
    ucOsdState = ucNewItem;
    
    // 3. Draw New Item   
    SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_SECECT_COLOR);

   	// 4. Change RGB
   	switch(ucOsdState)
   	{
   		case _MI_FAC_9300:      
   		SET_COLOR_TEMP_TYPE(_CT_9300);
   		CEepromLoadColorTempData();
		CAdjustContrast();
		break;
		
   		case _MI_FAC_6500:		
   		SET_COLOR_TEMP_TYPE(_CT_6500);
   		CEepromLoadColorTempData();
		CAdjustContrast();
		break;
   	}
}

void ExitFacMenu(void)
{
	COsdDispOsdTimerEvent();
	bOSDTimeOut = 1;
}

void MFactoryEnterSub(void)
{
    // ucMode : _INC or _DEC
    switch(ucOsdState)
    {
        case _MI_FAC_AUTOCOLOR:    
            CAutoDoWhiteBalance();
            CFacShowNumber(18,2,stAdcData.AdcGain[_RED]);
    		CFacShowNumber(25,2,stAdcData.AdcGain[_GREEN]);
    		CFacShowNumber(31,2,stAdcData.AdcGain[_BLUE]);
    
    		CFacShowNumber(18,3,stAdcData.AdcOffset[_RED]);
    		CFacShowNumber(25,3,stAdcData.AdcOffset[_GREEN]);
    		CFacShowNumber(31,3,stAdcData.AdcOffset[_BLUE]);
            break;

        case _MI_FAC_9300:
        	SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_NORMAL_COLOR);
        	ucOsdState=_MI_FAC_9300_R;
        	OSDLine(ROW(4), COL(16), LENGTH(5), _MENU_SECECT_COLOR, BYTE_COLOR);			
            break;

        case _MI_FAC_6500:             
            SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_NORMAL_COLOR);
            ucOsdState=_MI_FAC_6500_R;
            OSDLine(ROW(5), COL(16), LENGTH(5), _MENU_SECECT_COLOR, BYTE_COLOR);         
            break;
        	
        case _MI_FAC_GAIN:           
            SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_NORMAL_COLOR);
            ucOsdState=_MI_FAC_GAIN_R;
            OSDLine(ROW(2), COL(16), LENGTH(5), _MENU_SECECT_COLOR, BYTE_COLOR);         
            break;
			
        case _MI_FAC_OFFSET: 
			SETCOLOR_FACMAINMENU_SELLINE(ucOsdState+1-_MI_FAC_AUTOCOLOR,_MENU_NORMAL_COLOR);
            ucOsdState=_MI_FAC_OFFSET_R;
            OSDLine(ROW(3), COL(16), LENGTH(5), _MENU_SECECT_COLOR, BYTE_COLOR);         
            break;
            
        case _MI_FAC_BURNIN:	
        	EnterFacBurnin();
			break;

        case _MI_FAC_EXIT: 		
            ExitFacMenu();                      
			break;
    }
}


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

void MFactoryProc()
{
    switch(ucOsdEventMsg)
    {
//        case _OE_ADJ_INC:           MFactoryValueAdj(_INC);              break;
//        case _OE_ADJ_DEC:           MFactoryValueAdj(_DEC);              break;
        case _OE_MENU_NEXT:         MFactoryMenuAdj(_NEXT);              break;
        case _OE_MENU_PREV:         MFactoryMenuAdj(_PREV);              break;
        case _OE_ENTER_SUBMENU:     MFactoryEnterSub();                  break;
        case _OE_RETURN_UPMENU:     						             break;

    }
    
}

void MFac9300ReturnMenu()
{
    OSDLine(ROW(4),COL(16+(ucOsdState-_MI_FAC_9300_R)*6),LENGTH(6),_MENU_NORMAL_COLOR,BYTE_COLOR);
    ucOsdState=_MI_FAC_9300;
    SETCOLOR_FACMAINMENU_SELLINE(4, _MENU_SECECT_COLOR);
}

void MFac9300MenuAdj(BYTE ucMode)
{
    // ucMode : _NEXT or _Prev

    BYTE ucNewItem;
    if(ucMode==_INC)
    { 	
    	if(ucOsdState>_MI_FAC_9300_R-1 && ucOsdState<_MI_FAC_9300_B)
    		ucNewItem=ucOsdState+1;
    	else
    		ucNewItem=_MI_FAC_9300;
    }
    else
	{
	    if(ucOsdState>_MI_FAC_9300_R && ucOsdState<_MI_FAC_9300_B+1)
    		ucNewItem=ucOsdState-1;
    	else
    		ucNewItem=_MI_FAC_9300;
	}
    // 1. Clear Current Menu
	OSDLine(ROW(4),COL(16+(ucOsdState-_MI_FAC_9300_R)*6),LENGTH(6),_MENU_NORMAL_COLOR,BYTE_COLOR);


    // 2. Change ucOsdState
    ucOsdState = ucNewItem;

    // 3. Draw New Item
    if(ucOsdState>_MI_FAC_9300_R-1 && ucOsdState<_MI_FAC_9300_B+1)
    	OSDLine(ROW(4),COL(16+(ucOsdState-_MI_FAC_9300_R)*6),LENGTH(6),_MENU_SECECT_COLOR,BYTE_COLOR);
    else
    	SETCOLOR_FACMAINMENU_SELLINE(4,_MENU_SECECT_COLOR);

}


void MFac9300ValAdj(BYTE ucMode)
{
	BYTE y;
	SET_COLOR_TEMP_TYPE(_CT_9300);
	CEepromLoadColorTempData();
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    switch(ucOsdState)
    {
    	case _MI_FAC_9300_R :
    	    y= ValueInRangeChange(0, 255,stColorTempData.ColorTemp[3 + _RED], _NON_LOOP | ucMode);
    		stColorTempData.ColorTemp[3 + _RED]=y;
    		ucOsdEventMsg = _SAVE_EE_COLORPROC1_MSG;
    		CAdjustContrast();
			CFacShowNumber(18,4,y); 
			break;
			
		case _MI_FAC_9300_G :
    	    y= ValueInRangeChange(0, 255,stColorTempData.ColorTemp[3 + _GREEN], _NON_LOOP | ucMode);
    		stColorTempData.ColorTemp[3 + _GREEN]=y;
    		ucOsdEventMsg = _SAVE_EE_COLORPROC1_MSG;
    		CAdjustContrast();
			CFacShowNumber(25,4,y); 
			break;
			
    	case _MI_FAC_9300_B:
    	    y= ValueInRangeChange(0, 255,stColorTempData.ColorTemp[3 + _BLUE], _NON_LOOP | ucMode);
    		stColorTempData.ColorTemp[3 + _BLUE]=y;
    		ucOsdEventMsg = _SAVE_EE_COLORPROC1_MSG;
    		CAdjustContrast();
			CFacShowNumber(31,4,y); 

⌨️ 快捷键说明

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