📄 menu.c
字号:
Set_ReverseYFlag();
Osd_SetPosition(moveX, moveY);
}
}
if ((BLTime%1800)==0)
{ SaveBlackLitTime();
// if (FactoryModeFlag && MenuPageIndex==MainMenu) ;
// DrawTimingInfo();
}
#endif
}
//////////////////////////////////fendy///
void UpDownLeftButton(MenuItemActionType menuAction)
{BYTE Dalta=1;//this Dalta is because PrevMenuPge and NextMenuPage is cannot be modify!!
if(menuAction==MIA_GotoNext)
{ if(MenuPageIndex!=MainMenu)
{
if((MenuPageIndex==FunctionMenu+1)&&(SrcInputType==Input_Digital)) Dalta= 0; //for dvi Functionmenu disable
ClearButton_LEFT(PrevMenuPage-7+Dalta-1);
DrawButton_LEFT(MenuPageIndex-7);
}
else
{ ClearButton_LEFT(5); //last item
DrawButton_LEFT(0); // first item
}
DrawOsdMenuItemText(1, &tblMenus[PrevMenuPage+Dalta-1].MenuItems[0]); //unselected item
DrawOsdMenuItemValue(1, tblMenus[PrevMenuPage+Dalta-1].MenuItems[0].DisplayValue);
}
else
{ if(MenuPageIndex==ExitMenu)
{
ClearButton_LEFT(0);
DrawButton_LEFT(5); //last item
}
else
{ if((MenuPageIndex==FunctionMenu-1)&&(SrcInputType==Input_Digital)) Dalta=2;//for dvi
ClearButton_LEFT(NextMenuPage-7+Dalta-1);
DrawButton_LEFT(MenuPageIndex-7);
}
DrawOsdMenuItemText(1, &tblMenus[NextMenuPage+Dalta-1].MenuItems[0]);
DrawOsdMenuItemValue(1, tblMenus[NextMenuPage+Dalta-1].MenuItems[0].DisplayValue);
}
DrawOsdMenuItemText(0, &CurrentMenu.MenuItems[0]);
DrawOsdMenuItemValue(0, CurrentMenu.MenuItems[0].DisplayValue); //select item
}
//==================================fendy add
//////////////////////
Bool ExecuteKeyEvent(MenuItemActionType menuAction)
{ Bool processEvent=TRUE;
BYTE tempValue = 0;
// BYTE tempValue1=0;
Bool boolPage1,boolPage2, boolPage3,boolPage4, boolPage5;//
while (processEvent )
{ processEvent=FALSE;
switch (menuAction)
{ case MIA_IncValue:
case MIA_DecValue:
if (CurrentMenuItemFunc.AdjustFunction)
{ if (CurrentMenuItemFunc.AdjustFunction(menuAction))
{
// Osd_SetTextColor(CurrentMenuItem.SelForeColor, CurrentMenuItem.SelBackColor);//vick add
boolPage1=(MenuPageIndex==MainMenu)&&((MenuItemIndex==3)||(MenuItemIndex==4)); //gamm colortemp
boolPage2=(MenuPageIndex==PictureMenu)&&(MenuItemIndex==5);//sharpness
boolPage3=(MenuPageIndex==FunctionMenu)&&((MenuItemIndex==1)||(MenuItemIndex==2)); //AutoAdjust Adjust color
boolPage4=(MenuPageIndex==OsdSetMenu)&&(MenuItemIndex==4); //osd TIME
boolPage5=(MenuPageIndex==MiscellaneousMenu)&&((MenuItemIndex==1)||(MenuItemIndex==2)); //AutoAdjust Adjust color
if(boolPage1||boolPage2||boolPage3||boolPage4||boolPage5) //Adjust color
{
;
}
else
DrawOsdMenuItemValue(MenuItemIndex, CurrentMenuItem.DisplayValue);
Set_SaveSettingFlag();
}
}
break;
case MIA_GotoAdjustOSDtTime:
if((MenuPageIndex==OsdTimeMenu)&&(MenuItemIndex==1))//OsdTimeMenu item-->item1
{ if(!OsdTimeOfflag)
{ StauIndex0=2;
if (FreeRunModeFlag) break;
menuAction=MIA_RedrawMenu;
MenuPageIndex=OsdTimeSubMenu;
MenuItemIndex=1;
processEvent=TRUE;
}
else
{
StauIndex0=1; //;//flag from item adjuest back to Item
MenuPageIndex=OsdSetMenu;
MenuItemIndex=4;
Osd_SetTextColor(CP_SoftLowGreenColor, CP_SoftLowGreenColor);
Osd_DrawStr(25, 10, RightSpace14);
Osd_SetTextColor(CP_BlackColor, CP_SoftLowGreenColor);
Osd_DrawPropStr(34,10,OFFText());
Osd_DrawPropStr(28,10,ONText());
}
}
break;
case MIA_GotoYesNOItem:
if(StauIndex0==3)
{
StauIndex0=1; //from yesno select back
if(MenuPageIndex==FunctionMenu)
{
if((MenuItemIndex==1)&&(StauIndex1==0)) AutoColor(); //Auto Adjust
if((MenuItemIndex==2)&&(StauIndex1==0)) AutoConfig();//yes//Auto Adjust
Select_YesNO_AutoAdjustUP(MIA_GotoYesNOItem);
}
if(MenuPageIndex==MiscellaneousMenu)//reset
{
if((MenuItemIndex==2)&&(StauIndex1==0))
{
ResetAllSetting();
DrawOsdMenuItem(3, &CurrentMenu.MenuItems[3]);//Volumn
}
}
//RETURN BACK auto adjust and reset!! together//RETURN BACK
Select_YesNO_AutoAdjustDown(MIA_GotoYesNOItem);
}
break;
case MAI_EnterAdRGB:
if((MenuPageIndex==MainMenu)&&(MenuItemIndex==5))//Color Adjust
{
MenuPageIndex=TUserColorMenu;
ClearWindow1();
MenuItemIndex=1;
DrawButton_RIGHT(0);
DynamicLoadFont(SubMenuFontAddr, CurrentMenu.Fonts);
for (tempValue=1; tempValue<MenuItemCount; tempValue++)
DrawOsdMenuItem(tempValue, &CurrentMenu.MenuItems[tempValue]);
mStar_WriteOSDByte(SUBW0C, 0x00);
}
break;
case MIA_EnterLangSelect:
if((MenuPageIndex==OsdSetMenu)&&(MenuItemIndex==1))//Color Adjust
{
MenuPageIndex=LanguageMenu;
ClearButton_RIGHT(0);
ClearWindow1();
mStar_WriteOSDByte(SUBW0C, 0x00);
MenuItemIndex=UserPrefLanguage+1;
DrawButton_RIGHT(UserPrefLanguage);
DynamicLoadFont(SubMenuFontAddr, CurrentMenu.Fonts);
for (tempValue=1; tempValue<MenuItemCount; tempValue++)
DrawOsdMenuItem(tempValue, &CurrentMenu.MenuItems[tempValue]);
}
break;
case MIA_EnterAdjuSelect:
if(StauIndex0==1) StauIndex0=2; //;//flag enter item adjuest
if((MenuPageIndex==MainMenu)&&(MenuItemIndex==3)) tempValue=1; //Gamma
if((MenuPageIndex==MainMenu)&&(MenuItemIndex==4)) tempValue=2; //color temp
if((MenuPageIndex==PictureMenu)&&(MenuItemIndex==5)) tempValue=3; //SHARPNESS
if((MenuPageIndex==FunctionMenu)&&(MenuItemIndex==1)) tempValue=4; //Auto Adjust
if((MenuPageIndex==FunctionMenu)&&(MenuItemIndex==2)) tempValue=5; //Auto COLOR
if((MenuPageIndex==OsdSetMenu)&&(MenuItemIndex==4)) tempValue=6; //OSD Timer
if((MenuPageIndex==MiscellaneousMenu)&&(MenuItemIndex==1)) tempValue=7;//mode select
if((MenuPageIndex==MiscellaneousMenu)&&(MenuItemIndex==2)) tempValue=8; //reset
switch(tempValue)
{
case 1: mStar_SetGamma(MIA_EnterAdjuSelect);// become current value into red
break;
case 2: mStar_SetColorTemp(MIA_EnterAdjuSelect);
break;
case 3: mStar_SetSharpness(MIA_EnterAdjuSelect);
break;
case 4: StauIndex1=1;//default value is no, NO IS redCOLOR
Select_YesNO_AutoAdjustUP(MIA_EnterAdjuSelect);
break;
case 5: StauIndex1=1;//default value is no, NO IS redCOLOR
Select_YesNO_AutoAdjustDown(MIA_EnterAdjuSelect);
break;
case 6:
StauIndex0=1;
if (FreeRunModeFlag) break;
menuAction=MIA_RedrawMenu;
MenuPageIndex=OsdTimeMenu;
MenuItemIndex=1;
processEvent=TRUE;
break;
case 7:
StauIndex1=1;//default value is no, 640 480 IS redCOLOR
Osd_SetTextColor(CP_RedColor, CP_SoftLowGreenColor);
Osd_DrawPropStr(26, 4,TextModeText());
break;
case 8: StauIndex1=1;//default value is no, NO IS redCOLOR
Select_YesNO_AutoAdjustDown(MIA_EnterAdjuSelect);
break;
default : // tempValue ==0 normal slider ,when select it, it's number color become into red
DrawOsdMenuItemNumber(MenuItemIndex, MenuItemDisplayValue->DrawNumber);
// if(MenuItemIndex==2)
// printData("draw menu %d", MenuPageIndex);
// printData("222Item %d", MenuItemIndex);
break;
}
break;
case MIA_GotoBackPage:
if(StauIndex0==1) ClearButton_RIGHT(MenuItemCount-2); //right last item
MenuItemIndex=0;// must equate 0 for select up or dowm Page
DrawOsdMenuItem(MenuItemCount-1, &CurrentMenuItems[MenuItemCount-1]);
StauIndex0=0;//mainpage station
break;
case MIA_GotoBackAdjustRGB:
MenuPageIndex=MainMenu;
MenuItemIndex=5;
ClearWindow1();
mStar_WriteOSDByte(SUBW0C, 0x00);
DynamicLoadFont(CurrentMenu.FontAddr, CurrentMenu.Fonts);
DrawButton_RIGHT(MenuItemIndex-1);
for (tempValue=1; tempValue<MenuItemCount; tempValue++)
DrawOsdMenuItem(tempValue, &CurrentMenu.MenuItems[tempValue]);
DrawButton_LEFT(0);
DrawOsdMenuItemText(MenuItemIndex, &tblMenus[MainMenu].MenuItems[0]);
//
break;
case MIA_GotoBackItem:
if(StauIndex0==2) StauIndex0=1; //;//flag from item adjuest back to Item
if((MenuPageIndex==MainMenu)&&(MenuItemIndex==3)) tempValue=1; //Gamma
if((MenuPageIndex==MainMenu)&&(MenuItemIndex==4)) tempValue=2; //color temp
if((MenuPageIndex==OsdTimeSubMenu)&&(MenuItemIndex==1)) tempValue=3; //OsdTimeMenu item-->item1
if((MenuPageIndex==MiscellaneousMenu)&&(MenuItemIndex==1)) tempValue=4; //mode select
if((MenuPageIndex==MiscellaneousMenu)&&(MenuItemIndex==2)) tempValue=5; //reset
if((MenuPageIndex==TUserColorMenu)&&(MenuItemIndex!=4)) tempValue=6; //color Adjust -->exit item
switch(tempValue)
{case 1: mStar_SetGamma(MIA_GotoBackItem);// back into black
break;
case 2: mStar_SetColorTemp(MIA_GotoBackItem);
break;
case 3:
MenuPageIndex=OsdSetMenu;
MenuItemIndex=4;
Osd_SetTextColor(CP_SoftLowGreenColor, CP_SoftLowGreenColor);
Osd_DrawStr(25, 10, RightSpace14);
Osd_SetTextColor(CP_BlackColor, CP_SoftLowGreenColor);
Osd_DrawPropStr(34,10,OFFText());
Osd_DrawPropStr(28,10,ONText());
break;
case 4: Osd_SetTextColor(CP_BlackColor, CP_SoftLowGreenColor);
Osd_DrawPropStr(26, 4,TextModeText());
Osd_DrawPropStr(32, 4,PictureModeText());
break;
case 5:
Osd_SetTextColor(CP_BlackColor, CP_SoftLowGreenColor);
Osd_DrawPropStr(28,6,YesText());
Osd_DrawPropStr(34,6,NOText());
break;
case 6: // 数字为黑色
DrawOsdMenuItemValue(4, CurrentMenuItem.DisplayValue); //
default: DrawOsdMenuItemValue(0, CurrentMenuItem.DisplayValue); //
break;
}
break;
case MIA_SUBNextItem:// ENTER RIGHT item
if ((StauIndex0==0)&&(MenuPageIndex!=ExitMenu))
{
StauIndex0=1;//flag enter item
//ClearButton_LEFT(MenuPageIndex-7);
if((MenuPageIndex==PictureMenu)&&(SrcInputType==Input_Digital))//&&(CurrentMenuItem[MenuItemIndex].Flags&mibDVIDisable))//)
{ DrawButton_RIGHT(4);
MenuItemIndex=5;// must equate 1 for select up or dowm Item //fendy for DVI
}
else { DrawButton_RIGHT(0);
MenuItemIndex=1;// must equate 1 for select up or dowm Item
}
DrawOsdMenuItemText(MenuItemIndex, &CurrentMenuItem);
}
break;
case MIA_NextItem:
case MIA_PrevItem:
if((StauIndex0==1)&&(MenuPageIndex!=FactoryMenu))
{
tempValue=MenuItemIndex;
if((MenuPageIndex==PictureMenu)&&(SrcInputType==Input_Digital))//&&(CurrentMenuItem[MenuItemIndex].Flags&mibDVIDisable))//)
{
MenuItemIndex=(tempValue ==5)?(6):(5); //fendy for DVI
}
else{
if (menuAction==MIA_NextItem)
MenuItemIndex=( tempValue <MenuItemCount-1)?(tempValue+1):(1);
else
MenuItemIndex=(tempValue >1)?(tempValue-1):(MenuItemCount-1);
}
if (tempValue!=MenuItemIndex)
{
ClearButton_RIGHT(tempValue-1); // for can right enter Item, this is inportant
DrawOsdMenuItem(tempValue, &CurrentMenuItems[tempValue]);
DrawButton_RIGHT(MenuItemIndex-1);// for can right enter Item, this is inportant
DrawOsdMenuItemText(MenuItemIndex, &CurrentMenuItem);
}
}
//====================================================
if (MenuPageIndex==FactoryMenu)
{
tempValue=MenuItemIndex;
if (menuAction==MIA_NextItem)
MenuItemIndex=( tempValue <MenuItemCount-2)?(tempValue+1):(1);
else
MenuItemIndex=(tempValue >1)?(tempValue-1):(MenuItemCount-2); //"F"
if (tempValue!=MenuItemIndex)
{
DrawOsdMenuItem(tempValue, &CurrentMenuItems[tempValue]);
DrawOsdMenuItem(MenuItemIndex, &CurrentMenuItem);
}
if(MenuItemIndex==15)
SetColorTemperature9300K();
if(MenuItemIndex==22)
SetColorTemperature6500K();
if(MenuItemIndex==29)
SetColorTemperature5800K();
}
break;
case MIA_JumpAdjustItem:
case MIA_JumpNaviItem:
tempValue=MenuItemIndex;
MenuItemIndex+=((menuAction==MIA_JumpAdjustItem)?(1):(-1));
DrawOsdMenuItem(tempValue, &CurrentMenuItems[tempValue]);
DrawOsdMenuItem(MenuItemIndex, &CurrentMenuItem);
break;
case MIA_ExecGotoNext:
if(CurrentMenuItemFunc.ExecFunction)
{
if(MenuPageIndex==LanguageMenu&&UserPrefLanguage!=MenuItemIndex)
ClearWindow1();
mStar_WriteOSDByte(SUBW0C, 0x00);
CurrentMenuItemFunc.ExecFunction();
}
menuAction = MIA_GotoNext;
case MIA_GotoNext:
case MIA_GotoPrev:
MenuItemIndex=0;//GetMenuItemIndex(tempValue);
tempValue=MenuPageIndex;
if (SrcInputType==Input_Digital)//fendy for dvi FunctionMenu disable
{
if(( MenuPageIndex==FunctionMenu-1)&&(menuAction==MIA_GotoNext)) MenuPageIndex=FunctionMenu;
if(( MenuPageIndex==FunctionMenu+1)&&(menuAction==MIA_GotoPrev)) MenuPageIndex=FunctionMenu;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -