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