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

📄 burn.cpp~

📁 It is for standalone platform executing DVD Burning function,it supports DVD+R/+RW Disc .
💻 CPP~
📖 第 1 页 / 共 5 页
字号:
		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;		 		 //Write_PASS_AUDIO.PVM    ICB=38		 RMMemset(fullpath,0x00,80);                 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=tmp_nwa;                 length=Write_Audio_PVM(ptr1,FileNum);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(numofItems+4)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;		 		 		 //Write_PASS_MOVIES.PVM   ICB=39		 RMMemset(fullpath,0x00,80);                 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=tmp_nwa;                 length=Write_Movies_PVM(ptr1,FileNum);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(numofItems+5)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;		 //tmp_blks+=((udf_file.F_Lengh)/2048+1);                   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                     next_lba=tmp_nwa;                tmp_blks=tmp_nwa-720;                total_size=20+FileNum*sizeof(typeUdfFile);                  total_blk=total_size/2048+1;  //pattern info total need allocate space                Vol_Blocks=1299+tmp_blks;//599+tmp_blks;//(ptr1->F_Lengh)/2048+1;//261+288+16+34+(ptr1->F_Lengh)/2048+1;                RMMemset(tmp_ptr,0x00,total_blk*2048);                RMMemcpy(tmp_ptr,ITRI_ID,10);                RMMemcpy(tmp_ptr+10,&FileNum,2);                RMMemcpy(tmp_ptr+12,&next_lba,4);                RMMemcpy(tmp_ptr+16,&Vol_Blocks,4);                RMMemcpy(tmp_ptr+20,ptr1,FileNum*60);                isMultiFlag=0;                UDF102_FS_Create(isMultiFlag,tmp_ptr,0);                                RMMemcpy(udf_ptr+120*2048,tmp_ptr,total_blk*2048);                //Write_PASS_PVM();                tmp_lba=0;                for (i=0;i<10;i++)                    {                    //tmp_lba                    FVD_Write10(ITRI_context->disc,udf_ptr+61440*i,tmp_lba,30);                    tmp_lba+=30;                    }                FVD_Write10(ITRI_context->disc,udf_ptr+614400,300,20);                tmp_lba+=20;                UDF102_File_ICB_Create(tmp_ptr);                for (i=0;i<13;i++)                    {                    //tmp_lba                    FVD_Write10(ITRI_context->disc,udf_ptr+61440*i,tmp_lba,30);                    tmp_lba+=30;                    }                    FVD_Write10(ITRI_context->disc,udf_ptr+390*2048,tmp_lba,10);                    tmp_lba+=10;                FVD_SyncCache(ITRI_context->disc,0,0);                                                                           	  #if 0          FileNum=numofItems+1+1+1+3;                ITRI_pnav->MyFavorfiletemp = ITRI_pnav->MyFavorfilefirst;                tmp_nwa=720;                RMMemset(ptr1,0x00,numofItems * 60);                for (i=0;i<numofItems;i++)//tmp_nwa                     {                    RMMemset(fullpath,0x00,80);                                   RMCopyAscii(fullpath,ITRI_pnav->MyFavorfiletemp->path);                   RMAppendAscii(fullpath,ITRI_pnav->MyFavorfiletemp->name);                                      RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                   RMCopyAscii(udf_file.F_name,ITRI_pnav->MyFavorfiletemp->name);                                      udf_file.FileAddr=tmp_nwa;                   udf_file.F_Lengh=(RMuint32)ITRI_pnav->MyFavorfiletemp->size;                   udf_file.Attribute=type;                   RMMemcpy(ptr1+i*60,&udf_file,60);                   WriteSingleFile(fullpath,tmp_nwa,udf_file.F_Lengh);                   printf("(no itri patt)0213 %dth Name:%s ,strlen(name):%ld \n",i+1,udf_file.F_name,RMasciiLength(udf_file.F_name));                                     tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                                      ITRI_pnav->MyFavorfiletemp1 = ITRI_pnav->MyFavorfiletemp->next;                   ITRI_pnav->MyFavorfiletemp  = ITRI_pnav->MyFavorfiletemp1;                     }                     /*                 PASSIDX File                   1. File name   2. File Addr  3.File Length   4.Attributes                     */                 RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"PASSIDX.PVM");                 udf_file.FileAddr=tmp_nwa;                 length=Write_PASS_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+numofItems*60,&udf_file,60);                 WriteSingleFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                 /*                 PASSIDX File                   1. File name   2. File Addr  3.File Length   4.Attributes                 */             //Write_ALBUM_PVM      Write_AssetList_PVM                RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"ALBUM.PVM");                  udf_file.FileAddr=tmp_nwa;                 length=Write_ALBUM_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(numofItems+1)*60,&udf_file,60);                 WriteSingleFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                                  /*                 PASSIDX File                   1. File name   2. File Addr  3.File Length   4.Attributes                 */             //Write_ALBUM_PVM      Write_AssetList_PVM                RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"ASSET_LIST.PVM");                  udf_file.FileAddr=tmp_nwa;                 length=Write_AssetList_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(numofItems+2)*60,&udf_file,60);                 WriteSingleFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                                                              next_lba=tmp_nwa;                tmp_blks=tmp_nwa-720;                total_size=20+FileNum*sizeof(typeUdfFile);                  total_blk=total_size/2048+1;  //pattern info total need allocate space                Vol_Blocks=1299+tmp_blks;//599+tmp_blks;//(ptr1->F_Lengh)/2048+1;//261+288+16+34+(ptr1->F_Lengh)/2048+1;                RMMemset(tmp_ptr,0x00,total_blk*2048);                RMMemcpy(tmp_ptr,ITRI_ID,10);                RMMemcpy(tmp_ptr+10,&FileNum,2);                RMMemcpy(tmp_ptr+12,&next_lba,4);                RMMemcpy(tmp_ptr+16,&Vol_Blocks,4);                RMMemcpy(tmp_ptr+20,ptr1,FileNum*60);                isMultiFlag=0;                UDF102_FS_Create(isMultiFlag,tmp_ptr,0);                                RMMemcpy(udf_ptr+120*2048,tmp_ptr,total_blk*2048);                //Write_PASS_PVM();                tmp_lba=0;                for (i=0;i<10;i++)                    {                    //tmp_lba                    FVD_Write10(ITRI_context->disc,udf_ptr+61440*i,tmp_lba,30);                    tmp_lba+=30;                    }                FVD_Write10(ITRI_context->disc,udf_ptr+614400,300,20);                tmp_lba+=20;                UDF102_File_ICB_Create(tmp_ptr);                for (i=0;i<13;i++)                    {                    //tmp_lba                    FVD_Write10(ITRI_context->disc,udf_ptr+61440*i,tmp_lba,30);                    tmp_lba+=30;                    }                    FVD_Write10(ITRI_context->disc,udf_ptr+390*2048,tmp_lba,10);                    tmp_lba+=10;                FVD_SyncCache(ITRI_context->disc,0,0);               #endif	        break;		          case 3:            printf("Incomplete DVD+RW Disc\n");	    RMFSetStreamCommand(ITRI_context->disc);            RMMemset(pattern,0x00,2048*4);            RMFDiscReadSector(ITRI_context->disc,120,4,2048,pattern);            RMMemset(itri_id,0x00,12);            memcpy(itri_id,pattern,10);            if (strcmp((char *)itri_id,ITRI_ID)==0)               {                printf("Recognize the itri flag \n");                RMMemcpy(&FileNum,pattern+10,2);                RMMemcpy(&next_lba,pattern+12,4);                RMMemcpy(&Vol_Blocks,pattern+16,4);                PrevNum=FileNum-6;                FileNum+=numofItems;                		RMMemset(ptr1,0x00,2048*6);		for (i=0;i<PrevNum;i++)                    RMMemcpy(ptr1+i*sizeof(typeUdfFile),pattern+20+i*60,60);//sizeof(typeUdfFile)				               				tmp_nwa=next_lba;                tmp_blks=0;				ITRI_pnav->MyFavorfiletemp = ITRI_pnav->MyFavorfilefirst;                for (i=0;i<numofItems;i++)//tmp_nwa                {                   RMCopyAscii(udf_file.F_name,ITRI_pnav->MyFavorfiletemp->name);                  udf_file.FileAddr=tmp_nwa;                  udf_file.F_Lengh=(RMuint32)ITRI_pnav->MyFavorfiletemp->size;                  udf_file.Attribute=type;                                    RMMemcpy(ptr1+(i+PrevNum)*sizeof(typeUdfFile),&udf_file,sizeof(typeUdfFile));                                                      RMMemset(fullpath,0x00,80);                  RMCopyAscii(fullpath,ITRI_pnav->MyFavorfiletemp->path);                  RMAppendAscii(fullpath,ITRI_pnav->MyFavorfiletemp->name);                  WriteSingleFile(fullpath,tmp_nwa,udf_file.F_Lengh);                  tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                  tmp_blks+=((udf_file.F_Lengh)/2048+1);                  ITRI_pnav->MyFavorfiletemp1 = ITRI_pnav->MyFavorfiletemp->next;                  ITRI_pnav->MyFavorfiletemp  = ITRI_pnav->MyFavorfiletemp1;                }                    //ITRI_context->gui->ITRI_Draw_Burn_Progress(100,udf_file.F_name);		 //xxxxxxxxxxxxxxxxxxxxxxxxx                 RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"PASSIDX.PVM");                 udf_file.FileAddr=tmp_nwa;                 length=Write_PASS_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                 tmp_blks+=((udf_file.F_Lengh)/2048+1);		 		 //xxxxxxxxxxxxxxxxxxxxxxxxxxx                              RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"ALBUM.PVM");                 udf_file.FileAddr=tmp_nwa;                 length=Write_ALBUM_PVM(ptr1,FileNum);                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems+1)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                 tmp_blks+=((udf_file.F_Lengh)/2048+1); 		  		 //xxxxxxxxxxxxxxxxxxxxxxxxxxx                              RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"ASSET_LIST.PVM");                 udf_file.FileAddr=tmp_nwa;                 length=Write_AssetList_PVM();                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems+2)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;                  tmp_blks+=((udf_file.F_Lengh)/2048+1);                                         //xxxxxxxxxxxxxxxxxxxxxxxxxxx  		 /*		 #define jpg_pvm  "PASS_PICTURES.PVM"  		#define wmv_pvm  "PASS_MOVIES.PVM"  		#define mp3_pvm  "PASS_AUDIO.PVM"   		 */		 //Write_PASS_PICTURES.PVM ICB=37		 RMMemset(fullpath,0x00,80);                 RMCopyAscii(fullpath,"/tmp/itri_tmp.txt");                 RMMemset(udf_file.F_name,0x00,sizeof(typeUdfPath));                 RMCopyAscii(udf_file.F_name,"PASS_PICTURES.PVM");                  udf_file.FileAddr=tmp_nwa;                 length=Write_Pictures_PVM(ptr1,FileNum);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems+3)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;		 tmp_blks+=((udf_file.F_Lengh)/2048+1);   		 		 //Write_PASS_AUDIO.PVM    ICB=38		 RMMemset(fullpath,0x00,80);                 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=tmp_nwa;                 length=Write_Audio_PVM(ptr1,FileNum);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems+4)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;		 tmp_blks+=((udf_file.F_Lengh)/2048+1);   		 		 		 //Write_PASS_MOVIES.PVM   ICB=39		 RMMemset(fullpath,0x00,80);                 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=tmp_nwa;                 length=Write_Movies_PVM(ptr1,FileNum);//AssetList_PVM();Write_AssetList_PVM(                 udf_file.F_Lengh=(RMuint32)length;                 udf_file.Attribute=0x04;                 RMMemcpy(ptr1+(PrevNum+numofItems+5)*60,&udf_file,60);                 ITRI_context->gui->ITRI_Draw_Burn_Progress(99,udf_file.F_name);		 WriteSingleMPVFile(fullpath,tmp_nwa,udf_file.F_Lengh);                 tmp_nwa=tmp_nwa+(udf_file.F_Lengh)/2048+1;   

⌨️ 快捷键说明

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