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

📄 keypad.c

📁 T118B驱动TFT屏的源程序,已通过编译和调试
💻 C
📖 第 1 页 / 共 2 页
字号:
    case 1:	cKey=P1; break;
    case 2: cKey=P2; break;
    case 3: cKey=P3; break;
    }
    return cKey;
}


extern bit m_bAdjRGBColor;
bit kyFindEvent(void)
{
	if(m_cCurreKey==kySOURCE)
  	{
   	    return IRSourceSelKeyCtrl_ADD();//IRSourceSelKeyCtrl();//kyEXITEvent();
	}
	else if(m_cCurreKey==kyMENU)
 	{
		return kyMENUEvent();
	}
	else if(m_cCurreKey==kyINCREASE)
  	{
		return kyINCREASEEvent();
	}
 	else if(m_cCurreKey==kyDECREASE)
  	{
		return kyDECREASEEvent();
	}
	else if(m_cCurreKey==kyEXIT)
	{
        if(m_cOSDFunc == 0)
		{
		    return IRNTSC_PALCtrl();
		}
		else
		{
            return IRDownKeyCtrl();
		}  

	}
	else if(m_cCurreKey==kyPOWER)
	{
 		return kyPOWEREvent();
	}
	
	else if(m_cCurreKey==KEY_UP)
			{
                         return IRDownKeyCtrl();
			}
	else if(m_cCurreKey==key_panel)
		{

          return  KEY_SELECE_LCD();

		}
}

//Ruby add 2004-06-07
bit kySCALEREvent(void)
{
	uCHAR SlaveAddr,RegAddrShift; 
	m_cScaleratio++;
	if(m_cScaleratio>=ScaleEnd)
	 	m_cScaleratio=ScaleFULL;
#ifdef T515
	if(m_cSource >= isrc_T515_CVIDEO1){
		 SlaveAddr=0xb8;
		 RegAddrShift=0x20;
	}else{
		 SlaveAddr=0x54;
		 RegAddrShift=0x00;
	}	
#else
	SlaveAddr=0x54;
	RegAddrShift=0x00;	
#endif			

	if(I2CReadByte(SlaveAddr, 0x3A+RegAddrShift)&0x06){
		SetOPTiming();	// Add by Sherman 05'11'18
		OSDShowRatio();
   	}
   	return 1;
}

bit kyMENUEvent(void)
{
	if(m_bKyBlocked)
		return 0;
	         /*           if(menu_flag==0)
			{//OSDReadData(m_cOSDMenu);
			OSDOpenMenu();
			//m_cItem++;
			menu_flag=1;}
			else{
			//	OSDShowPage1();
				OSDClearCursor();
				m_cItem++;
				if((m_cItem)>=3){
				//menu_flag=0;
 			      m_cItem=0 ;
			//	m_cOSDMenu==idNULLMENU;
			//	OSDDisable();
				}

		      		OSDMoveCursor();
		//	}
		}*/
			if(fMenuOpen==0){
				    m_cOSDMenu=idVIDEOMENU;
				    m_cOSDFunc=idBRIGHTMENU;
				    m_cOSDEvent=OPENMENU;
				    m_cItem=1;
					//menu_flag=2;
					fMenuOpen=1;				
			}
			else{
				m_cOSDEvent=FUNCSELCT_IN;
			}
/*
		switch(menu_flag)//m_cOSDMenu)
		{
			case	1://idNULLMENU:
				   // m_cOSDMenu=idVIDEOMENU;
				   // m_cOSDFunc=idBRIGHTMENU;
				   // m_cOSDEvent=OPENMENU;
				    m_cItem=1;
					menu_flag=2;break;
			case    2:
				   //m_cOSDMenu=idVIDEOMENU;
				    //m_cOSDFunc=idCONTRASTMENU;
				    m_cOSDEvent=FUNCSELCT_IN;
				  //  m_cItem=2;
					menu_flag=3;break;	
				case   3:
				  // m_cOSDMenu=idVIDEOMENU;
				   // m_cOSDFunc=idRGBMENU;
				   m_cOSDEvent=FUNCSELCT_IN;
				    //m_cItem=3;
					menu_flag=1;break;	

                    
#ifdef TV
			case	idVIDEOMENU:
			        if((m_cSource&0x0F)==(isrcTV))
					{
				        m_cOSDMenu=idTVMENU;m_cOSDFunc=idBRIGHTMENU;m_cOSDEvent=OPENMENU;m_cItem=1;break;} 
					else
					    {m_cOSDMenu=idNULLMENU;m_cOSDFunc=0;m_cOSDEvent=CLOSEMENU;m_cItem=0;break;} 

#endif

			default:
				    m_cOSDMenu=idNULLMENU;m_cOSDFunc=0;m_cOSDEvent=CLOSEMENU;m_cItem=0;break;
				  // m_cOSDMenu=idVIDEOMENU;m_cOSDFunc=idBRIGHTMENU;m_cOSDEvent=OPENMENU;m_cItem=1;menu_flag=2;break;
         
   	    }
 */
		return 1;

}

