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

📄 8202_usb_card_if.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 4 页
字号:
	// USB enumerated, proceed accordingly
	//-------------------------------------------------------------------------
	else
	{
	   if(!uhci_PlugInOutDetect())          // test for slave device detach  
	   {					
            printf("slave is detached!!!\n");
            usb_plug_out_flag=1;
     #ifdef MP3_ONLY_STOP_TO_GUI 
            if( (play_state==VCD_STATE_MP3_FILELIST) && (media_type==MEDIA_CARD) )
            {
	         ShowTitle();
	         SwitchMedia(CARD2CD); 	    //wsf 2004-9-16 16:43
	     	}
	 #endif 
	 
            SLAVE_ENUMERATED = FALSE;				// return to un-enumeration
	        if((media_type == MEDIA_CARD)&&(storage_type == USB_DEVICE))	//liweihua mod 2004-3-30
            {
            	if(Mp3ReadFinish)
            		Mp3ReadFinish = 0;
            	if((play_state == VCD_STATE_PAUSE)||(GetCurrentFileType() == CDROM_WMA))//liweihua mod 2004-4-19
            		ircmd_stop();         	
	            AVD_SetMediaInterrupt();        //wthsin ,  2004/4/19 02:47pm         	
            }
            if(play_state != VCD_STATE_OPEN) //liweihua add 2004-2-1
            {
	            if((media_type == MEDIA_CARD)&&(storage_type == USB_DEVICE))
                play_state = VCD_STATE_STOP;
             
            card_plug_state = USER_DO_PLUG_OUT;
        	}
	        detect_type &= (~USB_DEVICE);
	        storage_type &= (~USB_DEVICE);
	    return 2;						// exit now.
	   }
	}   
	//-------------------------------------------------------------------------
	//USB Card reader special process
	//-------------------------------------------------------------------------
	USBCardReaderDetect();
       
	return 0;
}     
#endif//end SUPPORT_USB
/**************************************************************************
 *                                                                        *
 *  Function Name: CardTestReady                                          *
 *                                                                        *
 *  Purposes:                                                             *
 *    detect and initialize card/usb, then set card to browse             *
 *  Descriptions:                                                         *
 *    detect and initialize card/usb, then set card to browse             *
 *  Arguments:                                                            *
 *          NONE                                                          *
 *  Returns:     NONE                                                     *
 *                                                                        *
 *  See also:    NONE                                                     *
 *                                                                        *
 **************************************************************************/
void CardTestReady(void)
{	
	UINT8 media_exit=0;
	
#ifdef 	IR_SWITCH_CD_USB_CF_OTHER
	storage_type = detect_result_last;        
        now_valid_type = storage_type; //for bug:read cf,insert usb,will read cf again.
        #ifdef HIGH_CORTROL_CF
        GPIO_O_SET(SWITCH_GPIO,0);//dingzhy for switch bus 4-10-22 10:43
        #else
        GPIO_O_SET(SWITCH_GPIO,1);
        #endif
#endif

    if(storage_type!=0)
    {
        #ifdef SPHE8202_CARD_STORAGE    //Maoyong 2004-8-12 do card power reset.
        if(storage_type != USB_DEVICE)
            Card_power_reset();
        #endif
    switch(storage_type)
    {         
            #ifdef SPHE8202_CARD_STORAGE         
        #if defined(COMPACT_FLASH)    
         case CF_CARD_DEVICE:
         	#ifdef IR_SWITCH_CD_USB_CF_OTHER  //dingzhy 4-10-22 10:41
         		#ifdef HIGH_CORTROL_CF
        		GPIO_O_SET(SWITCH_GPIO,1);//dingzhy use vfd data for test switch bus 4-10-22 10:43
        		#else
        		GPIO_O_SET(SWITCH_GPIO,0);
        		#endif
         	#endif         
                         #ifdef CARD_SETUP_TYPE_2
                           regs0->fm_gpio_mode = 8;  
                         #elif defined(CARD_SETUP_TYPE_3)||defined(CARD_SETUP_TYPE_5)	
                           regs0->gpio_mode_B=2;
                           regs0->fm_gpio_mode = 3;
                         #endif  
                         
                   #ifdef IDE_CF_SW 
                   IdeSetSequence(HD);//kenny 2004/8/29
                   #endif
    	                 cfIdeDetect();
                         media_exit=1;
                         break; 
        #endif     
        #if defined(SD_MMC_CARD)    
         case SD_CARD_DEVICE:
                        #ifdef CARD_SETUP_TYPE_2
                          regs0->fm_gpio_mode = 3;  
                        #elif defined(CARD_SETUP_TYPE_3)||defined(CARD_SETUP_TYPE_4)	
                          regs0->gpio_mode_B=0;
                          regs0->fm_gpio_mode = 3;                      
                        #endif //CARD_SETUP_TYPE_2
   	    	            if(sdDetect())    //wthsin, 2004/6/24 07:40pm
   	    	            {
   	    	               psprintf(RegionValStr[REGION1], "SD Err");
                           PrintOsdMsg(STR_OS_SPACE, REGION1, 0, 1);  
   	    	            }
   	    	            else    
   	    	              media_exit=1;    	
                        break; 
        #endif  
        #if defined(MEMORY_STICK)    
         case MS_CARD_DEVICE:
                        #ifdef CARD_SETUP_TYPE_2
                          regs0->fm_gpio_mode = 4;  
                        #elif defined(CARD_SETUP_TYPE_3)||defined(CARD_SETUP_TYPE_4)		
                          regs0->gpio_mode_B=0;
                          regs0->fm_gpio_mode = 4;   
                        #endif //CARD_SETUP_TYPE_2
   	    	            msDetect();
   	    	            media_exit=1;    	
                        break; 
        #endif  
        #if defined(SMART_MEDIA)    
         case SMC_CARD_DEVICE:
                        #ifdef CARD_SETUP_TYPE_2
                          regs0->fm_gpio_mode = 8;  
                        #elif defined(CARD_SETUP_TYPE_3)	
                          regs0->fm_gpio_mode = 3;  
                          regs0->gpio_mode_B=1;
                        #endif //CARD_SETUP_TYPE_2
                        if(smcDetect())
                        {
   	    	               psprintf(RegionValStr[REGION1], "SMC Err");
                           PrintOsdMsg(STR_OS_SPACE, REGION1, 0, 1);  
   	    	            }
   	    	            else 
   	    	              media_exit=1;              
                        break; 
        #endif  
            #endif//#ifdef SPHE8202_CARD_STORAGE
            #ifdef SUPPORT_USB//liweihua 2004-6-7
            case  USB_DEVICE:
            	#if defined(IR_SWITCH_CD_USB_CF_OTHER)||defined(SPHE8202_USB_Write)||defined(FILE_MODE_WRITE)	//dingzhy add it
                UsbTestReady();    //for bug:power on without usb,then insert usb,but can't play usb; dingzhy 04-10-22
                #endif		

                media_exit=1;
                break;
            #endif//#ifdef SUPPORT_USB
         default:
                         return;
	} 
	} 
    //#endif 
    if(media_exit)   
    { 
    	#ifdef SPHE8202_ALL_TYPE_CARD_WRITE
    	if(card_browse_sign)
    	#endif
        #ifdef FILE_MODE_WRITE                  //sunzhh add for file mode 2005-1-14
        if(!file_mode_flag)                   
        #endif        	
        CardSetBrowse();
    }
}
/**************************************************************************
 *                                                                        *
 *  Function Name: CARDIsPlugIn                                           *
 *                                                                        *
 *  Purposes:                                                             *
 *    Detect if the USB or CARD is pluged                                        *
 *  Descriptions:                                                         *
 *    Detect if the USB or CARD is pluged                                        *
 *  Arguments:                                                            *
 *          NONE                                                          *
 *  Returns:                                                              *
 *          0: FALSE                                                               *
 *          1: TRUE                                                             *
 *  See also:    NONE                                                     *
 *                                                                        *
 **************************************************************************/
int CARDIsPlugIn(void)
{//liweihua update 2004-6-8
    int detect_result = 0;  
    if(storage_type!=0)
    {
     #ifdef SUPPORT_USB
        if(storage_type == USB_DEVICE)
     		detect_result=UsbIsPlugIn();
     #endif
     #if defined(SUPPORT_USB)&&defined(SPHE8202_CARD_STORAGE)  		
        else	
     #endif 
     #ifdef SPHE8202_CARD_STORAGE
        detect_result=CardStorageIsPlugIn();  
     #endif       
    }  
   return  detect_result; 
}
/**************************************************************************
 *                                                                        *
 *  Function Name: polling_storage                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *    polling to detect usb/card plus in or plug out                      *
 *  Descriptions:                                                         *
 *    polling to detect usb/card plus in or plug out                      *
 *  Arguments:                                                            *
 *          NONE                                                          *
 *  Returns:     NONE                                                     *
 *                                                                        *
 *  See also:    NONE                                                     *
 *                                                                        *
 **************************************************************************/
extern int check_support_usb(void); //wthsin, 2004/5/27 01:34pm
void polling_storage()
{//liweihua update 2004-6-8         
    BYTE detect_result = 0;

    #ifdef SPHE8202_CARD_STORAGE
    if(CardEna == TRUE)   //only after card init then polling.
        Detect_Card_Storage();
    #endif
  #if defined(SUPPORT_USB)  	            
     if(USBEna == TRUE)    //only after USB init then polling.
    {
        #ifdef SPHE1000
            #ifdef HOST_UHCI 
            uhci_slaveDetect();
            #else //#define HOST_SL811HS   
            slave_detect();
            #endif
        #else
            #ifdef HOST_UHCI 
            if(check_support_usb()==0)   return;  
            uhci_slaveDetect();
            #else //#define HOST_SL811HS   
            slave_detect();
            #endif
        #endif
    }
  #endif
  
    detect_result=storage_parity_type[detect_type];
        
    #ifdef SWITCH_CD_CARD_USB//liweihua 2004-6-9
    extern BYTE select_media_type;
    if(detect_type&select_media_type)
        detect_result = select_media_type;
    else
        select_media_type = 0;
    #endif
    
    #ifdef IR_SWITCH_CD_USB_CF_OTHER   //dingzhy for bus switch 04-10-22

⌨️ 快捷键说明

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