📄 rtd2533b_osddisp.c
字号:
//----------------------------------------------------------------------------------------------------
// ID Code : OsdDisp.c No.0000
// Update Note :
//
//----------------------------------------------------------------------------------------------------
#define __RTD2533B_OSDDISP__
#include "Common\Header\Include.h"
#if((_SCALER_TYPE == _RTD2533B) || (_SCALER_TYPE == _RTD2023L) || (_SCALER_TYPE == _RTD2023S) || (_SCALER_TYPE == _RTD2023L_VB) || (_SCALER_TYPE == _RTD2023S_VB))
//----------------------------------------------------------------------------------------------------
// OSD Display Functions
//----------------------------------------------------------------------------------------------------
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdDispFirstTimeLoadFont(void)
{
CScalerLoadFont(tFONT_GLOBAL, 0x00, 0x54, _NORMAL_FONT);
CScalerLoadFont(tFONT_ICON, 0x100, 0x54, _NORMAL_FONT);
CScalerLoadFont(tFONT_GLOBAL_ICON, 0xd2, 0x22, _NORMAL_FONT);
CScalerLoadFont(tFONT_BACK, 0xf4, 0x0c, _NORMAL_FONT);
CScalerLoadFont(tFONT_IMAGE2, 0xb8, 0x18, _COMPRESS_FONT);
CScalerLoadFont(tFONT_COLOR1, 0xa0, 0x18, _NORMAL_FONT);
}
//--------------------------------------------------
// Description :
// Input Value :
// Output Value :
//--------------------------------------------------
void COsdDispAutoProc(void)
{
if(GET_INPUTSOURCE_TYPE() == _SOURCE_VGA)
{
COsdDispAutoProcPrevWork();
CScalerLoadFont(tFONT_AUTOCONFIG, 0x60, 0x0c, _NORMAL_FONT);
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();
CScalerLoadFont(tFONT_AUTOCOLOR, 0x60, 0x0e, _NORMAL_FONT);
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)
{
CScalerLoadFont(tFONT_GLOBAL, 0x00, 0x54, _NORMAL_FONT);
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)
{
CScalerLoadFont(tFONT_GLOBAL, 0x00, 0x54, _NORMAL_FONT);
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)
{
CScalerLoadFont(tFONT_GLOBAL, 0x00, 0x54, _NORMAL_FONT);
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, 20);
COsdFxChange2bitColor(ROW(5), COL(2), WIDTH(3), 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(6 + temp*3), 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(20));
CScalerLoadFont(tFONT_ICON, 0x100, 0x54, _NORMAL_FONT);
COsdDispDrawInitWindow();
COsdDispPenPoint(ROW(6), COL(0), ROW(18), COL(0), _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)
{
COsdFxDisableOsd();
COsdFxApplyMapSetting(_OSD_MAP2);
COsdFxCloseWindow(WINNO(0));
COsdFxCloseWindow(WINNO(1));
COsdFxCloseWindow(WINNO(3));
COsdFxCloseWindow(WINNO(4));
COsdFxCloseWindow(WINNO(5));
}
void COsdDispColorTempSelect(void)
{
switch(stSystemData.ColorTemp)
{
case _CT_9300:
SET_COLOR_TEMP_TYPE(_CT_9300);
break;
case _CT_6500:
SET_COLOR_TEMP_TYPE(_CT_6500);
break;
case _CT_5800:
SET_COLOR_TEMP_TYPE(_CT_5800);
break;
case _CT_SRGB:
SET_COLOR_TEMP_TYPE(_CT_SRGB);
break;
case _CT_USER:
SET_COLOR_TEMP_TYPE(_CT_USER);
break;
}
CEepromLoadColorTempData();
CAdjustContrast();
}
BYTE COsdDispSetWindowPosDisp(BYTE ucSelect, BYTE code *pArray)
{
BYTE cnt, temp, temp1;
WORD length;
length = 0;
cnt = 0;
temp = 0;
temp1 = 0;
while(_TRUE)
{
if(*pArray == _END_)
{
if(temp == ucSelect)
{
pArray = pArray - cnt;
break;
}
else
{
pArray++;
cnt = 0;
}
temp++;//equal language select
}
pArray++;
cnt++;
}
while(*pArray != _END_)
{
cnt=0;
while(tOSD_CHARWIDTH_TABLE[cnt][0] != _END_)
{
if((*pArray == tOSD_CHARWIDTH_TABLE[cnt][0])&&(tOSD_CHARWIDTH_TABLE[cnt][1]!=_END_))
{
length += (tOSD_CHARWIDTH_TABLE[cnt][1]&0x0f);
break;
}
cnt++;
}
if(tOSD_CHARWIDTH_TABLE[cnt][0] == _END_)
length += 12;
pArray++;
}
length=length/12;
temp = (length)+12;
return temp;
}
//----------------------------------------------------------------------------------------------------
// OSD Event Functions
//----------------------------------------------------------------------------------------------------
void COsdDispOsdTimerEvent(void)
{
COsdFxDisableOsd();
ucOsdState = _MENU_NONE;
}
#endif // End of #if((_SCALER_TYPE == _RTD2533B) || (_SCALER_TYPE == _RTD2023L) || (_SCALER_TYPE == _RTD2023S) || (_SCALER_TYPE == _RTD2023L_VB) || (_SCALER_TYPE == _RTD2023S_VB))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -