ircmd_mode.c

来自「凌阳8202T的红外接收代码及LED屏的驱动代码」· C语言 代码 · 共 1,089 行 · 第 1/3 页

C
1,089
字号
		}
		case DVB_T_MODE:
		{
			DVB_TO_DVD_NO_READ();
			DVD_TO_USB();
			break; 
		}
		case CARD_PLAY_MODE:
		{
			DVD_TO_USB(); 
			break; 
		}		 
		default: 
			break; 
	} 	 
}
void  SYSTEM_CHANGE_TO_CARD(void)
{
	switch(source_play_mode)
	{
		case DVD_PLAY_MODE:
		{
			DVD_TO_CARD(); 			
			break; 
		}
		case DVB_T_MODE:
		{
			DVB_TO_DVD_NO_READ();
			DVD_TO_CARD();
			break; 
		}
		case USB_PLAY_MODE:
		{
			DVD_TO_CARD(); 
			break; 
		}		 
		default: 
			break; 
	} 

}

void  SYSTEM_SOURCE_CHANGE(UINT8  sys_source_tpye)
{	 
       printf_w("  SYSTEM_SOURCE_CHANGE   sys_source_tpye:%d \n",sys_source_tpye);
	printf_w("  SYSTEM_SOURCE_CHANGE   system_state:%d \n",system_state);

	#ifdef MODE_SWITCH_DELAY
	if(usb_card_state == USB_CARD_WAS_PLUG_OUT)
	{
		return;
	}
	
	if(mode_key_delay_cnt)
	{
		//printf_w("mode_key_delay_cnt:%d,return............\n",mode_key_delay_cnt);
		invalid_key();
		return;
	}
	else
	{
		counter_down=5;   
		mode_key_delay_cnt = 2;
	}
	#endif//end=> 	#ifdef MODE_SWITCH_DELAY

    
   	 //by justin 2005/11/15   close the setup_menu if you want to change mode and setup menu is openning
	if(full_scrn&SETUP) 
	{
		ExitSetupPage(1);	
	}

	if( (source_play_mode==DVD_PLAY_MODE) && ((system_state==SYSTEM_READ_TITLE)/*||((system_state==SYSTEM_OPEN)&&(play_state==VCD_STATE_CLOSE))*/) )
    	{
        	return;
    	}
	
    	GPIO_MUTE();
		
           //  printf_w("  SYSTEM_SOURCE_CHANGE   start                \n");

	switch(sys_source_tpye)
	{
		case SYSTEM_TO_DVD:
		{
			if(source_play_mode!=DVD_PLAY_MODE)
			{
				SYSTEM_CHANGE_TO_DVD(); 			
			}
			break; 
		}
		case SYSTEM_TO_USB:
		{
			if(source_play_mode!=USB_PLAY_MODE)
			{
				SYSTEM_CHANGE_TO_USB();
			}
			break; 
		}
		case SYSTEM_TO_CARD:
		{
			if(source_play_mode!=CARD_PLAY_MODE)
			{
				SYSTEM_CHANGE_TO_CARD();
			}	
			break; 
		}
		case SYSTEM_TO_DVB:
		{
			if(source_play_mode!=DVB_T_MODE)
                     {
				SYSTEM_CHANGE_TO_DVB();
			}
			break; 
		}		 
		default: 
			break; 
	}   	

   printf_w("  SYSTEM_SOURCE_CHANGE      DVD2DVB_switch_flag:%d     source_play_mode:  %d    \n",DVD2DVB_switch_flag,source_play_mode);
   printf_w("  SYSTEM_SOURCE_CHANGE       system_state   :  %d     flag_check_mcu_info:%d  \n",system_state,flag_check_mcu_info);
}


#ifdef   SUPPORT_CHECK_MCU_INFO
#define CHECK_TIME 3
UINT8  a_info_old= 0;
UINT8  b_info_old= 0;
UINT8  check_con= 0;

void  check_mcu_info(void);
void  check_mcu_info()
{


	UINT8  a_info= 0;
	UINT8  b_info= 0;
	GPIO_M_SET(A_MCUINFO,1);
	GPIO_E_SET(A_MCUINFO, 0);  
	GPIO_M_SET(B_MCUINFO,1);
	GPIO_E_SET(B_MCUINFO, 0); 
	a_info = GPIO_I_GET(A_MCUINFO);
	b_info = GPIO_I_GET(B_MCUINFO);
#ifdef ONE_TWO_THREE_FOUR_CHANGE
	a_info =   xxx;
	b_info =  yyy;
#endif//end=> #ifdef ONE_TWO_THREE_FOUR_CHANGE

//	 printf_w("  11  waiting_mcu_info      a_info:%d     b_info:  %d     flag_check_mcu_info:%d  \n",a_info,b_info,flag_check_mcu_info);

       if((a_info == a_info_old)&&(b_info == b_info_old))  
       {
              if(check_con < 50)
              {
			check_con++;
              }	
	}
       else
       {
		a_info_old=a_info;
		b_info_old=b_info;
		check_con = 0;
	}
	   
       #ifdef SUPPORT_SYS_POWER_ON_WAITING_MCUINFO 
       if(!flag_check_mcu_info)
       {
	   return;
       }
 	#endif//end=> #ifdef  SUPPORT_SYS_POWER_ON_WAITING_MCUINFO

	if(check_con == CHECK_TIME)
	{
             printf_w(" 22   waiting_mcu_info      a_info:%d     b_info:  %d       \n",a_info,b_info);

		switch(a_info)
		{
	        	case 0:
			{
				if(b_info) //a_info: 0,b_info :1    => CARD  
				{
					SYSTEM_SOURCE_CHANGE(SYSTEM_TO_CARD); 	
				}
				else// //a_info: 0,b_info :0    =>  DVD
				{
					SYSTEM_SOURCE_CHANGE(SYSTEM_TO_DVD);                                    
				}
				break;
	        	}	
	              case 1:
			{
				if(b_info)//a_info: 1,b_info :1    =>  DVB
				{
					SYSTEM_SOURCE_CHANGE(SYSTEM_TO_DVB);				
				}
				else// //a_info: 1,b_info :0    =>  USB
				{
					SYSTEM_SOURCE_CHANGE(SYSTEM_TO_USB);
				}
				break;
	        	}	  	
			default:
				break;	

		}
	}
}
#endif//end=> #ifdef   SUPPORT_CHECK_MCU_INFO

#ifdef SUPPORT_SYS_POWER_ON_WAITING_MCUINFO 
void waiting_mcu_info(void);
void waiting_mcu_info2(void);
void waiting_mcu_info3(void);
void waiting_mcu_info()
{
       UINT8  a_info= 0;
	UINT8  b_info= 0;
       source_play_mode=DVD_PLAY_MODE;
	DVD_TO_STOP();
       while(check_con < CHECK_TIME)
      	{
            polling();
             
	}
       if(check_con == CHECK_TIME)
       {

	       
		GPIO_M_SET(A_MCUINFO,1);
		GPIO_E_SET(A_MCUINFO, 0);  
		GPIO_M_SET(B_MCUINFO,1);
		GPIO_E_SET(B_MCUINFO, 0); 
		a_info = GPIO_I_GET(A_MCUINFO);
		b_info = GPIO_I_GET(B_MCUINFO);
              printf_w("    waiting_mcu_info      a_info:%d     b_info:  %d       \n",a_info,b_info);
	    	//a_info  = 0;
		//b_info  = 0;		
		switch(a_info)
		{
	        	case 0:
			{
				if(b_info) //a_info: 0,b_info :1    =>  CARD 
				{
				       system_state = SYSTEM_DVD ;
					DVD2DVB_switch_flag = 0;
					source_play_mode=CARD_PLAY_MODE;
				}
				else// //a_info: 0,b_info :0    =>  DVD
				{
				       system_state = SYSTEM_DVD ;
					DVD2DVB_switch_flag = 0;
					source_play_mode=DVD_PLAY_MODE;
				}
				break;
	        	}	
	              case 1:
			{
				if(b_info)//a_info: 1,b_info :1    =>  DVB
				{
				       system_state = SYSTEM_TS ;
					DVD2DVB_switch_flag = 1;
					source_play_mode=DVB_T_MODE;
				}
				else// //a_info: 1,b_info :0    => USB
				{
				       system_state = SYSTEM_DVD ;
					DVD2DVB_switch_flag = 0;
					source_play_mode=USB_PLAY_MODE;
				}
				break;
	        	}	  	
			default:
				break;	

		}
				
	}

}
void waiting_mcu_info2()
{
	switch(source_play_mode)
	{
	       case DVD_PLAY_MODE:
		{
			ircmd_trayin();
			break;
        	}
        	case USB_PLAY_MODE:
		{
			DVD_TO_USB();
			break;
        	}	
              case CARD_PLAY_MODE:
		{
			DVD_TO_CARD();
			break;
        	}	  	
		default:
			break;	

	}
       flag_check_mcu_info =1; 
	ShowTitle();
	osd_enable();
}

void waiting_mcu_info3()
{
	flag_check_mcu_info = 0;    
       osd_disable();
}

  #endif//end=> #ifdef  SUPPORT_SYS_POWER_ON_WAITING_MCUINFO

#endif//end=> #ifdef  SUPPORT_DVD_DVB_USB_CARD_FREE_CHANGE //20060429 add





#endif//end #ifdef IR_SWITCH_DVD_USB_CARD_AVIN_DVB

//#ifdef AV_IN_THROUGH_EXT_ADC
/**************************************************************************
 *  Function Name: enable_video_DAC_out                                   *
 *  Purposes:                                                             *
 *    enable or disable 8200/8202 Video DAC output                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *    enable_disable = 1------>Enable Video Out                           *
 *                   = 0------>Disable Video Out                          *
 *  Returns:                                                              *
 *    NULL                                                                *
 **************************************************************************/
void enable_video_DAC_out(BYTE enable_disable)
{
    if(enable_disable)
    {//enable 
        #ifdef SUPPORT_VIDEO_OUT_DELAY
		 tv_dacoff(TV_DAC_F|TV_DAC_E|TV_DAC_C);
        #else //else=>#ifdef SUPPORT_VIDEO_OUT_DELAY
        tv_dacoff(0);
	#endif

       
        //regs0->sft_cfg20 &=~(0x1<<0); //Marked by jack 05/09/19,Otherwise when switch to DVB state,system will has terrible "tsif_reg_wr() error!" error!
        //regs0->sft_cfg7 &=~(0x1<<4);
        //regs0->sft_cfg7 |=(0x1<<5);
    }
    else
    {//disable
        tv_dacoff(TV_DAC_F|TV_DAC_E|TV_DAC_D|TV_DAC_C|TV_DAC_B|TV_DAC_A);
        //regs0->sft_cfg20 |=(0x1<<0); 
        //regs0->sft_cfg7 |=(0x1<<4);
        //regs0->sft_cfg7 &=~(0x1<<5);
    }
}
//#endif

⌨️ 快捷键说明

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