📄 osdpub900.c
字号:
COsdFxDrawWindow(XSTART(0), YSTART(10), XEND(w), YEND(45), tOSD_WINDOW0_STYLE1);
COsdFxChangeWindowColor(COLOR00(4), tOSD_WINDOW0_STYLE1);
/********************** Add By bhxu Begin **********************/
// CScalerLoadFont(Fnt_CopyRight, 0xa0,20,_COMPRESS_FONT);
// Gotoxy(1,3,BYTE_DISPLAY);
// Textout((unsigned char code *)sDeptName);
/********************** Add By bhxu End **********************/ //做样板时可以打开注释
COsdFxEnableOsd();
// CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
CTimerReactiveTimerEvent(SEC(2),COsdDispOsdTimerEvent);
}
//---------------------------------------------------------------------------------------------------------------------
void ShowHint()
{
LoadLanguageFont1();
InitDialog();
CLR_READYFORDISPLAY();
CModeSetFreeRun();
CAdjustBackgroundColor(0x00, 0x00, 0x00);
CPowerPanelOn();
OSDPosition(DIALOG_OSD_WIDTH,DIALOG_OSD_HEIGHT,50,50,0x01);
COsdFxEnableOsd();
switch(ucOsdEventMsg)
{
case _SHOW_NOSIGNAL_MSG:
CenterTextout((unsigned char code *)sNoSignal[GET_LANGUAGE],13,3);
break;
case _SHOW_NOCABLE_MSG:
CenterTextout((unsigned char code *)sNoCable[GET_LANGUAGE],13,3);
break;
case _SHOW_NOSUPPORT_MSG:
CenterTextout((unsigned char code *)sNotSupport[GET_LANGUAGE],13,3);
CScalerLoadFont(Fnt_CopyRight, 0xa0,20,_COMPRESS_FONT);
CenterTextout((unsigned char code *)sRecommendedMode[GET_LANGUAGE],13,4);
Gotoxy(6,5,0x50);
OutputRecommendedMode();
OutputChar(0x00);
Textout((unsigned char code *)sRMode_Eng); //60HZ hsl add 05/09/06
// CenterTextout((unsigned char code *)sRMode_Eng,13,5);
CTimerCancelTimerEvent(COsdDispOsdTimerEvent);
break;
}
}
void OutputRecommendedMode()
{
if(_DISP_WID / 1000) pData[3] = '1';
else pData[3] = 0;
pData[4] = (unsigned char)((_DISP_WID / 100) % 10) + '0';
pData[5] = (unsigned char)((_DISP_WID / 10) % 10) + '0';
pData[6] = (unsigned char)( _DISP_WID % 10) + '0';
pData[7] = ' ';
pData[8] = 0x5b; // x
pData[9] = ' ';
if(_DISP_LEN / 1000)
{
pData[10] = '1';
pData[11] = (unsigned char)((_DISP_LEN / 100) % 10) + '0';
pData[12] = (unsigned char)((_DISP_LEN / 10) % 10) + '0';
pData[13] = (unsigned char)(_DISP_LEN % 10) + '0';
pData[14] = 0;
pData[0] = 14;
}
else
{
pData[10] = (unsigned char)((_DISP_LEN / 100) % 10) + '0';
pData[11] = (unsigned char)((_DISP_LEN / 10) % 10) + '0';
pData[12] = (unsigned char)(_DISP_LEN % 10) + '0';
pData[13] = 0;
pData[0] = 13;
}
CScalerWrite(_OSD_DATA_PORT_92,pData[0] - 3,&pData[3],_NON_AUTOINC);
}
#if(_IR_ENABLE)
//----------------------------------------------------------------------------------------------------
void CShowFiveNumber(const WORD ucNumber, BYTE ucUserDefLong)
{
unsigned char O_Data[5];
O_Data[4] = (ucNumber / 10000) % 10;
O_Data[3] = (ucNumber / 1000) % 10;
O_Data[2] = (ucNumber / 100) % 10;
O_Data[1] = (ucNumber / 10) % 10;
O_Data[0] = ucNumber % 10;
if (ucUserDefLong)
ucUserDefLong -= 1;
else
{
for(pData[15] = 4; pData[15]>0;pData[15]--)
{
if(O_Data[pData[15]] != 0)
break;
}
ucUserDefLong = pData[15];
}
CScalerSendAddr(_OSD_DATA_PORT_92, _WRITE, _NON_AUTOINC);
do
{
CScalerSendByte(O_Data[ucUserDefLong]+'0');
}
while(ucUserDefLong--);
CScalerSendWriteStop();
}
//----------- Shortcut key proc ---------------------------
#define _INPUT_NO_NUMBER 0
#define _INPUT_ONE_NUMBER 1
#define _INPUT_TWO_NUMBER 2
#define _INPUT_THREE_NUMBER 3
void STVInputCHEnter(void)
{
BYTE ucInputState = GET_INPUTCH_STATE()+1;
// Reset input number and state
ucCurrentInputNumber = 0;
ucCurrentInputState = _INPUT_NO_NUMBER; // 0: no input number 1: input one number 2: input two number 3: input three number
if (ucInputState > 3)
{ // Input state err reset input state to input one channel -
ucInputState = 1;
SET_INPUTCH_STATE(0);
CEepromSaveOsdUserData();
}
COsdFxDisableOsd();
SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
SetOSDDouble(OSD_DOUBLE_HEIGHT_ENABLE | OSD_DOUBLE_WIDTH_ENABLE);
SetRowCmds(ROW_COUNT,COL_WIDTH);
COsdFxCodeWrite(ucCloseAllWindow);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x8C, THE_BYTE0);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x00, THE_BYTE1);
OSDClear(0, ROW_COUNT, 0, COL_WIDTH, 0x20, THE_BYTE2);
OSDPosition(30,30,38,1,0x01);
Gotoxy(5, 1, BYTE_DISPLAY);
for(;ucInputState > 0;ucInputState--)
OutputChar(0x2d); // Show "-"
COsdFxEnableOsd();
CTimerReactiveTimerEvent(SEC(stOsdUserData.OsdTimeout),COsdDispOsdTimerEvent);
ucOsdState = ITEM_SHORTCUT_INPUTCH_NUM;
}
//---------------------------------------------------------
void SInputCHNumber(void)
{
BYTE ucInputState = GET_INPUTCH_STATE() + 1;
switch(ucKeyMessage)
{
case VK_IR_NUM0:
case VK_IR_NUM1:
case VK_IR_NUM2:
case VK_IR_NUM3:
case VK_IR_NUM4:
case VK_IR_NUM5:
case VK_IR_NUM6:
case VK_IR_NUM7:
case VK_IR_NUM8:
case VK_IR_NUM9:
SInceptNumber(ucKeyMessage & 0x0f);
break;
case VK_IR_INPUTCH:
ucInputState = ValueInRangeChange(1, 3, ucInputState, 1, 1);
SET_INPUTCH_STATE(ucInputState-1);
CEepromSaveOsdUserData();
// Reset input number and state
ucCurrentInputNumber = 0;
ucCurrentInputState = 0; // 0: no input number 1: input one number 2: input two number 3: input three number
break;
}
SShowCurrentInputState(ucInputState);
if (ucInputState == ucCurrentInputState)
{
BYTE ucMaxChannel = CLoadMaxChannelNumber();
ucOsdState = _MENU_NONE;
CTimerDelayXms(200);
ucPrevChannel = stVDCColor.CurrentChannel;
stVDCColor.CurrentChannel = (ucCurrentInputNumber > ucMaxChannel) ? ucMaxChannel : ucCurrentInputNumber;
CSetTVChannel(stVDCColor.CurrentChannel);
CShowTVNumber(stVDCColor.CurrentChannel,SHOW_CH_TV_NUMBER | SHOW_CH_TV_TYPE | SHOW_CH_SOUND_TYPE);
ucOsdEventMsg = _SAVE_EE_VEDIOCOLOR_MSG;
}
}
//---------------------------------------------------------
void SInceptNumber(const BYTE ucNumber)
{
switch(ucCurrentInputState)
{
case _INPUT_NO_NUMBER: // not input number
ucCurrentInputNumber = ucNumber;
ucCurrentInputState = _INPUT_ONE_NUMBER;
break;
case _INPUT_ONE_NUMBER: // Input on number alrady
case _INPUT_TWO_NUMBER: // Input two number alrady
ucCurrentInputNumber = (ucCurrentInputNumber*10) + ucNumber;
ucCurrentInputState = (ucCurrentInputState == _INPUT_TWO_NUMBER) ? _INPUT_THREE_NUMBER : _INPUT_TWO_NUMBER;
break;
/*
case _INPUT_TWO_NUMBER: // Input two number alrady
ucCurrentInputNumber = (ucCurrentInputNumber*10) + ucNumber;
ucCurrentInputState = _INPUT_THREE_NUMBER;
break;*/
}
}
//---------------------------------------------------------
void SShowCurrentInputState(BYTE ucInputState)
{
Gotoxy(5, 1, BYTE_DISPLAY);
switch(ucCurrentInputState)
{
case _INPUT_NO_NUMBER: // not input number
for(;ucInputState > 0;ucInputState--)
OutputChar(0x2d); // Show "-"
OutputChar(0x00); // Show " "
OutputChar(0x00); // Show " "
break;
case _INPUT_ONE_NUMBER: // Input on number alrady
CShowFiveNumber(ucCurrentInputNumber,1);
break;
case _INPUT_TWO_NUMBER: // Input two number alrady
CShowFiveNumber(ucCurrentInputNumber,2);
break;
case _INPUT_THREE_NUMBER: // Input three number alrady
CShowFiveNumber(ucCurrentInputNumber,3);
break;
}
}
//---------------------------------------------------------
void STVInputCHNumber(void)
{
STVInputCHEnter();
ucOsdState = ITEM_SHORTCUT_INPUTCH_NUM;
SInputCHNumber();
}
//---------------------------------------------------------
void STVReturnCH(void)
{
pData[0] = stVDCColor.CurrentChannel;
stVDCColor.CurrentChannel = ucPrevChannel;
ucPrevChannel = pData[0];
CSetTVChannel(stVDCColor.CurrentChannel);
CShowTVNumber(stVDCColor.CurrentChannel,SHOW_CH_TV_NUMBER | SHOW_CH_TV_TYPE | SHOW_CH_SOUND_TYPE);
ucOsdEventMsg = _SAVE_EE_VEDIOCOLOR_MSG;
}
#endif
//---------------------------------------------------------
void NotUseFunc()
{
//SetOSDRamAddress(0,0,0);
//DirectWOSDRam(0,0,0,0);
//SetRowCmds(0,0);
//Gotoxy(0,0,0);
//OutputChar(0);
//Textout(0);
//PrintfDec(0);
PrintfHex(0);
//OSDPosition(0,0,0,0,0);
//OSDLine(0,0,0,0,0);
//OSDClear(0,0,0, 0,0,0);
//OutputDisplaySize(); //在当前的位置输出显示尺寸
//OutputRefrushRate(); //在当前的位置输出刷新频率
OutputHSync(); //在当前的位置输出HSync
//COsdFxCodeWrite(0);
//COsdFxDisableOsd();
//COsdFxDrawWindow(0,0,0,0,0);
//COsdFxChangeWindowColor(0,0);
//StrLen(0);
//ValueInRangeChange(0,0,0,0,0);
SetRTDPWM(0,0);
//CAutoDoAutoConfig();
//CAutoDoWhiteBalance();
//CEepromSaveOsdUserData();
//CEepromSaveBriConData();
//CEepromSaveColorTempData();
//CScalerLoadFont(0, 0, 0, 0);
//ShowMode();
//OSDSlider(0, 0, 0, 0, 0,0);
//GetLanguegeCount();
//GetNextLanguage(0);
GetPrevLanguage(0);
//CheckLanguage();
//FirstLanguage();
LastLanguage();
PrintfInt(0);
//COsdFxEnableOsd();
//DoReset();
//VPosGuage();
//HPosGuage();
//ClockGuage();
//CenterTextout(0,0,0);
RightAlignTextOut(0,0,0);
//ChangeSource();
//SetOSDDouble(0);
GetCurrLanguagePos();
IndexofLanuguage(0);
#if(_VIDEO_TV_SUPPORT)
CEepromSaveVedioColor();
#endif
#if(_VIDEO_TV_SUPPORT && _TV_CHIP != _TV_NONE)
CSaveChannelFreq(0,0);
CSaveChannelColorType(0,0);
CSaveChannelSkip(0,0);
CSaveChannelSoundType(0, 0);
CPrevChannel();
CNextChannel();
CTvAutoSearch();
CManualSearch(0,0);
CTuningCurrentChannel(0, 0);
MChannelProc();
MSystemProc();
MTuningProc();
MSwapProc();
MManualSearchProc();
#endif
}
//----------------------------------------------------------------------------------------------------
void LoadPalette()
{
switch(GET_OSDCOLOR())
{
case 0:
CAdjustColorPalette(tPALETTE_0);
break;
case 1:
CAdjustColorPalette(tPALETTE_1);
break;
case 2:
CAdjustColorPalette(tPALETTE_2);
break;
case 3:
CAdjustColorPalette(tPALETTE_3);
break;
case 4:
CAdjustColorPalette(tPALETTE_4);
break;
}
}
//----------------------------------------------------------------------------------------------------
void CFirstInitOsd(void)
{
}
//----------------------------------------------------------------------------------------------------
#endif //#if(OSD_TYPE == OSD01)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -