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

📄 rsm_util.h

📁 凌阳8202T的红外接收代码及LED屏的驱动代码
💻 H
📖 第 1 页 / 共 5 页
字号:
	#ifdef DVD_5_DISC_RESUME//lijd 2005-6-16 15:56
		if(cd_type_loaded!=DVD) return;
	#endif

    resumeMSF = s_msf&0x00ffffff;
    resumeTRK = cd_trk_now;
    
#ifndef DONT_CLR_RSM //hongfeng add 2005-11-03
#ifdef POWER_RESUME
    if(Is_MP3_STATE()==0)   // don't clear the resume info of mp3 , added by caiyh , 10:53 , Nov 2nd , 2004
#endif   // POWER_RESUME
    clr_rsm_info();
#endif
				
	if(cd_type_loaded!=CDDVD)
	{
		info1=M2I(gettrkmsf_leadout()); 
	}
    else
    {
   		info1 = same_disc_vob11_pos;   
   	} 
   	#ifdef TEN_DISC_RESUME_DEBUG
   	printf("---  info1=0x%x  ---\n",info1);
    #endif
   	ReadFromI2cA0(TEN_DISC_INFO_ADDR,&Resume_Index, sizeof(Resume_Index));
   	if(Resume_Index>=RESUME_DISC_NUMBER)//hongfeng 2005-08-25
   	{
   		Resume_Index = 0;
   	}
   	Resume_Now = Resume_Index;
   	
   	for(i=0;i<RESUME_DISC_NUMBER;i++)
	{
		ReadFromI2cA0(Info_I2C_ADDR[i],(BYTE *)&Rom_Info1,sizeof(Rom_Info1));
		if(info1==Rom_Info1)
		{
			#ifdef TEN_DISC_RESUME_DEBUG
			printf("---  Have Save Disc Resume zone  ---\n");
			#endif
			Resume_Now = i;
			if(Resume_Index!=0)
			{
				if(Resume_Now!=Resume_Index)
				{
					Resume_Index--;
				}
			}
			else
			{
				Resume_Index = (RESUME_DISC_NUMBER-1);
				if(Resume_Now==0)
				{
					Resume_Index = 0;
				}
			}
			break;
		}
	} 
	
	#ifdef TEN_DISC_RESUME_DEBUG
   	printf("\n\n---  Disc->Resume_Now=%d  ---\n",Resume_Now);
   	printf("---  Disc->Resume_Index+1=%d  ---\n",Resume_Index+1);
   	printf("---  Info_I2C_ADDR[%d]=%d  ---\n",Resume_Now,Info_I2C_ADDR[Resume_Now]);  	
   	#endif
   	
   	WriteToI2cA0(Info_I2C_ADDR[Resume_Now],(BYTE *)&info1,sizeof(info1));
    Resume_Index++;
    WriteToI2cA0(TEN_DISC_INFO_ADDR,&Resume_Index,sizeof(Resume_Index));
    
    /*ReadFromI2cA0(TEN_DISC_INFO_ADDR,&Resume_Now, sizeof(Resume_Now));   	
   	printf("---  Disc->Resume_Now=%d  ---\n",Resume_Now);
    Resume_Now--;
   	ReadFromI2cA0(Info_I2C_ADDR[Resume_Now],(BYTE *)&info1,sizeof(info1));
   	printf("---  info1=0x%x  ---\n",info1);*/
   	
   	p = (BYTE *)&pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM];
   	printf("---  Disc->Resume_Now=%x  ---\n",Resume_Now);
   	pos = MSF_I2C_ADDR[Resume_Now];
   	//printf("---  Disc->Record_Now=%d  ---\n",Disc->Record_Now);
   	printf("---  pos=%d ---\n",pos);
    if(cd_type_loaded!=CDDVD)
    {
    	if(cd_type_loaded==CDROM) 
        {//we only support MP3, not contain JPEG/Game
        	if(Is_MP3_STATE()==0) resumeMSF = 0;
                
            printf("fsnav_dir_now:%d\n",pFsJpeg->fsnav_dir_now);
            printf("fsnav_trk_now:%d\n",pFsJpeg->fsnav_trk_now);
            printf("myTime:%d\n", myTime);
                
            WriteToI2cA0(pos,(BYTE *)&pFsJpeg->fsnav_dir_now, sizeof(pFsJpeg->fsnav_dir_now));
            WriteToI2cA0(pos+sizeof(pFsJpeg->fsnav_dir_now),(BYTE *)&pFsJpeg->fsnav_trk_now, sizeof(pFsJpeg->fsnav_trk_now));
                             
            MSFFlag = mp3_file_msf ( pFsJpeg -> fsnav_trk_now ) ;
                // get the msf of current trk , added by caiyh , 15:55 , Nov 5th , 2004
                
            WriteToI2cA0 ( pos + sizeof(pFsJpeg->fsnav_dir_now)
                	+ sizeof ( pFsJpeg -> fsnav_trk_now ) , ( BYTE * ) & MSFFlag ,
                	sizeof(MSFFlag));
                // write the msf of current trk to i2c , added by caiyh , 15:55 , Nov 5th , 2004
            	
            WriteToI2cA0 ( pos + sizeof ( pFsJpeg -> fsnav_dir_now ) 
                	+ sizeof ( pFsJpeg -> fsnav_trk_now ) + sizeof ( MSFFlag ) , 
                	( BYTE * ) & myTime , sizeof ( myTime ) ) ;
			// write the myTime of current trk to i2c , modified by caiyh , 17:57 , Nov 16th , 2004
            	
            printf("MSFFlag:%d\n", MSFFlag);
        }
        else
        {                
            printf("resumeMSF:%x\n",resumeMSF);
            WriteToI2cA0(pos,(BYTE *)&resumeTRK, sizeof(resumeTRK));
            WriteToI2cA0(pos+sizeof(resumeTRK),(BYTE *)&resumeMSF, sizeof(resumeMSF));
        }
    }
    else
    {
            //resumeMSF = 1;//terry 2003-8-12 14:20
        if(play_state!=VCD_STATE_STOP)
            RSM_save(0xff,DVD_PRESTOP_RSM_ITEM); //chenzhao 2006-9-13 11:41 .
        #ifndef DONT_CLR_RSM //hongfeng add 2005-11-03    
        clr_rsm_info();//terry,2003/8/13 01:21AM  
        #endif
                    printf("sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM])=%d\n",sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]));
            printf("sizeof(resumeMSF)=%d\n",sizeof(resumeMSF));  
        printf("resumeMSF:%d\n",resumeMSF);
        WriteToI2cA0(pos,p, sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]));            
        WriteToI2cA0(pos+sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]),(BYTE *)&resumeMSF, sizeof(resumeMSF));
    }
