?? vfd_io_util.c
字號:
#if defined(GPIO_KEY_LIGHT)
// DATA gpio56 IN/OUT
// STB gpio57 IN/OUT
// CLK gpio58 IN/OUT
#ifdef HANYANG_DP02CD_WF_8202S_16//added by wangwei,2005-2-3 15:33
void check_hanyang_dp02cd_wf_key_status(void)
{
UINT32 key_data;
static int key_state = 0;
static UINT32 key_previ = 0x80E1;
//init_keylight_io();
/*regs0->gpio_oe[21 / 16] &= (~0x1 << (21 % 16));
regs0->gpio_oe[22 / 16] &= (~0x1 << (22 % 16));
regs0->gpio_oe[23 / 16] &= (~0x1 << (23 % 16));
*/
/*regs0->gpio_oe[15 / 16] &= (~0x1 << (15 % 16));
regs0->gpio_oe[16 / 16] &= (~0x1 << (16 % 16));
*/
key_data = (regs0->gpio_in[21 / 16] & 0x00e1)|(regs0->gpio_in[15 / 16]&0x8000);///yangli
if(key_data != key_previ)
{
//printf("1.key_previ=%x\n",key_previ);
//key_previ = 0xf0;
#ifdef VFD_KEY_TEST
psprintf(RegionValStr[REGION1], "KEY %x", key_data);
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
switch (key_data)
{
case 0x80c1:
if(key_state == 2)
{
call_ir_func(IRC_PLAY);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x80e0:
if(key_state == 2)
{
call_ir_func(IRC_EJECT); //call_ir_func(IRC_PAUSEPLAY);//HHQ
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x80a1:
if(key_state == 2)
{
call_ir_func(IRC_STOP);
//printf("STOP\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
/*case 0x00E1:
if(key_state == 2)
{
call_ir_func(IRC_BACKWARD);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x80E0:
if(key_state == 2)
{
call_ir_func(IRC_FORWARD);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;*/
default:
key_state = 2;
break;
}
}
else
{
//printf("out:key_state=%x\n",key_state);
key_previ = key_data;
key_state = 2;
#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
key_data_flag=0;
#endif//#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
}
}
#elif defined(HANYANG_DP02CD_WG_8202S_16)
void delay_time(UINT32 counter)
{
UINT32 i,j;
for(i=0;i<counter;i++)
{
j++;
}
}
static inline void check_hanyang_dp02cd_wg_led(void)
{
#ifdef READ_DISC_LED_BLINKING
static BYTE counter = 0;
if(play_state == VCD_STATE_CLOSE)
{
counter++;
if(counter < 7)
{
GPIO_O_SET(21,0);
GPIO_O_SET(22,0);
}
else
{
GPIO_O_SET(21,1);
GPIO_O_SET(22,0);
if(counter > 12)
counter = 0;
}
}
else
#endif//READ_DISC_LED_BLINKING
{
GPIO_O_SET(21, 1);// GREEN : NORMAL
GPIO_O_SET(22, 0);// RED : STANDBY
}
}
#define GET_GPIO_15 0x0010
#define GET_GPIO_16 0x0020
#define GET_GPIO_23 0x0040
#define GPIO_21_OUTPUT 0x0001
#define GPIO_22_OUTPUT 0x0002
void check_hanyang_dp02cd_wg_keylight_status(void)
{
//PIN65 : GPIO 15
//PIN66 : GPIO 16 -> PULL LOW,INPUT PIN.
//VFD_DATA : GPIO 23
//VFD_CLK : GPIO 21
//VFD_STB : GPIO 22 - PULL HIGH,OUTPUT PIN.
UINT32 key_output_data = 0;
UINT32 key_data;
static int key_state = 0;
static UINT32 key_previ = 0xfff;
//////////////////////////////////////////////////////////////////////////////////////////
GPIO_O_SET(21, 1);
GPIO_O_SET(22, 0);
delay_time(0xff);// 1ms is too long for LED,it'll blink.
key_output_data = GPIO_21_OUTPUT;
if(GPIO_I_GET(15) && (!GPIO_I_GET(16)) && (!GPIO_I_GET(23)))
{
key_data = key_output_data | GET_GPIO_15;
}
else if((!GPIO_I_GET(15)) && GPIO_I_GET(16) && (!GPIO_I_GET(23)))
{
key_data = key_output_data | GET_GPIO_16;
}
else if((!GPIO_I_GET(15)) && (!GPIO_I_GET(16)) && GPIO_I_GET(23))
{
key_data = key_output_data | GET_GPIO_23;
}
if((key_data != 0x11) && (key_data != 0x21) && (key_data != 0x41))
{
GPIO_O_SET(21, 0);
GPIO_O_SET(22, 1);
delay_time(0xff);
key_output_data = GPIO_22_OUTPUT;
if(GPIO_I_GET(15) && (!GPIO_I_GET(16)) && (!GPIO_I_GET(23)))
{
key_data = key_output_data | GET_GPIO_15;
}
else if((!GPIO_I_GET(15)) && GPIO_I_GET(16) && (!GPIO_I_GET(23)))
{
key_data = key_output_data | GET_GPIO_16;
}
else if((!GPIO_I_GET(15)) && (!GPIO_I_GET(16)) && GPIO_I_GET(23))
{
key_data = key_output_data | GET_GPIO_23;
}
}
GPIO_O_SET(21, 0);
GPIO_O_SET(22, 0);
if((key_data != 0x11)&&(key_data != 0x21)&&(key_data != 0x41)&&(key_data != 0x12)&&(key_data != 0x22)&&(key_data != 0x42))
key_data = 0;
//////////////////////////////////////////////////////////////////////////////////////////
#if 0
psprintf(RegionValStr[REGION1], "KEY %x", key_data);
PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
check_hanyang_dp02cd_wg_led();// lighting LED
#if (defined(GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY)||defined(GPIO_LONG_FORWARD_SHORT_NEXT_IN_A_KEY))
static int gpio_func_prev_key_flag = 0;
static int gpio_func_next_key_flag = 0;
static int gpio_func_key_data = 0;
#endif//(defined(GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY)||defined(GPIO_LONG_FORWARD_SHORT_NEXT_IN_A_KEY))
if(key_previ != key_data)
{
key_previ = key_data;
key_state = 2;
#ifdef GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
if(gpio_func_prev_key_flag==1)
{
call_ir_func(IRC_BACKWARD);
gpio_func_prev_key_flag=0;
}
if(gpio_func_next_key_flag==1)
{
call_ir_func(IRC_FORWARD);
gpio_func_next_key_flag=0;
}
gpio_func_key_data=0;
#elif defined(GPIO_LONG_FORWARD_SHORT_NEXT_IN_A_KEY)
if(gpio_func_prev_key_flag==1)
{
call_ir_func(IRC_PREV);
gpio_func_prev_key_flag=0;
}
if(gpio_func_next_key_flag==1)
{
call_ir_func(IRC_NEXT);
gpio_func_next_key_flag=0;
}
gpio_func_key_data=0;
#endif//GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
}
else
{
switch (key_data)
{
case 0x11:
if(key_state == 2)
{
call_ir_func(IRC_PAUSEPLAY);
}
key_state = 1;
break;
case 0x12:
if(key_state == 2)
{
call_ir_func(IRC_EJECT);
}
key_state = 1;
break;
case 0x21:
if(key_state == 2)
{
call_ir_func(IRC_STOP);
}
key_state = 1;
break;
case 0x41:
if(key_state == 2)
{
call_ir_func(IRC_POWER);
}
key_state = 1;
break;
case 0x42:
#ifdef GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
if(key_state == 2)
{
gpio_func_key_data++;
if((gpio_func_key_data>5)&&(gpio_func_key_data<40))
gpio_func_prev_key_flag=1;
else if(gpio_func_key_data>=40)
gpio_func_prev_key_flag=2;
if((gpio_func_prev_key_flag==2)&&(gpio_func_key_data%60==0))
{
call_ir_func(IRC_PREV);
}
}
break;
#elif defined(GPIO_LONG_FORWARD_SHORT_NEXT_IN_A_KEY)
{
gpio_func_key_data++;
if((gpio_func_key_data>5)&&(gpio_func_key_data<40))
gpio_func_prev_key_flag=1;
else if(gpio_func_key_data>=40)
gpio_func_prev_key_flag=2;
if((gpio_func_prev_key_flag==2)&&(gpio_func_key_data%60==0))
{
call_ir_func(IRC_BACKWARD);
}
}
break;
#else
if(key_state == 2)
{
call_ir_func(IRC_PREV);
}
key_state = 1;
break;
#endif//GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
case 0x22:
#ifdef GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
if(key_state == 2)
{
gpio_func_key_data++;
if((gpio_func_key_data>5)&&(gpio_func_key_data<40))
gpio_func_next_key_flag=1;
else if(gpio_func_key_data>=40)
gpio_func_next_key_flag=2;
if((gpio_func_next_key_flag==2)&&(gpio_func_key_data%60==0))
{
call_ir_func(IRC_NEXT);
}
}
break;
#elif defined(GPIO_LONG_FORWARD_SHORT_NEXT_IN_A_KEY)
if(key_state == 2)
{
gpio_func_key_data++;
if((gpio_func_key_data>5)&&(gpio_func_key_data<40))
gpio_func_next_key_flag=1;
else if(gpio_func_key_data>=40)
gpio_func_next_key_flag=2;
if((gpio_func_next_key_flag==2)&&(gpio_func_key_data%60==0))
{
call_ir_func(IRC_FORWARD);
}
}
break;
#else
if(key_state == 2)
{
call_ir_func(IRC_NEXT);
}
key_state = 1;
break;
#endif//GPIO_LONG_NEXT_SHORT_FORWARD_IN_A_KEY
default:
key_state = 2;
break;
}
}
}
#endif//define HANYANG_DP02CD_WF_8202S_16
#if defined(USE_VFD_GAME_PORT_TO_KEYBOARD_HJ)
#ifdef USE_VFD_GAME_PORT_TO_KEYBOARD_HJ_2326
void check_hj_keylight_status(void)
{
UINT32 key_data;
UINT32 key_data1;
UINT32 key_data2;
// UINT32 key_data3;
static int key_state = 0;
static UINT32 key_previ = 0xffff;
// regs0->gpio_oe[54 / 16] &= ~(0x7 << (54 % 16));
// regs0->gpio_oe[42 / 16] &= ~(0x3 << (42 % 16));
//key_data = ((regs0->gpio_in[42 / 16] & (0x3 << (42 % 16))) |(regs0->gpio_in[54 / 16] & (0x7 << (54 % 16))) );
//key_data =(( regs0->gpio_in[42 / 16] & (0x3 << (42 % 16))) |(regs0->gpio_in[54 / 16] & (0x7 << (54 % 16))) );
key_data1 = regs0->gpio_in[14 / 16] & (0x3 << (14 % 16));//14
key_data2 = regs0->gpio_in[54 / 16] & (0x7 << (54 % 16));//6,7,8
// key_data2 = regs0->gpio_in[4 / 16] & (0x1 << (4 % 16));//4
// key_data3 = regs0->gpio_in[54 / 16] & (0x7 << (54 % 16));//6,7,8
key_data =(key_data1|key_data2);//15,14,6,7,8
//printf("key_data=%x\n",key_data);
//return;
//printf("regs0->sft_cfg6=%x\n",regs0->sft_cfg6);
//printf("regs0->gpio_oe[14 / 16]=%x\n",regs0->gpio_oe[14 / 16] );
//printf("key_state=%x\n",key_state);
//printf("key_previ=%x\n",key_previ);
//regs0->gpio_out[56 / 16] &= ~(0x1 << (56 % 16));
if(key_data == key_previ)
{
//printf("1.key_previ=%x\n",key_previ);
//key_previ = 0xf0;
switch (key_data)
{
case 0x81C0:
if(key_state == 2)
{
call_ir_func(IRC_EJECT);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0xc0c0:
if(key_state == 2)
{
call_ir_func(IRC_ONLY_PAUSE);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x40C0:
if(key_state == 2)
{
call_ir_func(IRC_BACKWARD);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x4180:
if(key_state == 2)
{
call_ir_func(IRC_FORWARD);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0xc180://GPIO14 IO2//PIN109
if(key_state == 2)
{
call_ir_func(IRC_PREV);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0xC140://VFD DATA
if(key_state == 2)
{
//printf("STOP\n");
call_ir_func(IRC_STOP);
}
//printf("SS:key_state=%x\n",key_state);
key_state = 1;
break;
case 0xC100:
if(key_state == 2)
{
call_ir_func(IRC_NEXT);
//printf("EJECT\n");
}
//printf("EEE:key_state=%x\n",key_state);
key_state = 1;
break;
case 0x41C0:
//printf("Ppppppp:key_state=%x\n",key_state);
if(key_state == 2)
{
//printf("PAUSEPLAY\n");
if(Is_JPEG_SlideMode())
{
if(bJpgVFDPause == 0)
{
//bJpgVFDPause = 1;
if(play_state == VCD_STATE_PAUSE) //nono 2-6-28 14:00
{
bJpgVFDPause = 2;
PrintOsdMsg(STR_OS_PLAY,REGION1,1,0);//nono 20030804
}
else
bJpgVFDPause = 1;
}
else if(bJpgVFDPause == 1)
{
bJpgVFDPause = 2;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -