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

📄 vfd_io_util.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 2 页
字号:
#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_dvdtv_keylight_status(void)
{

	UINT32  key_data;
	static int key_state = 0;
	static UINT32 key_previ = 0xfff;
	
	//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));

	key_data = (regs0->gpio_in[21 / 16] & (0x7 << (21 % 16)));

	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 0xA0:
		
			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 0x60:
		
			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 0xC0:
		
			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 0x80:
		
			if(key_state == 2)
			{
				//gpio_key_only_next();
				//gpio_key_only_prev();
				#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
				key_data_flag=1;
				#endif//#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
				call_ir_func(IRC_PREV);
			}
			//printf("EEE:key_state=%x\n",key_state);
			key_state = 1;
			
			break;
		case 0x100:
		
			if(key_state == 2)
			{
				//gpio_key_only_prev();
				//gpio_key_only_next();
				#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
				key_data_flag=1;
				#endif//#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
				call_ir_func(IRC_NEXT);
			}
			//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)	
	}
		
}
#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;
					}
				}
				else
					call_ir_func(IRC_PLAY);
				
			}
			//printf("P: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;
		
	}

	
}

#elif defined(USE_VFD_GAME_PORT_TO_KEYBOARD_HJ_2290)



void check_hj_keylight_status(void)
{
	UINT32  key_data;//,key_data2;
	static int key_state = 0;//,key_state2 = 0;
	static UINT32 key_previ = 0xfff;//,key_previ2 = 0xfff;
	
	
	
	regs0->gpio_oe[54 / 16] &= (~0x1 << (54 % 16));
	regs0->gpio_oe[55 / 16] &= (~0x1 << (55 % 16));
	regs0->gpio_oe[56 / 16] &= (~0x1 << (56 % 16));
	key_data = (regs0->gpio_in[54 / 16] & (0x7 << (54 % 16)));
	
	           //printf("key_data=%x\n",key_data);
	//           printf("key_state=%x\n",key_state);
	//           printf("key_previ=%x\n",key_previ);
	
	
	if(key_data == key_previ)
	{
		//printf("1.key_previ=%x\n",key_previ);
		//key_previ = 0xf0;
		switch (key_data)
		{
			
		case 0x180://CLK GPIO54
			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 0x140://STB GPIO55
			//printf("Ppppppp:key_state2=%x\n",key_state2);
			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;
					}
				}
				else
					call_ir_func(IRC_PLAY);
				
			}
			
			key_state = 1;
			//check_keylight_light_status();
			break;
		case 0x0C0://DATA GPIO56
			if(key_state == 2)
			{
				//printf("STOP\n");
				call_ir_func(IRC_STOP);
			}
			
			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(key_data==key_previ) else ........
	
	
	
}

⌨️ 快捷键说明

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