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

📄 osd_001.c

📁 RTD2662板卡源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	CTextOutEx(s4_3,COL(16),ROW(2));
    if(GET_DISPLAYMODE() == _DISPMODE_FULL)
    {
		Gotoxy(4,2,BYTE_DISPLAY);
		OutputChar(0x56);
    }
    else
    {
		Gotoxy(15,2,BYTE_DISPLAY);
        OutputChar(0x56);
    }

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

/*
void DrawVolumeMenu(void)
{
    Clear();
   	CCenterTextout(sVolume[GET_LANGUAGE()], ROW(1), 0, 23);
	OSDSlider1(ROW(2), 3, 16, GET_VOLUME(), 100,0xe0);

}
*/
//------------------------------------------------------------------------------
void DrawResetMenu(void)
{
    Clear();   
    CCenterTextout(sReset[GET_LANGUAGE()], ROW(0), 0, 25);
    CTextOutEx(sYes,COL(6),ROW(2));
    CTextOutEx(sNo,COL(16),ROW(2));

    Gotoxy(14,2,BYTE_DISPLAY);
    OutputChar(0x56);
}
//------------------------------------------------------------------------------

void DrawExitMenu(void)
{
	Clear();
	CCenterTextout(sExit[GET_LANGUAGE()], ROW(0), 0, 25);
}
//------------------------------------------------------------------------------
void Draw001MenuItem(BYTE ucItem,BYTE ucState)
{
    ucState = ucState;
    // draw menu item     
    switch(ucItem)
    {
    case _MI_001_BRIGHTNESS: 				DrawBrightnessMenu();				break;
    case _MI_001_CONTRAST: 					DrawContrastMenu();					break;
    case _MI_001_HUE: 						DrawHueMenu();         				break;
    case _MI_001_SATURATION: 				DrawSaturationMenu();				break;
    case _MI_001_AV1_AV2: 					DrawSourceA1A2Menu();				break;
    case _MI_001_LEFT_RIGHT:				DrawLeftRightChangeMenu();			break;
    case _MI_001_UP_DOWN:					DrawUpDownChangeMenu();				break;
    case _MI_001_DISPLAY_RATIO:				DrawDisplayRadioMenu();				break;
    case _MI_001_RESET: 					DrawResetMenu(); 					break;
    case _MI_001_EXIT:						DrawExitMenu();						break;
    }
} 
//------------------------------------------------------------------------------
void Adjust001Contrast(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stConBriData.Contrast = ValueInRangeChange(0, 100, stConBriData.Contrast, _NON_LOOP | ucMode);
    CAdjustContrast();
    ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
    OSDSlider1(ROW(2), 3, 16, stConBriData.Contrast, 100,0xe0);
}
//------------------------------------------------------------------------------
void Adjust001Brightness(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stConBriData.Brightness = ValueInRangeChange(0, 100, stConBriData.Brightness, _NON_LOOP | ucMode);
    CAdjustBrightness();
    ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
    OSDSlider1(ROW(2), 3, 16, stConBriData.Brightness, 100,0xe0);

}
//------------------------------------------------------------------------------
void Adjust001Hue(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stHueSatData.Hue = ValueInRangeChange(0, 100, stHueSatData.Hue, _NON_LOOP | ucMode);

    if(bSourceVideo())
    {
        gmi_CAdjustVDCHue(GET_HUE());
    }
    else
    {
        CAdjustYpbprhue(GET_HUE());
    }
    ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;   

    OSDSlider1(ROW(2), 3, 16, GET_HUE(), 100,0xe0);
}
//------------------------------------------------------------------------------
void Adjust001Saturation(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stHueSatData.Saturation = ValueInRangeChange(0, 100, stHueSatData.Saturation, _NON_LOOP | ucMode);

    if(bSourceVideo())
    {
        CVideoSetSaturation(GET_SATURATION());
    }
    else
    {
        CAdjustYpbprSaturation(GET_SATURATION());
    }

    ucOsdEventMsg = _SAVE_EE_HUE_SAT_DATA_MSG;
    OSDSlider1(ROW(2), 3, 16, GET_SATURATION(), 100,0xe0);
}


