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

📄 burn.cpp~

📁 It is for standalone platform executing DVD Burning function,it supports DVD+R/+RW Disc .
💻 CPP~
📖 第 1 页 / 共 5 页
字号:
                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);                	 //Write  ALBUM.PVM	 	 RMMemset(fullpath,0x00,80);		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemcpy(&udf_file,tmp_ptr+20+(numofItems+1)*60,60);		 		 length=Write_ALBUM_PVM(tmp_ptr+20,numofItems+6);                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);	     	 	//Write AssetList	    	 RMMemset(fullpath,0x00,80);		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemcpy(&udf_file,tmp_ptr+20+(numofItems+2)*60,60);		 		 length=Write_AssetList_PVM();                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);	     		 		 	 //Write_PASS_PICTURES.PVM ICB=37	 	 RMMemset(fullpath,0x00,80);		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemcpy(&udf_file,tmp_ptr+20+(numofItems+3)*60,60);		 length=Write_Pictures_PVM(tmp_ptr+20,numofItems+6);                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);	     	 	 	 	 //Write_PASS_AUDIO.PVM    ICB=38	 	RMMemset(fullpath,0x00,80);		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemcpy(&udf_file,tmp_ptr+20+(numofItems+4)*60,60);		 length=Write_Audio_PVM(tmp_ptr+20,numofItems+6);                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);	     	 	 	 	 	 				 	//Write_PASS_MOVIES.PVM   ICB=39		RMMemset(fullpath,0x00,80);		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemcpy(&udf_file,tmp_ptr+20+(numofItems+5)*60,60);		 length=Write_Movies_PVM(tmp_ptr+20,numofItems+6);                 WriteSingleMPVFile(fullpath,udf_file.FileAddr,(RMuint32)length);	     		 			 		 RMMemset(&udf_file,0x00,60);		printf("2 @@@@@@@@ Test PASS PVM NWA @@@@@@@@@@@@\n");		for (RMuint16 i=numofItems;i<numofItems+6;i++)		{			RMMemcpy(&udf_file,tmp_ptr+20+i*60,60);					printf("F_name=%s ,NWA=%ld,length=%ld \n",udf_file.F_name,udf_file.FileAddr,udf_file.F_Lengh);			}	 		 return RM_OK;}RMstatus  WriteKODAKPVMFile(RMbool itri_pattern,RMuint8 *tmp_ptr,RMuint16 numofItems){	RMascii fullpath[80];	typeUdfFile udf_file;	long length;	//Write PASSIDX.PVM   itri_NWA	 RMMemset(&udf_file,0x00,60);         RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");         RMCopyAscii(udf_file.F_name,"PASSIDX.PVM");         udf_file.FileAddr=itri_NWA;         length=Write_PASS_PVM();         udf_file.F_Lengh=(RMuint32)length;         udf_file.Attribute=0x04;         RMMemcpy(tmp_ptr+20+numofItems*60,&udf_file,60);         if ((udf_file.F_Lengh)%2048==0)         {               itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               global_blks=global_blks+(udf_file.F_Lengh)/2048;          }         else         {               itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               global_blks=global_blks+(udf_file.F_Lengh)/2048+1;         }		  				//Write  ALBUM.PVM	 	  RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 //RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"ALBUM.PVM");                 udf_file.FileAddr=itri_NWA;                 length=Write_ALBUM_PVM(tmp_ptr+20,numofItems+6);//FileNum);                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(tmp_ptr+20+(numofItems+1)*60,&udf_file,60);                 if ((udf_file.F_Lengh)%2048==0)           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               		global_blks=global_blks+(udf_file.F_Lengh)/2048;           	 }           	 else           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               		global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           	  }		  		  		  		 RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMCopyAscii(udf_file.F_name,"ASSET_LIST.PVM");                  udf_file.FileAddr=itri_NWA;                 length=Write_AssetList_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(tmp_ptr+20+(numofItems+2)*60,&udf_file,60);                if ((udf_file.F_Lengh)%2048==0)           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               		global_blks=global_blks+(udf_file.F_Lengh)/2048;           	 }           	 else           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               		global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           	  }          	 		 		 //Write_PASS_PICTURES.PVM ICB=37		  RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMCopyAscii(udf_file.F_name,"PASS_PICTURES.PVM");                  udf_file.FileAddr=itri_NWA;                 length=Write_Pictures_PVM(tmp_ptr+20,numofItems+6);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(tmp_ptr+20+(numofItems+3)*60,&udf_file,60);                                 if ((udf_file.F_Lengh)%2048==0)           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               		global_blks=global_blks+(udf_file.F_Lengh)/2048;           	 }           	 else           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               		global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           	  }		  		 		 //Write_PASS_AUDIO.PVM    ICB=38		  RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                // RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"PASS_AUDIO.PVM");                  udf_file.FileAddr=itri_NWA;                 length=Write_Audio_PVM(tmp_ptr+20,numofItems+6);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(tmp_ptr+20+(numofItems+4)*60,&udf_file,60);                 if ((udf_file.F_Lengh)%2048==0)           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               		global_blks=global_blks+(udf_file.F_Lengh)/2048;           	 }           	 else           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               		global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           	  }		 		 		 //Write_PASS_MOVIES.PVM   ICB=39		  RMMemset(&udf_file,0x00,60);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 //RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"PASS_MOVIES.PVM");                  udf_file.FileAddr=itri_NWA;                 length=Write_Movies_PVM(tmp_ptr+20,numofItems+6);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(tmp_ptr+20+(numofItems+5)*60,&udf_file,60);                 if ((udf_file.F_Lengh)%2048==0)           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;               		global_blks=global_blks+(udf_file.F_Lengh)/2048;           	 }           	 else           	 {               		itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               		global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           	  }	 		  	RMMemset(&udf_file,0x00,60);	printf("1 @@@@@@@@ Test PASS PVM NWA @@@@@@@@@@@@\n");	for (RMuint16 i=numofItems;i<numofItems+6;i++)	{		RMMemcpy(&udf_file,tmp_ptr+20+i*60,60);				printf("F_name=%s ,NWA=%ld,length=%ld \n",udf_file.F_name,udf_file.FileAddr,udf_file.F_Lengh);		}		return RM_OK;}RMstatus Type2WriteDisc(RMuint16 numofItems,RMuint8 type){	RMstatus status;	typeUdfFile udf_file;	RMbool itri_pattern=FALSE;	//RMuint32 tmp_blks;	RMuint16 i,FileNum;	RMuint8 isMultiFlag=0;	RMascii fullpath[80];	RMuint32 FileBlks,total_blk,Vol_Blocks;	RMuint8 *ptr1=NULL,*tmp_ptr=NULL;	ptr1=buf_ptr;  	tmp_ptr=CurPtr;	//struct timespec usleep_req={0,300000000};		RMMemset(ptr1,0x00,2048*6);RMMemset(tmp_ptr,0x00,2048*12);	//資�檔�始�?  itri_NWA	PrevITRINWA=0;//NextWriteAddr;	CurrentITRINWA=NextWriteAddr;	itri_NWA=NextWriteAddr+700;	//?PASS PVM 6??	FileNum=numofItems+6;	global_blks=0;	ITRI_pnav->MyFavorfiletemp = ITRI_pnav->MyFavorfilefirst;        for (i=0;i<numofItems;i++)//tmp_nwa         {            RMMemset(&udf_file,0x00,60);           RMCopyAscii(udf_file.F_name,ITRI_pnav->MyFavorfiletemp->name);           udf_file.FileAddr=itri_NWA;   //udf_file.FileAddr,udf_file.F_Lengh           udf_file.F_Lengh=(RMuint32)ITRI_pnav->MyFavorfiletemp->size;           udf_file.Attribute=type;           RMMemcpy(tmp_ptr+20+i*60,&udf_file,60);           if ((udf_file.F_Lengh)%2048==0)           {               itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048;	       FileBlks=(udf_file.F_Lengh)/2048;               //tmp_blks=tmp_blks+(udf_file.F_Lengh)/2048;	       global_blks=global_blks+(udf_file.F_Lengh)/2048;           }           else           {               itri_NWA=itri_NWA+(udf_file.F_Lengh)/2048+1;               FileBlks=(udf_file.F_Lengh)/2048+1;	       global_blks=global_blks+(udf_file.F_Lengh)/2048+1;           }	   printf("++++%d File=%s ,NWA=%ld ,Length=%ld(Blks)\n",i,udf_file.F_name,udf_file.FileAddr,FileBlks);           ITRI_pnav->MyFavorfiletemp1 = ITRI_pnav->MyFavorfiletemp->next;           ITRI_pnav->MyFavorfiletemp  = ITRI_pnav->MyFavorfiletemp1;          }		WriteKODAKPVMFile(itri_pattern,tmp_ptr,numofItems);			Vol_Blocks=1299+global_blks;	total_blk=(20+ (FileNum)*60)/2048+1;	RMMemcpy(tmp_ptr,ITRI_ID,10);        RMMemcpy(tmp_ptr+10,&FileNum,2);        RMMemcpy(tmp_ptr+12,&itri_NWA,4);        RMMemcpy(tmp_ptr+16,&Vol_Blocks,4);         isMultiFlag=0x01;	UDF102_FS_Create(isMultiFlag,tmp_ptr,0);	RMMemcpy(udf_ptr+120*2048,tmp_ptr,20+ FileNum*60);	//UDF Start Addr=>  itri_NWA=NextWriteAddr;	printf("++++ Write 0~300 sectors UDF FileSystem ++++ \n");	itri_NWA=NextWriteAddr;	for (i=0;i<10;i++)	{				//ITRI_WriteCommand(RMuint8 *itri_buf,RMuint32 NWA,RMuint16 transferLen)		status=ITRI_WriteCommand(udf_ptr+61440*i,itri_NWA,30);		if (status==RM_OK)			itri_NWA+=30;			}				UDF102_File_ICB_Create(tmp_ptr);  	printf("++++ Write 300~700 UDF ICB Sectors +++++++\n");	for (i=0;i<13;i++)	{		status=ITRI_WriteCommand(udf_ptr+61440*i,itri_NWA,30);		if (status==RM_OK)			itri_NWA+=30;			}	status=ITRI_WriteCommand(udf_ptr+390*2048,itri_NWA,10);	if (status==RM_OK)	{			itri_NWA+=10;		printf("ITRI_WriteCommand() successfully\n");	}		else	{printf("ITRI_WriteCommand() FAIL\n");}		//itri_NWA=NextWriteAddr+700;//UDF102_Reserved;        //tmp_nwa=next_lba;        ITRI_pnav->MyFavorfiletemp = ITRI_pnav->MyFavorfilefirst;           for (i=0;i<numofItems;i++)//tmp_nwa           {                 	   	RMMemset(fullpath,0x00,80);RMMemset(&udf_file,0x00,60);           	RMCopyAscii(fullpath,ITRI_pnav->MyFavorfiletemp->path);           	RMAppendAscii(fullpath,ITRI_pnav->MyFavorfiletemp->name);           	RMMemcpy(&udf_file,tmp_ptr+20+i*60,60);		FileBlks= (  (udf_file.F_Lengh%2048==0)?udf_file.F_Lengh/2048:udf_file.F_Lengh/2048+1);		printf("%d Write AVP FIle:%s ,NWA=%ld ,Blks=%ld \n",i,udf_file.F_name,udf_file.FileAddr,FileBlks   );	   	WriteSingleFile(fullpath,udf_file.FileAddr,udf_file.F_Lengh);	   	ITRI_pnav->MyFavorfiletemp1 = ITRI_pnav->MyFavorfiletemp->next;           	ITRI_pnav->MyFavorfiletemp  = ITRI_pnav->MyFavorfiletemp1;            }   		WriteKODAKPVMFile2(tmp_ptr,numofItems);		CloseDisc();	return RM_OK;}

⌨️ 快捷键说明

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