#else//#ifdef SUPPORT_TEN_DISC_RESUME		//linrc add for 10 disc resume play 2005-5-12 10:09

    BYTE    *p;

#if defined(POWER_RESUME) || defined(SAME_DISC_RESUME)
	UINT32 MSFFlag = 0 ;
#endif   // POWER_RESUME , added by caiyh , 15:55 , Nov 5th , 2004

    if(clr){}//freyman just for warning message
    
#ifdef STOP_RESUME_DVD_VCD
    if(cd_type_loaded==CDDA)
	 return;
#endif
        
    if(cd_type_loaded==CDUNKNOWN) return;
    
    #ifdef DVD_5_DISC_RESUME//lijd 2005-8-1 11:04
	 if(cd_type_loaded!=CDDVD) 
	 return;
	#endif
	#ifndef DVD_5_DISC_RESUME//lijd 2005-6-30 22:55
    //Jack 06/10/02 added for simply release,any question pls call me:EXT 8304    
    if(!( (clr==0xf0)&&(cd_type_loaded!=CDROM)&&(cd_type_loaded!=CDDVD) ))
        resumeMSF = s_msf&0x00ffffff;
    #endif    
    //Jack 06/10/02 added for simply release,any question pls call me:EXT 8304    
    if(!( (clr==0xf0)&&(cd_type_loaded!=CDROM)&&(cd_type_loaded!=CDDVD) ))
    resumeTRK = cd_trk_now;
    
