📄 burn.cpp~
字号:
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 + -