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

📄 menu.c

📁 完整的软件学习--显示器驱动视频软件
💻 C
📖 第 1 页 / 共 5 页
字号:
            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 + -