#if defined(POWER_RESUME)||defined(SAME_DISC_RESUME)||defined(TURN_OFF_POWER_RESUME)  //zhongshan added other resume 2007-5-7 05:33PM
#ifndef STOP_RESUME_DVD_VCD//shenyj add for alco mp3 resume 050226
    if(Is_MP3_STATE()==0)   // don't clear the resume info of mp3 , added by caiyh , 10:53 , Nov 2nd , 2004
#endif
#endif   // POWER_RESUME
{
#ifndef DONT_CLR_RSM //hongfeng add 2005-11-03
    //Jack 06/10/02 added for simply release,any question pls call me:EXT 8304
    if(!( (clr==0xf0)&&(cd_type_loaded!=CDROM)&&(cd_type_loaded!=CDDVD) ))
    clr_rsm_info(); //terry,2003/8/13 01:21AM       
#endif
}
    //#ifdef RECORD_KEY//zhaoyanhua 03-11-2 18:56  //Mark by maoyong 2004.04.07
    //write DISC INFO to I2C
    UINT32 info1;
    int pos= 0;
    
#ifdef STOP_RESUME_DVD_VCD
    if(cd_type_loaded == CDROM)
        return;
#endif	
    
    if(cd_type_loaded==CDDVD) {
        rsm_disc_type=0;
        pos = DVD_DISC_INFO;
    }
    else if (cd_type_loaded==CDDA){ 
        rsm_disc_type=2;
    #ifdef ONLY_PRE_DISC_RESUME
        pos = DVD_DISC_INFO;
    #else    
    	pos = CDDA_DISC_INFO;
    #endif	
    }
    else if (cd_type_loaded!=CDROM){
        rsm_disc_type=3;
    #ifdef ONLY_PRE_DISC_RESUME 
        pos = DVD_DISC_INFO;
    #else    
    	pos = VCD_DISC_INFO;
    #endif	
    }
    else {
        rsm_disc_type=1;
    	pos = CDROM_INFO_BASE;
    }
    #if 0//def POWER_RESUME //	qinhua,mark it,2006-7-1 03:06下午
    	else if(Is_MP3_STATE()==0)   /* to add the function of mp3 power resume , 
    				        added by caiyh , 11:05 , Nov 2nd , 2004 */
    #else
    //else 
    #endif   // POWER_RESUME
    	//return;  //qinhua,mark it,2006-7-1 03:06下午
    //Res=check_cdtype();
    if(cd_type_loaded!=CDDVD)
		info1=M2I(gettrkmsf_leadout()); //get from sysmain2.c
    else//CDDVD
   		info1 = same_disc_vob11_pos;    //search_file("VTS_01_1.VOB"); //get from atapi_if728.c
	
	WriteToI2cA0(pos,(BYTE *)&info1,sizeof(info1));
         
    //#endif
  
    
    {
        printf("save rsm info\n");
        
        p=(BYTE *)&pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM];
        if(cd_type_loaded!=CDDVD)
        {
            if(cd_type_loaded==CDROM) 
         	{
          #ifdef FS_FILE_POWER_RESUME	//qinhua,2006-6-13 05:03下午 
            
            #if (defined (SUPPORT_USB)||defined (SUPPORT_CARD_STORAGE) ||defined (SPHE8202_CARD_STORAGE) )&&!defined(SUPPORT_MP4_USB_RESUME) //xlluo add SUPPORT_MP4_USB_RESUME 05/31/07   
             if(media_type==MEDIA_CD) 
           	#endif     
               { 
                if(Is_MP3_STATE())
                  	resumeMSF = myTime;
               	else if (((GetCurrentFileType() == CDROM_MP4)||(GetCurrentFileType() == CDROM_AVI ))&&!(IS_FILE_TYPE_MPG()||IS_FILE_TYPE_CDXA()))
               		resumeMSF = disp_time;
               	else
                     	resumeMSF = 0;

			resumeTRK= pFsJpeg -> fsnav_trk_will; 
				resume_fsnav_dir=pFsJpeg->fsnav_dir_will;
				Resume_Track_msf = FS_GetFileProperty(resumeTRK,FILE_PROPERTY_LOCATION);
				//Resume_Track_msf =iso9660_file [ resumeTRK ].loc;
				Resume_func_btn=pFsJpeg->gifsFuncBtn;
           	    Resume_hl_trk = pFsJpeg->file_current+pFsJpeg->file_page_now * PER_PAGE;
            	  
				WriteToI2cA0(CDROM_INFO_BASE,(BYTE *)&resume_fsnav_dir, sizeof(resume_fsnav_dir));
                //resume_fsnav_dir
                WriteToI2cA0(CDROM_INFO_BASE+sizeof(resume_fsnav_dir),(BYTE *)&resumeTRK, sizeof(resumeTRK));
                //resumeTRK
                WriteToI2cA0(CDROM_INFO_BASE+sizeof(resume_fsnav_dir)+sizeof(resumeTRK),(BYTE *)&Resume_Track_msf, sizeof(Resume_Track_msf));
                //Resume_Track_msf
               	WriteToI2cA0(CDROM_INFO_BASE+sizeof(resume_fsnav_dir)+sizeof(resumeTRK)+sizeof(Resume_Track_msf),(BYTE *)&resumeMSF, sizeof(resumeMSF));
                //resumeMSF
                WriteToI2cA0(CDROM_INFO_BASE+sizeof(resume_fsnav_dir)+sizeof(resumeTRK)+sizeof(Resume_Track_msf)+sizeof(resumeMSF), &Resume_func_btn, sizeof(Resume_func_btn));
                //old_ControlArea
                WriteToI2cA0(CDROM_INFO_BASE+sizeof(resume_fsnav_dir)+sizeof(resumeTRK)+sizeof(Resume_Track_msf)+sizeof(resumeMSF)+sizeof(Resume_func_btn), &Resume_hl_trk, sizeof(Resume_hl_trk));                
                #if SAVE_CDROM_DEBUG
                printf("---WRITE----resume_fsnav_dir=%d---------\n\n",resume_fsnav_dir);
			    printf("---WRITE----resumeTRK=%d---------\n\n",resumeTRK);
			    printf("---WRITE----Resume_Track_msf=%d---------\n\n",Resume_Track_msf);
			    printf("---WRITE----resumeMSF=%d---------\n\n",resumeMSF);
			    printf("---WRITE----Resume_func_btn=%d---------\n\n",Resume_func_btn);
			    #endif 
				}				
				#elif defined (MP3_POWER_RESUME) 
            	
            	//we only support MP3, not contain JPEG/Game
                if(Is_MP3_STATE()==0) resumeMSF = 0;
                
                printf("fsnav_dir_now:%d\n",pFsJpeg->fsnav_dir_now);
                printf("fsnav_trk_now:%d\n",pFsJpeg->fsnav_trk_now);
                printf("myTime:%d\n", myTime);
                
                WriteToI2cA0(CDROM_INFO_BASE,(BYTE *)&pFsJpeg->fsnav_dir_now, sizeof(pFsJpeg->fsnav_dir_now));
                WriteToI2cA0(CDROM_INFO_BASE+sizeof(pFsJpeg->fsnav_dir_now),(BYTE *)&pFsJpeg->fsnav_trk_now, sizeof(pFsJpeg->fsnav_trk_now));
                             
                MSFFlag = mp3_file_msf ( pFsJpeg -> fsnav_trk_now ) ;
                // get the msf of current trk , added by caiyh , 15:55 , Nov 5th , 2004
                
                WriteToI2cA0 ( CDROM_INFO_BASE + sizeof(pFsJpeg->fsnav_dir_now)
                	+ sizeof ( pFsJpeg -> fsnav_trk_now ) , ( BYTE * ) & MSFFlag ,
                	sizeof(MSFFlag));
                // write the msf of current trk to i2c , added by caiyh , 15:55 , Nov 5th , 2004
            	
                WriteToI2cA0 ( CDROM_INFO_BASE + sizeof ( pFsJpeg -> fsnav_dir_now ) 
                	+ sizeof ( pFsJpeg -> fsnav_trk_now ) + sizeof ( MSFFlag ) , 
                	( BYTE * ) & myTime , sizeof ( myTime ) ) ;
		// write the myTime of current trk to i2c , modified by caiyh , 17:57 , Nov 16th , 2004
            	
            	printf("MSFFlag:%d\n", MSFFlag);
	       
           	 }
           	 #endif//#ifdef FS_FILE_POWER_RESUME	//qinhua,2006-6-13 05:03下午 
           	} 
        
          	else //cd/vcd
            {
                int pos;
                
                if(cd_type_loaded==CDDA) pos=CDDA_INFO_BASE;
                else pos=VCD_INFO_BASE;
                
                printf("resumeMSF:%x\n",resumeMSF);
                //Jack 06/10/02 added for simply release,any question pls call me:EXT 8304
                if(clr == 0xf0)
                {
                    UINT32  PreresumeTRK;
                    UINT32  PreresumeMSF;
                    PreresumeTRK = resumeTRK;
                    PreresumeMSF = resumeMSF;
                    resumeTRK = 0;
                    resumeMSF = 0;
                    
                    WriteToI2cA0(pos,(BYTE *)&resumeTRK, sizeof(resumeTRK));
                    WriteToI2cA0(pos+sizeof(resumeTRK),(BYTE *)&resumeMSF, sizeof(resumeMSF));
                    
                    resumeTRK = PreresumeTRK;
                    resumeMSF = PreresumeMSF;
                }
                else
               {
                WriteToI2cA0(pos,(BYTE *)&resumeTRK, sizeof(resumeTRK));
                WriteToI2cA0(pos+sizeof(resumeTRK),(BYTE *)&resumeMSF, sizeof(resumeMSF));
            	}
        	}
        }
       	else //dvd
        {
            //resumeMSF = 1;//terry 2003-8-12 14:20
            #ifdef DVD_5_DISC_RESUME//lijd 2005-7-13 17:14
             if((play_state!=VCD_STATE_STOP)&&(StopTimes!=1)&&(clr!=0xf0))  //Jack 06/10/02 added for simply release
                 RSM_save(0xff,DVD_PRESTOP_RSM_ITEM); //chenzhao 2006-9-13 11:41 .
            #else
            if((play_state!=VCD_STATE_STOP)&&(clr!=0xf0))   //Jack 06/10/02 added for simply release
				RSM_save(0xff,DVD_PRESTOP_RSM_ITEM); //chenzhao 2006-9-13 11:41 .
            #endif 
            #ifndef DONT_CLR_RSM //hongfeng add 2005-11-03
            clr_rsm_info();//terry,2003/8/13 01:21AM    
            #endif
            
            #if defined(STOP_RESUME_DVD_VCD)&&defined(DISC_ID_IN_FLASH)
            if(need_record  == REAL_RECORD_VALUE)
                resumeMSF = 1;
            #endif

			#ifndef  SUPPORT_LAST_MEMERY
            clr_rsm_info();//terry,2003/8/13 01:21AM    
            #endif//end=> #ifndef  SUPPORT_LAST_MEMERY
            printf("resumeMSF:%d\n",resumeMSF);
            WriteToI2cA0(DVD_INFO_BASE,p, sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]));            
            WriteToI2cA0(DVD_INFO_BASE+sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]),(BYTE *)&resumeMSF, sizeof(resumeMSF));
			//print_block(p,sizeof(pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM]));
    
     // psprintf(debug_buffer,"pDSV->rsm_info[i].dRSM_TTN:%x\n",pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM].dRSM_TTN);
     // UART0_puts(debug_buffer);
     // psprintf(debug_buffer,"pDSV->rsm_info[i].dRSM_PTTN:%x\n",pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM].dRSM_PTTN);
     // UART0_puts(debug_buffer);
     // psprintf(debug_buffer,"pDSV->rsm_info[i].dRSM_AGLN:%x\n",pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM].dRSM_AGLN);
     // UART0_puts(debug_buffer);
     // psprintf(debug_buffer,"pDSV->rsm_info[i].dRSM_ASTN:%x\n",pDSV->rsm_info[DVD_PRESTOP_RSM_ITEM].dRSM_ASTN);
     // UART0_puts(debug_buffer);
     // psprintf(debug_buffer,"resumeMSF:%x\n",resumeMSF);    

⌨️ 快捷键说明

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