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

📄 ui.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 3 页
字号:
						old_key = key;
						break;
			  }
		 }
	
		 L2_SetGPIOBit(19,0);
		 L2_SetGPIOBit(20,0);
		 L2_SetGPIOBit(21,0);
	
     #else
	
		 if ((pressing_key == K_ReleaseKey) || (pressing_key == 0x04))
		 {
			  Key_Column1 = 1;	  //Scan Display,Menu,Snap1,Snap2
			  Key_Column2 = 0;
			  //Joe@2003.3.7 13:42 add begin
			  Key_Column3 = 0;
			  //Joe@2003.3.7 13:42 add end
	
			  L2_GetGPIOByte(25,&temp_key);
	
			  //DbgPrint("Read key value = %bx\n",temp_key);
	
			  temp_key &= 0x1e;
	
			  if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Display Key
			  {
				   DelayBase(100);
				   L2_GetGPIOBit(25,&temp_key);
	
				   if (temp_key == 0x02)
				   {
							pressing_key = 0x01;
							return;
							//DbgPrint("Display Key pushed!\n");
				   }
			  }
			  else
			  {
				   if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))   //Check Menu Key
				   {
						DelayBase(100);
						L2_GetGPIOBit(26,&temp_key);
	
						if (temp_key == 0x04)
						{
									pressing_key = 0x02;
									return;
									//DbgPrint("Menu Key pushed!\n");
						}
				   }
				   else
				   {
						if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))	 //Check Snap1 Key
						{
							 DelayBase(20);
							 L2_GetGPIOBit(27,&temp_key);
	
							 if (temp_key == 0x08)
							 {
											pressing_key = 0x04;
											return;
											//DbgPrint("Snap1 Key pushed!\n");
							 }
						}
						else
						{
							 //Joe@2003.3.7 12:35 modify begin
							 //if ((temp_key == 0x18) && (pressing_key == K_Snap1Key)) //Check Snap2 Key
							 if ( ((temp_key == 0x18) && (pressing_key == K_Snap1Key)) ||
								  ((temp_key == 0x10) && (pressing_key == K_ReleaseKey)) )
							 //Joe@2003.3.7 12:35 modify end
							 {
								  DelayBase(100);
								  L2_GetGPIOBit(28,&temp_key);
	
								  if (temp_key == 0x10)
								  {
											pressing_key = 0x08;
											return;
											//DbgPrint("Snap2 Key pushed!\n");
								  }
							 }
						}
				   }
			  }
	
			  Key_Column1 = 0;
			  Key_Column2 = 1;	  //Scan Left,Up,Right,Down
			  //Joe@2003.3.7 13:42 add begin
			  Key_Column3 = 0;
			  //Joe@2003.3.7 13:42 add end
	
			  L2_GetGPIOByte(25,&temp_key);
	
			  temp_key &= 0x1e;
	
			  if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Left Key
			  {
				   DelayBase(100);
				   L2_GetGPIOBit(25,&temp_key);
	
				   if (temp_key == 0x02)
				   {
							pressing_key = 0x10;
							return;
							//DbgPrint("Left Key pushed!\n");
				   }
			  }
			  else
			  {
				   if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))	//Check Up Key
				   {
						DelayBase(100);
						L2_GetGPIOBit(26,&temp_key);
	
						if (temp_key == 0x04)
						{
									pressing_key = 0x20;
									return;
									//DbgPrint("UP Key pushed!\n");
						}
				   }
				   else
				   {
						if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))	 //Check Right Key
						{
							 DelayBase(100);
							 L2_GetGPIOBit(27,&temp_key);
	
							 if (temp_key == 0x08)
							 {
									pressing_key = 0x40;
									return;
									//DbgPrint("Right Key pushed!\n");
							 }
						}
						else
						{
							 if ((temp_key == 0x10) && (pressing_key == K_ReleaseKey))	  //Check Down Key
							 {
								  DelayBase(100);
								  L2_GetGPIOBit(28,&temp_key);
	
								  if (temp_key == 0x10)
								  {
											pressing_key = 0x80;
											return;
											//DbgPrint("Down Key pushed!\n");
								  }
							 }
						}
				   }
			  }
	
		  //Joe@2003.3.5 11:20 add begin
			  Key_Column1 = 0;
			  Key_Column2 = 0;	  //Scan Preview/Playback key, Flash key
			  //Joe@2003.3.7 13:41 add begin
			  Key_Column3 = 1;
			  //Joe@2003.3.7 13:41 add end
	
			  L2_GetGPIOByte(25,&temp_key);
	
			  temp_key &= 0x1e;
	
			  if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))   //Check Preview/Playback Key
			  {
				   if (key != temp_key)
				   {
						key = temp_key;
						return;
				   }
				   else
				   {
						pressing_key = K_ModeKey;
						old_key = key;
						return;
				   }
			  }
			  else
			  {
				   if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))	//Check Flash Key
				   {
						if (key != temp_key)
						{
							 key = temp_key;
							 return;
						}
						else
						{
							 pressing_key = K_FlashKey;
							 old_key = key;
							 return;
						}
				   }
			  }
		//Joe@2003.3.5 11:20 add end
		 }
	
		 //Check if all 8 keys are released
		 if (pressing_key > 0x00)
		 {
			  if (pressing_key <= 0x08) 	//Check Display,Menu,Snap1,Snap2
			  {
				   Key_Column1 = 1;
				   Key_Column2 = 0;
				   //Joe@2003.3.7 13:43 add begin
				   Key_Column3 = 0;
				   //Joe@2003.3.7 13:43 add end
	
				   L2_GetGPIOByte(25,&temp_key);
				   temp_key &= 0x1e;
	
				   if (temp_key == 0x00)
				   {
						DelayBase(100);
						L2_GetGPIOByte(25,&temp_key);
						temp_key &= 0x1e;
	
						if (temp_key == 0x00)
						{
									pressing_key = 0x00;
									return;
									//DbgPrint("All Keys Released!\n");
						}
				   }
			  }
			  //Joe@2003.3.5 12:45 modify begin
			  //else //pressing_key >= 0x10,Check Left,Up,Right,Down
			  else if (pressing_key <= 0x80)	//Check Left,Up,Right,Down
			  //Joe@2003.3.5 12:45 modify end
			  {
				   Key_Column1 = 0;
				   Key_Column2 = 1;
				   //Joe@2003.3.7 13:43 add begin
				   Key_Column3 = 0;
				   //Joe@2003.3.7 13:43 add end
	
				   L2_GetGPIOByte(25,&temp_key);
				   temp_key &= 0x1e;
	
				   if (temp_key == 0x00)
				   {
						DelayBase(100);
						L2_GetGPIOByte(25,&temp_key);
						temp_key &= 0x1e;
	
						if (temp_key == 0x00)
						{
									pressing_key = 0x00;
									return;
									//DbgPrint("All Keys Released!\n");
									//G_IsKeyRelease = 0; //yichang
						}
				   }
			  }
	
			  //Joe@2003.3.5 12:46 add begin
			  else if (pressing_key > 0x80) //Check Preview/Playback,Flash
			  {
				   Key_Column1 = 0;
				   Key_Column2 = 0;
				   //Joe@2003.3.7 13:42 add begin
				   Key_Column3 = 1;
				   //Joe@2003.3.7 13:42 add end
	
				   L2_GetGPIOByte(25,&temp_key);
				   temp_key &= 0x1e;
	
				   if (temp_key == 0x00)
				   {
						if (key != temp_key)
						{
							 key = temp_key;
							 return;
						}
						else
						{
							 pressing_key = K_ReleaseKey;
							 old_key = key;
							 return;
						}
				   }
			  }
			  //Joe@2003.3.5 12:46 add end
		 }
     #endif
	}
//=============================================================================
//UI_Get_Hardware_Keypad2
//=============================================================================
UCHAR UI_Get_Hardware_Keypad2(void) USING_0
{
     UCHAR temp_key;
     UCHAR keymode = 0;

     L2_GetGPIOBit(28,&temp_key);
     if (temp_key == 0x10)
     {
          DelayBase(100);
          L2_GetGPIOBit(28,&temp_key);

          if (temp_key == 0x10)
          {
               keymode |= 0x01;
          }
     }

     L2_GetGPIOBit(27,&temp_key);
     if (temp_key == 0x08)
     {
          DelayBase(100);
          L2_GetGPIOBit(27,&temp_key);

          if (temp_key == 0x08)
          {
               keymode |= 0x02;
          }
     }

     L2_GetGPIOBit(26,&temp_key);
     if (temp_key == 0x04)
     {
          DelayBase(100);
          L2_GetGPIOBit(26,&temp_key);

          if (temp_key == 0x04)
          {
               keymode |= 0x04;
          }
     }

     L2_GetGPIOBit(25,&temp_key);
     if (temp_key == 0x02)
     {
          DelayBase(100);
          L2_GetGPIOBit(25,&temp_key);

          if (temp_key == 0x02)
          {
               keymode |= 0x08;
          }
     }
	//Davis:patch5.0.0.5_2005/Jul/19
	 //增加gpio35检测第五种模式选择
     L2_GetGPIOBit(35,&temp_key);
     if (temp_key  /*== 0x01*/)
     {
          DelayBase(100);
          L2_GetGPIOBit(35,&temp_key);
          if (temp_key  /*== 0x01*/)
          {
               keymode |= 0x10;
          }
     }

     switch (keymode)
     {
/*          case 0x00:
               return K_RotarySwitchMode0;      //mode 0
*/
          case 0x01:
			  old_Audeokey=0;//wendy
               return K_RotarySwitchMode0;      //mode 1

          case 0x02:
			  old_Audeokey=0;//wendy
               return K_RotarySwitchMode1;      //mode 2

          case 0x04:
			  old_Audeokey=0;//wendy
               return K_RotarySwitchMode2;      //mode 3

          case 0x08:
			  old_Audeokey=0;//wendy
               return K_RotarySwitchMode3;      //mode 4     
/*	//Davis:patch5.0.0.5_2005/Jul/19
	   case 0x00:
	   	if(old_Audeokey==10)
			return K_RotarySwitchMode4; 	 //mode 5
		else
			old_Audeokey++;	
		return K_RotateSwitchUnknownMode;	//unknown mode
		//*/
		//Davis:patch5.0.0.5_2005/Jul/19 当检测到GPIO35,进入第五种模式
	   case 0x10:
	   	old_Audeokey=0;
		return K_RotarySwitchMode4;
/*
          case 0x09:
               return K_RotarySwitchMode6;      //mode 6

          case 0x0c:
               return K_RotarySwitchMode7;      //mode 7
               */

          default:
          	old_Audeokey=0;
               return K_RotateSwitchUnknownMode;   //unknown mode
     }
}