/*bit kyMENUEvent(void)
{
	if(m_bKyBlocked)
		return 0;

		switch(m_cOSDFunc)
		{
			case	0:
					m_cOSDFunc=idBRIGHTMENU;m_cOSDEvent=FUNCENTER;m_cItem=1;break;
			case	idBRIGHTMENU:
					m_cOSDFunc=idCONTRASTMENU;m_cOSDEvent=FUNCENTER;m_cItem=2;break;
			case	idCONTRASTMENU:
					m_cOSDFunc=idSHARP_VIDEO;m_cOSDEvent=FUNCENTER;m_cItem=3;break;
			case	idSHARP_VIDEO:
					{
						m_cOSDFunc=idSATMENU_VIDEO;
						m_cOSDEvent=FUNCENTER;
						m_cItem=4;
					}
					break;
			case	idSATMENU_VIDEO:
					m_cOSDFunc=idHUEMENU_VIDEO;m_cOSDEvent=FUNCENTER;m_cItem=5;break;
			case	idHUEMENU_VIDEO:
					m_cOSDEvent=CLOSEMENU;m_cItem=1;break;
		}
		return 1;

}*/

bit kyINCREASEEvent(void)
{
	if(m_bKyBlocked) return 0;
	if(!m_cOSDFunc&&m_bFactryMode) return 0;

	if(m_cOSDFunc==0)
		{
#ifdef TV
			if((m_cSource&0x0F)==(isrcTV))
			{
				return IRUpKeyCtrl();//0;
			}
#endif
		}
  		else
			m_cOSDEvent=FUNCADJ_IN;
	return 1;
}

bit kyDECREASEEvent(void)
{
	if(m_bKyBlocked) return 0;
	if(!m_cOSDFunc&&m_bFactryMode) return 0;

	if(m_cOSDFunc==0)
		{
#ifdef TV
			if((m_cSource&0x0F)==(isrcTV))
			{
				return IRDownKeyCtrl();//0;
			}
#endif
		}
  		else
			m_cOSDEvent=FUNCADJ_DN;
	return 1;
}
#if 0 
bit kyEXITEvent(void)
{
	if(m_bKyBlocked) return 0;

	if(m_cOSDEvent && (m_cOSDEvent!=FUNCOUNT))
		m_cOSDEvent=FUNCEXIT;
	else
	{
		if(m_bFactryReady)
		{
			m_bFactryReady=0;
			m_cFactryCnt=0;
		}
		else
		{
			m_cFactryCnt++;
       	if(m_cFactryCnt==3)
			{
          	m_bFactryReady=1;
			}
		}
		m_cOSDEvent=FUNCOUNT;
	}
	return 1;
}
#endif
bit KEY_SELECE_LCD(void)
{
static  bit flag_p;
  OSDClearPage();
FLAG_I2C=!FLAG_I2C;
   flag_p=!flag_p;
     m_wAccelPollCnt=0;
	m_cCurreKey=m_cPreKey=0xFF;
	m_cOSDEvent=FUNCADCCAL;
	m_cOSDFunc=0;
	m_cOSDMenu=idNULLMENU;
	m_cItem=1;
	comp_key=0;
//m_cOSDMenu=idNULLMENU;m_cOSDFunc=0;m_cOSDEvent=CLOSEMENU;m_cItem=0;
//m_cOSDMenu=idVIDEOMENU;m_cOSDFunc=idBRIGHTMENU;m_cOSDEvent=OPENMENU;m_cItem=1;
OSDClearPage();
//OSD_DISPLAY_PNEL(flag_p);
//OSDShowSource();

   

 return 1;
}
bit kyPOWEREvent(void)
{

		m_bFactryMode = 0;
		if(m_bKyBlocked) m_bKyBlocked=0;
  	m_cOSDEvent=POWERMANAGE;

	return 1;
}

bit kyIncPollCount(void)
{
	if (m_wAccelPollCnt==0)
	{
    	if((m_cOSDEvent==OPENMENU)||(m_cOSDEvent==FUNCENTER)||(m_cOSDEvent==CLOSEMENU)||(m_cOSDEvent==FUNCEXIT))
			m_wAccelPollCnt=KEY_MENU_POLL_COUNT;
		else if(m_cOSDEvent==POWERMANAGE)
			m_wAccelPollCnt=KEY_POWER_SEL;
		else
		{
			if(m_cOSDEvent==FUNCSELCT_IN || m_cOSDEvent==FUNCSELCT_DN )
				m_wAccelPollCnt=KEY_SEL_POLL_COUNT;
			else if((m_cOSDEvent==FUNCADJ_IN)||(m_cOSDEvent==FUNCADJ_DN))
		   	m_wAccelPollCnt=KEY_VAL_POLL_COUNT;
		}
		return 0;
	}
	else
   		m_wAccelPollCnt--;
	return 1;
}

uCHAR Rotate_Mode=1;
#if 0

bit kyRotateEvent(void)
{
    Rotate_Mode++;
    if(Rotate_Mode > 4) Rotate_Mode=1;
		
    switch(Rotate_Mode)
    {
        case 1:
          write_3_1byte(0x05, 0x2B);
   				I2CWriteByte(TW101,0xC7, 0x32);	
					break;
				case 2:
          write_3_1byte(0x05, 0x2A);
   				I2CWriteByte(TW101,0xC7, 0x17);	
					break;
				case 3:
          write_3_1byte(0x05, 0x29);
   				I2CWriteByte(TW101,0xC7, 0x12);	
					break;
				case 4:
          write_3_1byte(0x05, 0x28);
   				I2CWriteByte(TW101,0xC7, 0x37);	
					break;
    }
    return 0;
}
#endif


#ifdef ROTATE

extern uCHAR Dis_Mode;
bit kyDismodeEvent()
{
/*
sbit    LEFT_RIGHT      = P0^0; 1: LEFTtoRIGHt, 0: RIGHTtoLEFT
sbit    UP_DOWN			= P0^1; 1: Down, 0: UP 
*/
	#ifdef _480_234  //KVGA
	if((++Dis_Mode)>=VALID_DIR)
		Dis_Mode=TOP_LEFT;
		//Dis_Mode=TOP_LEFT;
	SET_Dismod();
	#endif

	#ifdef _800_480  //WVGA
	if((++Dis_Mode)>=VALID_DIR)
		Dis_Mode=TOP_LEFT;
	SET_Dismod();
	#endif
	
    	return 1;
}

#endif

/////////////////


/*
#ifdef TV

bit IRSetupKeyCtrl(void)
{
	if(m_bKyBlocked) return 0;
		if((m_cSource&0x0F)==(isrcTV))
		{
			if((m_cOSDFunc&0xF0)==idTVMENU_VIDEO)
			{
				m_cOSDEvent=FUNCEXIT;
			}
			else if((m_cOSDFunc==0))//&0xF0)==idMAINMENU)
			{
				m_cOSDFunc=idTVMENU_VIDEO;
				m_cOSDEvent=FUNCENTER;
			}
            else return 0;
		}
		else 
			return 0;
	return 1;
}

#endif
*/
/*
bit IRUpKeyCtrl(void)
{

	if(m_bKyBlocked) return 0;

#ifdef TV

    if((m_cOSDFunc&0xF0)==idTVMENU_VIDEO)
    {
	    m_cOSDEvent=FUNCSELCT_DN;
        return 1;
    }

#endif

    switch(m_cOSDFunc)
	{

#ifdef TV

        case    0:
		        {
                    OSDExit();
		            AdjTVChannel(1,0);
		            return 0;
				}

#endif
#ifdef LOAD_TIME
	    case	idBRIGHTMENU:
					m_cOSDFunc=idTIMEMENU;m_cOSDEvent=FUNCENTER;m_cItem=6;break;
#else
	    case	idBRIGHTMENU:
					m_cOSDFunc=idHUEMENU;m_cOSDEvent=FUNCENTER;m_cItem=5;break;
#endif
	    case	idCONTRASTMENU:
	            {
						m_cOSDFunc=idBRIGHTMENU;
						m_cOSDEvent=FUNCENTER;
						m_cItem=1;//

⌨️ 快捷键说明

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