void Adjust001Source(BYTE ucMode)
{   
    // ucMode : _INC or _DEC
	ucMode = ucMode;
    CChangeSourceAvSv();
}
//------------------------------------------------------------------------------
void Adjust001LeftRight(ucMode)
{
	ucMode = ucMode;
	if(GET_SCREEN_LR())
	{	
		bLR = 0;
		SET_SCREEN_LR(0); 
	}
	else
	{
        bLR = 1;
		SET_SCREEN_LR(1); 
	}
	CEepromSaveSystemData();
	DrawLeftRightChangeMenu();
	
}
//------------------------------------------------------------------------------
void Adjust001UpDown(ucMode)
{
	ucMode = ucMode;
	if(GET_SCREEN_UD())
	{	
		bUD = 0;
		SET_SCREEN_UD(0);
	}
	else
	{
        bUD= 1;
		SET_SCREEN_UD(1);
	}
	CEepromSaveSystemData();
	DrawUpDownChangeMenu();

}
//------------------------------------------------------------------------------
void Adjust001DisplayRatio(ucMode)
{
	ucMode = ucMode ;
	switch(GET_DISPLAYMODE())
	{
	case _DISPMODE_FULL:
	    SET_DISPLAYMODE(_DISPMODE_43);
	    break;
	case _DISPMODE_43:
	    SET_DISPLAYMODE(_DISPMODE_FULL);
	    break;
	}
	//CLR_CLEAR_OSD_EN();
    COsdDispOsdTimerEvent();
	CEepromSaveSystemData();
	ucTVSyncFailCount = 250;
	CModeResetMode();
	DrawDisplayRadioMenu();
}
//------------------------------------------------------------------------------

void Exit001Menu(void)
{
	COsdDispOsdTimerEvent();
	bOSDTimeOut = 1;
}
//---------------------------------------------------------------------------
/*
void Adjust001Volume(BYTE ucMode)
{
    // ucMode : _INC or _DEC
    SET_KEYREPEATENABLE();
    stAudioData.Volume = ValueInRangeChange(0, 100, stAudioData.Volume, _NON_LOOP | ucMode);
    CSetVolume();
    ucOsdEventMsg = _SAVE_EE_AUDIO_DATA_MSG;
    
    OSDSlider1(ROW(2), 3, 16, stAudioData.Volume, 100,0xe0);
}
*/
//---------------------------------------------------------------------------
void OSDSlider1(unsigned char row, unsigned char col, unsigned char length, unsigned char value, unsigned char range,
                unsigned char color)
{
    unsigned int bound;
    unsigned char i,c;
    OSDLine(row, col, length + 8, color, THE_BYTE2);   // Set Slider Attribute. 4 extra columns for space/numbers/space
    bound   = length * value;
    Gotoxy(col,row,THE_BYTE1);
    OutputChar(0x0f);
    OutputChar(0x04);          // Left Border
    
  //  OutputChar(0x21);          // Left Border
    for (i = 1; i <= length; i++)
    {
        if (bound)
        {
            if(bound >= range)
            {
                c       = 0x0B;
                bound   = bound - range;
            }
            else
            {
                color   = (bound << 4) / range;
                bound   = 0;
                if (4 > color)                    c = 0x06;
                else if (7 > color)               c = 0x07;
                else if (10 > color)              c = 0x08;
                else if (13 > color)              c = 0x09;
                else                              c = 0x0a;
            }
        }
        else
        {
            c = 0x05;
        }
        OutputChar(c);
    }
    OutputChar(0x0C);    // Right Border
    CShowNumber2(value, 0);    //值显示在右边
    OutputChar(0x0D);
    if (value < 100)
    OutputChar(0x00);

}
//----------------------------------------------------------- 
//  ucNumber:      0~65535
//  ucUserDefLong: 0   --> 自动计算ucNumber长度,有几位输出几位
//                 1~5 --> 输出1~5位,不足用0补
//  exp:           ucNumber = 12
//                 ucUserDefLong = 0    Output:  12
//                 ucUserDefLong = 3    Output:  012
//----------------------------------------------------------- 
void CShowNumber2(const WORD ucNumber, BYTE ucUserDefLong)
{
    BYTE uctemp[5];
    
    uctemp[4] = (ucNumber / 10000) % 10;
    uctemp[3] = (ucNumber / 1000) % 10;
    uctemp[2] = (ucNumber / 100) % 10;
    uctemp[1] = (ucNumber / 10) % 10;
    uctemp[0] = ucNumber  % 10;
    
    if (ucUserDefLong)
        ucUserDefLong -= 1;     
    else    
    {
        for(pData[15] = 4; pData[15]>0;pData[15]--)
        {
            if(uctemp[pData[15]] != 0)
                break;          
        }
        
        ucUserDefLong = pData[15];
    }
    
    CScalerSendAddr(_OSD_DATA_PORT_92 , _NON_AUTOINC);
    do
    {
        *(&MCU_SCA_INF_DATA_FFF5) = (uctemp[ucUserDefLong]+'0');
    }
    while(ucUserDefLong--);
} 
//---------------------------------------------------------------------------

#endif



⌨️ 快捷键说明

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