📄 osd.c
字号:
{
ENG_Video_Color,CHN_Video_Color
};
*/
code BYTE itembar[] = {MainPageXStart,MainPageYStart,MainPageBarLength,MaxOSDPageItem};
code void (*menu[])(void) =
{Disp_OSDHPosition,Disp_OSDVPosition,Disp_OSDLanguage,ReturnMenuState
};
code BYTE progress[][4] =
{ 1,10,0,OSD_HPOS_U,
1,10,0,OSD_VPOS_U,
1,10,0,OSD_LANGUAGE_U,
1,10,0,NOTHING
};
if(!bMenuFlag)
{
//ShowMenu(menu_data[sOSD.Language]);
//ShowProgress(progress[ItemIndex]);
ClearOSDRegion(MainPageXStart,MainPageYStart,MainPageColor);
OSDSetupMenu();
ShowProgress(progress[ItemIndex]);
EnableOSD();
ItemSelect(itembar,menu);
bMenuFlag = 1;
}
else
{
ItemSelect(itembar,menu);
if(KeyNo == UPKEY || KeyNo == DOWNKEY)
{
ShowProgress(progress[ItemIndex]);
}
}
}
void Disp_VsignalPosition(void)
{
}
void Disp_HsignalPosition(void)
{
}
void Disp_PWM(void)
{
}
void Disp_CommonPulse(void)
{
}
void Disp_YGain(void)
{
}
void Disp_BlackLevel(void)
{
}
void Disp_YaperGain(void)
{
}
void Disp_RsubBri(void)
{
}
void Disp_BsubBri(void)
{
}
void Disp_WhitePeakLevel(void)
{
}
void Disp_Gamma1(void)
{
}
void Disp_Gamma2(void)
{
}
void Disp_VideoMisc(void)
{
/*
code BYTE *menu_data[] =
{
ENG_Video_Color,CHN_Video_Color
};
*/
code BYTE itembar[] = {MainPageXStart,MainPageYStart,MainPageBarLength,MaxMiscPageItem};
code void (*menu[])(void) =
{/*Disp_VsignalPosition,Disp_HsignalPosition,Disp_PWM,*/Disp_CommonPulse,Disp_YGain,
Disp_BlackLevel,Disp_YaperGain,Disp_RsubBri,Disp_BsubBri,Disp_WhitePeakLevel,
Disp_Gamma1,Disp_Gamma2,ReturnMenuState
};
/*
code BYTE progress[][4] =
{ 0,9,0,VIDEO_,
0,9,0,VIDEO_HUE_U,
0,9,0,VIDEO_SHARP,
0,9,0,NOTHING
};
*/
if(!bMenuFlag)
{
//ShowMenu(menu_data[sOSD.Language]);
//ShowProgress(progress[ItemIndex]);
// ClearOSDRegion(MainPageXStart,MainPageYStart,MainPageColor);
InitialOSD();
VideoMiscMenu();
//ShowProgress(progress[ItemIndex]);
EnableOSD();
ItemSelect(itembar,menu);
bMenuFlag = 1;
}
else
{
ItemSelect(itembar,menu);
//if(KeyNo == UPKEY || KeyNo == DOWNKEY
// || IR_Key == IR_Up_Key || IR_Key == IR_Down_Key)
if(KeyNo == UPKEY || KeyNo == DOWNKEY)
{
//ShowProgress(progress[ItemIndex]);
}
}
}
void Disp_Recall(void)
{
}
#endif
void Disp_IICHold(void)
{
if(!bMenuFlag)
{
DisableOSD();
Disp_DebugMsg();
bMenuFlag = 1;
}
}
void VideoPosMenu()
{
if(bFactoryflag)
{
gotoxy(1,7);
PrintChar(_F,Red);
}
else
{
gotoxy(1,7);
PrintChar(__,MainPageColor);
}
gotoxy(MainPageXStart,MainPageYStart);
PrintString(HoriPos_Item,sizeof(HoriPos_Item),MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+1);
PrintString(VerticalPos_Item,sizeof(VerticalPos_Item),MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+2);
PrintByteString(ReturnStr,sizeof(ReturnStr),MainPageCharColor);
}
void Disp_VideoPos()
{
code BYTE itembar[] = {0,1,15,3};
code void (*menu[])(void) =
{
Disp_VideoHPos,
Disp_VideoVPos,
VideoReturnMain
};
if(bMenuFlag == 0)
{
bClrFlag=0;
if (MenuFlagState==0) //Only First time return to zero
ItemIndex=0;
InitialOSD();
VideoPosMenu(); // fill data to display ram
EnableOSD(); // enable osd
ShowBar(ItemIndex);
bMenuFlag = 1;
MenuFlagState = 4;
}
else
{
ItemSelect(itembar,menu);
}
}
void DispContBright(void)
{
code BYTE itembar[] = {0,1,15,9};
code void (*menu[])(void) =
{
Disp_VideoBrightness,
Disp_VideoContrast,
Disp_VideoSubContrast,
Disp_Saturation,
Disp_Hue,
Disp_Sharpness,
Disp_WhiteLimiter,
Disp_BlackLimiter,
ContBrigReturnMain
};
if(bMenuFlag == 0)
{
bClrFlag=0;
if (MenuFlagState==0) //Only First time return to zero
ItemIndex=0;
InitialOSD();
ContBrightMenu(); // fill data to display ram
EnableOSD(); // enable osd
ShowBar(ItemIndex);
// GammaSelect(itembar,menu);
//ItemSelect(itembar,menu); // 20060505 For check MCU reset issue.
//ShowSubMenu(1); // Mark in 050807 for disable sub menu
bMenuFlag = 1;
MenuFlagState = 2;
}
else
{
// GammaSelect(itembar,menu);
ItemSelect(itembar,menu);
}
}
void ContBrightMenu(void)
{
if(bFactoryflag)
{
gotoxy(1,7);
PrintChar(_F,Red);
}
else
{
gotoxy(1,7);
PrintChar(__,MainPageColor);
}
gotoxy(MainPageXStart,MainPageYStart);
PrintString(Brightness_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+1);
PrintString(Contrast_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+2);
PrintByteString(SubContrast_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+3);
PrintByteString(Saturation_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+4);
PrintByteString(Hue_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+5);
PrintByteString(Sharpness_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+6);
PrintByteString(WhiteLimiter_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+7);
PrintByteString(BlackLimiter_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+8);
PrintByteString(ReturnStr,MainPageItemLength,MainPageCharColor);
}
void ReturnMenuState(void)
{
OSDStackPoint--;
MenuProcess = OSDStack[OSDStackPoint].MenuProcess;
ItemIndex = OSDStack[OSDStackPoint].ItemIndex;
}
void SaveMenuState(void)
{
OSDStack[OSDStackPoint].MenuProcess = MenuProcess;
OSDStack[OSDStackPoint].ItemIndex = ItemIndex;
OSDStackPoint++;
}
void ContBrigReturnMain(void)
{
bMenuFlag = 0;
bSubMenuFlag=0;
bClrFlag=0;
ItemIndex = 0;
bGammaFlag=0;
MenuFlagState = 0;
MenuProcess = Disp_VideoMenu;
}
void Disp_No_Input_Signal()
{
CloseWindow(1);
EnableOSDRAMClr();
DisableOSD();
byMTV_HORD=25;
byMTV_VERTD=5;
gotoxy(20,0);
PrintString(NoSignal,sizeof(NoSignal),Yellow);
EnableOSD();
bMenuFlag = 1;
}
void DispInputSource(void)
{
code BYTE progress[4] ={0,7,4,InputSource};
ProgressSelect(progress);
}
void ShowInputSource(BYTE input_source)
{
DisableOSD();
sImage.InputMode = ItemValue.value;
switch(input_source)
{
case 0x00:
EnableOSDRAMClr();
DoWait(10);
DisableOSDRAMClr();
gotoxy(0,9);
PrintString(AVInput,10,White);
break;
case 0x01:
EnableOSDRAMClr();
DoWait(10);
DisableOSDRAMClr();
gotoxy(0,9);
PrintString(SVInput,10,White);
break;
case 0x02:
EnableOSDRAMClr();
DoWait(10);
DisableOSDRAMClr();
gotoxy(0,9);
PrintString(YCbCrInput,10,White);
break;
case 0x03:
EnableOSDRAMClr();
DoWait(10);
DisableOSDRAMClr();
gotoxy(0,9);
PrintString(RGBInput,sizeof(RGBInput),White);
gotoxy(sizeof(RGBInput),9);
PrintString(WithSync,sizeof(WithSync),Red);
break;
}
}
void SetInputSource()
{
switch (sImage.InputMode)
{
case 0x00:
VSW = 0x00;
SyncSW = 0;
ColorSys = 0;
WIDEBLKPOL = 0;
CS7111_Write(0x0D,((SyncSW<<7)|(WIDEBLKPOL<<6)|(VSW<<3)|(ColorSys&0x07)));
break;
case 0x01:
VSW = 0x03;
SyncSW = 0;
ColorSys = 0;
WIDEBLKPOL = 0;
CS7111_Write(0x0D,((SyncSW<<7)|(WIDEBLKPOL<<6)|(VSW<<3)|(ColorSys&0x07)));
break;
case 0x02:
VSW = 0x04;
SyncSW = 0;
ColorSys = 0;
WIDEBLKPOL = 0;
CS7111_Write(0x0D,((SyncSW<<7)|(WIDEBLKPOL<<6)|(VSW<<3)|(ColorSys&0x07)));
break;
case 0x03:
VSW = 0x05;
SyncSW = 1;
ColorSys = 0;
WIDEBLKPOL = 0;
CS7111_Write(0x0D,((SyncSW<<7)|(WIDEBLKPOL<<6)|(VSW<<3)|(ColorSys&0x07)));
break;
}
}
void OSDSetup()
{
code BYTE itembar[] = {0,1,15,3};
code void (*menu[])(void) =
{
Disp_OSDHorital,
Disp_OSDVertical,
OSDReturnMain
};
if(bMenuFlag == 0)
{
bClrFlag=0;
if (MenuFlagState==0) //Only First time return to zero
ItemIndex=0;
InitialOSD();
OSDMenu(); // fill data to display ram
EnableOSD(); // enable osd
ShowBar(ItemIndex);
// GammaSelect(itembar,menu);
ItemSelect(itembar,menu);
//ShowSubMenu(1); // Mark in 050807 for disable sub menu
bMenuFlag = 1;
MenuFlagState = 3;
}
else
{
// GammaSelect(itembar,menu);
ItemSelect(itembar,menu);
}
}
void OSDReturnMain(void)
{
bMenuFlag = 0;
bSubMenuFlag=0;
bClrFlag=0;
ItemIndex = 5; // for return main menu window item
bGammaFlag=0;
MenuFlagState = 0;
MenuProcess = Disp_VideoMenu;
}
void OSDMenu(void)
{
if(bFactoryflag)
{
gotoxy(1,7);
PrintChar(_F,Red);
}
else
{
gotoxy(1,7);
PrintChar(__,MainPageColor);
}
gotoxy(MainPageXStart,MainPageYStart);
PrintString(OSDH_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+1);
PrintString(OSDV_Item,MainPageItemLength,MainPageCharColor);
gotoxy(MainPageXStart,MainPageYStart+2);
PrintByteString(ReturnStr,MainPageItemLength,MainPageCharColor);
}
void Disp_OSDHorital(void)
{
code BYTE progress[4] ={0,7,4,OSDHPosi};
ProgressSelect(progress);
}
void Disp_OSDVertical(void)
{
code BYTE progress[4] ={0,7,4,OSDVPosi};
ProgressSelect(progress);
}
void Set_Video_HPos()
{
sVideoPos.H_Pos=ItemValue.value;
byMTV_TCONADDR=0x13;
byMTV_TCONDATA=sVideoPos.H_Pos;
}
void Set_Video_VPos()
{
sVideoPos.V_Pos=ItemValue.value;
byMTV_TCONADDR=0x0C;
byMTV_TCONDATA=sVideoPos.V_Pos;
}
void Set_OSD_H()
{
sOSD.H_Pos = ItemValue.value;
byMTV_HORD=sOSD.H_Pos;
}
void Set_OSD_V()
{
sOSD.V_Pos = ItemValue.value;
byMTV_VERTD=sOSD.V_Pos;
}
void Disp_WhiteLimiter(void)
{
code BYTE progress[4] ={0,7,4,WHITELIMITE};
ProgressSelect(progress);
}
void Disp_BlackLimiter(void)
{
code BYTE progress[4] ={0,7,4,BLACKLIMITE};
ProgressSelect(progress);
}
void Set_WhiteLimiter(void)
{
sGamma.WhiteLimit = ItemValue.value;
CS7111_Write(0x06,((sGamma.WhiteLimit&0x0F)<<4)|(sGamma.BlackLimit&0x0F));
}
void Set_BlackLimiter()
{
sGamma.BlackLimit = ItemValue.value;
CS7111_Write(0x06,((sGamma.WhiteLimit&0x0F)<<4)|(sGamma.BlackLimit&0x0F));
}
void Disp_Input_Mode()
{
CloseWindow(1);
byMTV_HORD=sOSD.H_Pos;
byMTV_VERTD=sOSD.V_Pos;
EnableOSDRAMClr();
DisableOSD();
gotoxy(22,0);
#if 0
if(bNTSCVideo)
PrintString(NTSCMode_Str,sizeof(NTSCMode_Str),Yellow);
else
PrintString(PALMode_Str,sizeof(NTSCMode_Str),Yellow);
#else
switch(byVideoMode)
{
case NoVideoInout:
PrintString(NoSignal,sizeof(NoSignal),Yellow);
break;
case NTSC358:
PrintString(NTSCMode_Str,sizeof(NTSCMode_Str),Yellow);
break;
case NTSC443:
PrintString(NTSC443_Str,sizeof(NTSC443_Str),Yellow);
break;
case PAL443:
PrintString(PALMode_Str,sizeof(PALMode_Str),Yellow);
break;
case PALM:
PrintString(PALM_Str,sizeof(PALM_Str),Yellow);
break;
case PALN:
PrintString(PALN_Str,sizeof(PALN_Str),Yellow);
break;
case SECAM:
PrintString(SECAM_Str,sizeof(SECAM_Str),Yellow);
break;
}
#endif
//gotoxy(0,3);
//DoubleWidthPrintString(DWNTSCMode,7,Yellow);
EnableOSD();
//bMenuFlag = 1;
OsdTimer = 500;
MenuProcess = Disp_Entry;
}
/*
void Disp_VideoPosition()
{
code BYTE itembar[] = {0,1,15,9};
code void (*menu[])(void) =
{
Disp_HPosition,
Disp_VPosition,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -