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

📄 rtd2553v_osddisp.c

📁 Realtek LCD monitor chip RTD25xx source code
💻 C
📖 第 1 页 / 共 2 页
字号:
//----------------------------------------------------------------------------------------------------
// ID Code      : OsdDisp.c No.0000
// Update Note  : 
//
//----------------------------------------------------------------------------------------------------

#define __RTD2553V_OSDDISP__

#include "Common\Header\Include.h"

#if((_SCALER_TYPE == _RTD2553V) || (_SCALER_TYPE == _RTD2546N) || (_SCALER_TYPE == _RTD2525L)) 


//----------------------------------------------------------------------------------------------------
// OSD Display Functions
//----------------------------------------------------------------------------------------------------

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispFirstTimeLoadFont(void)
{
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL, 0x00);
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL_ICON, 0xd2);
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispAutoProc(void)
{
    if(GET_INPUTSOURCE_TYPE() == _SOURCE_VGA)
    {
        COsdDispAutoProcPrevWork();
        CScalerLoadHardwareVLCFont(tFONT_AUTOCONFIG, 0x60);

        COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTO_STR)*12), YEND(140), tOSD_WINDOW2_STYLE);
        COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
        COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTO_STR))*12-10, YEND(120), tOSD_WINDOW6_STYLE);
        COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);

        COsdFxSetPosition(WIDTH(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTO_STR)*12), WIDTH(140), 100, 100, 0x01);

        COsdFxLoadIcon(ROW(3), COL(3), tOSD_AUTO_ICO);
        COsdFxLoadText(ROW(4), COL(7), stOsdUserData.Language, tOSD_AUTO_STR);

        COsdFxEnableOsd();

        CAutoDoAutoConfig();

        COsdFxDisableOsd();
    }
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispAutoColorProc(void)
{
    if((GET_INPUTSOURCE_TYPE() == _SOURCE_VGA) || (GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR)) //V307 modify
    {
        COsdDispAutoProcPrevWork();
        CScalerLoadHardwareVLCFont(tFONT_AUTOCOLOR, 0x60);

        COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTOCOLOR_STR)*12), YEND(140), tOSD_WINDOW2_STYLE);
        COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
        COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTOCOLOR_STR))*12-10, YEND(120), tOSD_WINDOW6_STYLE);
        COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);

        COsdFxSetPosition(WIDTH(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_AUTOCOLOR_STR)*12), WIDTH(140), 100, 100, 0x01);

        COsdFxLoadIcon(ROW(3), COL(3), tOSD_AUTO_ICO);
        COsdFxLoadText(ROW(4), COL(7), stOsdUserData.Language, tOSD_AUTOCOLOR_STR);

        COsdFxEnableOsd();

        CAutoDoWhiteBalance();

        COsdFxDisableOsd();
    }
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispNoSignalProc(void)
{
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL, 0x00);
    CScalerLoadFont(tFONT_NO_SIGNAL, 0x60, 0x23, _COMPRESS_FONT);
    COsdDispAutoProcPrevWork();

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR)*12), YEND(140), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
    COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR))*12-10, YEND(120), tOSD_WINDOW6_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);
    COsdFxSetPosition(WIDTH(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR)*12), WIDTH(140), 100, 100, 0x01);

    COsdFxLoadIcon(ROW(3), COL(3), tOSD_NOSIGNAL_ICO);
    COsdFxLoadText(ROW(4), COL(7), stOsdUserData.Language, tOSD_NOSIGNAL_STR);

    COsdFxEnableOsd();

    CAdjustBacklight(); //V306 modify
    CPowerPanelOn();
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispNoCableProc(void)
{
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL, 0x00);
    CScalerLoadFont(tFONT_NO_SIGNAL, 0x60, 0x23, _COMPRESS_FONT);
    COsdDispAutoProcPrevWork();

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR)*12), YEND(140), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
    COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR))*12-10, YEND(120), tOSD_WINDOW6_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);
    COsdFxSetPosition(WIDTH(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSIGNAL_STR)*12), WIDTH(140), 100, 100, 0x01);

    COsdFxLoadIcon(ROW(3), COL(3), tOSD_NOCABLE_ICO);
    COsdFxLoadText(ROW(4), COL(7), stOsdUserData.Language, tOSD_NOCABLE_STR);

    COsdFxEnableOsd();

    CAdjustBacklight(); //V306 modify
    CPowerPanelOn();
}