//=============================================================================
//DelayBase(unsigned char times)
//=============================================================================
void DelayBase(unsigned char times) USING_0
{
        //unsigned char  i,j;

        times = times + 1 ;

        while(times > 0)
        {
                //for(i = 0 ; i < 100 ; i ++)
                        //for(j = 0 ; j < 5 ; j ++);

                times--;
        }
}
//-------------------Davis:patch4.0.0.1_2005/Jun/15 begin
UCHAR UI_Get_Foucs (void) 
{
	UCHAR isDetHigh;
	L2_ConfigGPIOBit(31,0);
	L2_GetGPIOBit( 31,&(isDetHigh) );
	return isDetHigh > 0 ? 1 : 0;
}
UCHAR UI_DispFoucsIcon(void) USING_0
{
	if(UI_Get_Foucs()){
		L2_SetFOSDIndex(0,5,0x2a);
		L2_SetFOSDAttr(0,5, UI_MENU_DEHIGHLIGHT_COLOR);
		L2_SetFOSDIndex(0,6,0x2b);
		L2_SetFOSDAttr(0,6, UI_MENU_DEHIGHLIGHT_COLOR);	
	}else{
		UI_PrintOSDString("  ",5, 0, UI_MENU_DEHIGHLIGHT_COLOR);
		L2_SetFOSDIndex(0,5,0x5b);
		L2_SetFOSDAttr(0,5, UI_MENU_DEHIGHLIGHT_COLOR);		
	}
	return 0;
}
UCHAR UI_Get_FoucsSwitch (void) 
{
	static UCHAR focus_status=2;
	UCHAR focusTmp=UI_Get_Foucs();
	if(focusTmp != focus_status){
		focus_status=focusTmp;
		UI_DispFoucsIcon();
	}
	return 0;
}
//-------------------Davis:patch4.0.0.1_2005/Jun/15 end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -