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