📄 keypad.c
字号:
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 + -