//--------------------------------------------------
// Description  : 
// Input Value  : 
// Output Value : 
//--------------------------------------------------
void COsdDispNoSupportProc(void)
{
    CScalerLoadHardwareVLCFont(tFONT_GLOBAL, 0x00);
    CScalerLoadFont(tFONT_OUT_OF_RANGE, 0x60, 0x18, _COMPRESS_FONT);
    COsdDispAutoProcPrevWork();

    COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSUPPORT_STR)*12), YEND(140), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_DARKBLUE), tOSD_WINDOW2_STYLE);
    COsdFxDrawWindow(XSTART(10), YSTART(20), XEND(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSUPPORT_STR))*12-10, YEND(120), tOSD_WINDOW6_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_LIGHTBLUE), tOSD_WINDOW6_STYLE);
    COsdFxSetPosition(WIDTH(COsdDispSetWindowPosDisp(stOsdUserData.Language, tOSD_NOSUPPORT_STR)*12), WIDTH(140), 100, 100, 0x01);

    COsdFxLoadIcon(ROW(3), COL(3), tOSD_NOSUPPORT_ICO);
    COsdFxLoadText(ROW(4), COL(7), stOsdUserData.Language, tOSD_NOSUPPORT_STR);

    COsdFxEnableOsd();

    CAdjustBacklight(); //V306 modify
    CPowerPanelOn();
}

//----------------------------------------------------------------------------------------------------
// OSD Combination Functions
//----------------------------------------------------------------------------------------------------
void COsdDispFullSlider(BYTE ucRow, BYTE ucCol, BYTE ucLength, WORD usValue, WORD usRange, WORD usMin, BYTE ucColor, BYTE ucNumColor)
{
    COsdFxHLine(ucRow, ucCol, ucLength, ((ucColor & 0x0f) << 4), _WRITE_BYTE2);
    COsdFxHLine(ucRow, ucCol, 1, 0x0d, _WRITE_BYTE1);
    COsdFxHLine(ucRow, ucCol + ucLength - 1, 1, 0x0c, _WRITE_BYTE1);
    COsdFxSlider(ucRow, ucCol + 1, ucLength - 2, usValue, usRange + usMin, usMin);
    COsdFxHLine(ucRow - 1, ucCol + ucLength - 3, 3, ((ucNumColor & 0x0f) << 4), _WRITE_BYTE2);
    COsdFxShowNumber(ucRow - 1, ucCol + ucLength - 3, usValue - usMin, (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
}

void COsdDispClearIcon(BYTE ucRow, BYTE ucCol, BYTE ucWidth, BYTE ucHeight)
{
    BYTE temp;

    for(temp=0;temp<ucHeight;temp++)
    {
        COsdFxCalcStartAddress(ucRow+temp, ucCol, 1);
        CScalerWriteAmount(0x92, ucWidth, 0x69, _NON_AUTOINC);
    }
}

void COsdDispClearText(BYTE ucRow,BYTE ucCol, BYTE ucWidth,BYTE ucHeight)
{
    BYTE temp;

    for(temp=0;temp<ucHeight;temp++)
    {
        COsdFxHLine(ROW(ucRow + temp), COL(ucCol), LENGTH(ucWidth), 0x10, _WRITE_BYTE2);
        COsdFxHLine(ROW(ucRow + temp), COL(ucCol), LENGTH(ucWidth), 0x00, _WRITE_BYTE1);
        COsdFxHLine(ROW(ucRow + temp), COL(ucCol), LENGTH(ucWidth), 0x8c, _WRITE_BYTE0);
    }
}

void COsdDispPenPoint(BYTE ucSrcX, BYTE ucSrcY, BYTE ucDesX, BYTE ucDesY, BYTE ucState)
{
    COsdFxHLine(ROW(ucSrcX), COL(ucSrcY), LENGTH(2), 0x69, _WRITE_BYTE1);
    COsdFxHLine(ROW(ucDesX), COL(ucDesY), LENGTH(1), 0x6a, _WRITE_BYTE1);
    COsdFxHLine(ROW(ucDesX), COL(ucDesY + 1), LENGTH(1), 0x6b, _WRITE_BYTE1);
    ucOsdState = ucState; 
}

void COsdDispArrowPoint(BYTE ucSrcX, BYTE ucSrcY, BYTE ucDesX, BYTE ucDesY, BYTE ucState)
{
    COsdFxHLine(ROW(ucSrcX), COL(ucSrcY), LENGTH(1), 0x00, _WRITE_BYTE1);
    COsdFxHLine(ROW(ucDesX), COL(ucDesY), LENGTH(1), 0x4a, _WRITE_BYTE1);
    COsdFxChange1bitColor(ROW(ucDesX), COL(ucDesY), WIDTH(1), HEIGHT(1), FGCOLOR(_CP_RED), BGCOLOR(_CP_BLACK));
    ucOsdState = ucState; 
}

void COsdDispWindowPoint(BYTE ucRowNum, BYTE ucState)
{
    //width:120 height:20
    COsdFxDrawWindow(XSTART(12), YSTART(17 + ucRowNum * 36), XEND(132), YEND(17 + ucRowNum * 36 +20), tOSD_WINDOW4_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_RED), tOSD_WINDOW4_STYLE);
    ucOsdState = ucState; 
}

void COsdDispWindowHPoint(BYTE ucRowNum, BYTE ucStart, BYTE ucInterval, BYTE ucItemNum, BYTE ucThick, BYTE ucState)
{
    //width:120 height:20
    COsdFxDrawWindow(XSTART(ucStart + ucInterval*ucItemNum), YSTART(18 + ucRowNum * 36), XEND(ucStart + ucInterval*ucItemNum + ucThick), YEND(18 + ucRowNum * 36 +18), tOSD_WINDOW2_STYLE);
    COsdFxChangeWindowColor(COLOR00(_CP_RED), tOSD_WINDOW2_STYLE);
    ucOsdState = ucState; 
}

void COsdDispDrawInitWindow(void)
{
    BYTE temp;

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

    COsdFxChange2bitColor(ROW(5), COL(0), WIDTH(5), HEIGHT(20), COLOR00(_CP_BLACK),COLOR01(_CP_WHITE),COLOR10(_CP_RED),COLOR11(_CP_GREEN));

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

void COsdDispLanguageBack(void)
{
    COsdDispClearIcon(ROW(5), COL(0), ROW(5), COL(20));
    COsdDispClearText(ROW(5), COL(5), ROW(17), COL(15));
    COsdDispDrawInitWindow();
    COsdDispPenPoint(ROW(5), COL(3), ROW(13), COL(3), _MENU_LANGUAGE);
}

void COsdDispShowFactoryModeValue(void)
{
    BYTE temp;
    CEepromLoadAdcData();

    for(temp=0;temp<3;temp++)
        COsdFxShowNumber(ROW(5), COL(17 + temp * 5), stAdcData.AdcOffset[temp], (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));

    for(temp=0;temp<3;temp++)
        COsdFxShowNumber(ROW(7), COL(16 + temp * 5), stAdcData.AdcGain[temp], (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));

    for(temp=0;temp<5;temp++)
    {
        SET_COLOR_TEMP_TYPE(temp);
        CEepromLoadColorTempData();
        COsdFxShowNumber(ROW(9 + temp*2), COsdFxGetColWithinText(15, temp+4, tOSD_FACTORY_ITEM_STR), stColorTempData.ColorTemp[_RED], (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
        COsdFxShowNumber(ROW(9 + temp*2), COsdFxGetColWithinText(20, temp+4, tOSD_FACTORY_ITEM_STR), stColorTempData.ColorTemp[_GREEN], (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
        COsdFxShowNumber(ROW(9 + temp*2), COsdFxGetColWithinText(25, temp+4, tOSD_FACTORY_ITEM_STR), stColorTempData.ColorTemp[_BLUE], (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
    }

    COsdFxShowNumber(ROW(19), COL(17), stConBriData.Brightness, (_ALIGN_RIGHT | _FORCE_SHOW_NUMBER_OFF | _SHOW_3));
}

void COsdDispAutoProcPrevWork(void)
{

⌨️ 快捷键说明

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