BurnUnit.pas
上传用户:wanyu_2000
上传日期:2021-02-21
资源大小:527k
文件大小:4k
源码类别:

DVD

开发平台:

Delphi

  1. unit BurnUnit;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls, Gauges, Devices, Device, scsidefs, Fileimage, AudioImage, BinCueImage,
  6.   ComCtrls;
  7. type
  8.   TBurnForm = class(TForm)
  9.     ListBox1: TListBox;
  10.     Gauge1: TGauge;
  11.     Label1: TLabel;
  12.     Gauge2: TGauge;
  13.     Label2: TLabel;
  14.     StatusBar1: TStatusBar;
  15.     Label3: TLabel;
  16.     Label4: TLabel;
  17.     Label5: TLabel;
  18.     Label6: TLabel;
  19.     Gauge3: TGauge;
  20.     procedure copystats(CurrentSector,PercentDone : Integer) ;
  21.     Procedure CDStatus(CurrentStatus:String);
  22.     procedure BufferProgress(Percent : Integer);
  23.     procedure FileBufferProgress(Percent : Integer);
  24.     procedure BufferStatus(BufferSize , FreeSize : Integer);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.     CDBurner : TDevice;
  30.     Procedure StartDataWrite(BurnFileImage : TFileImage);
  31.     Procedure StartCUEDataWrite(BurnFileImage : TBinCueImage);
  32.     Procedure StartAudioWrite(BurnAudioImage : TAudioImage);
  33.     Procedure DumpISOFile(FileName : String);
  34.     Procedure BlankThisCD;
  35.   end;
  36. var
  37.   BurnForm: TBurnForm;
  38. implementation
  39. {$R *.dfm}
  40. Procedure TBurnform.StartAudioWrite(BurnAudioImage : TAudioImage);
  41. begin
  42.     CDBurner.OnCopyStatus := copystats;
  43.     CDBurner.OnCDStatus := CDStatus;
  44.     CDBurner.OnBufferProgress := BufferProgress;
  45.     CDBurner.OnFileBufferProgress := FileBufferProgress;
  46.     CDBurner.OnBufferStatus := BufferStatus;
  47.     CDBurner.QuickSetAudioBurnSettings;
  48.     CDBurner.BurnFromImage(BurnAudioImage);
  49. end;
  50. Procedure TBurnform.StartDataWrite(BurnFileImage : TFileImage);
  51. begin
  52.     CDBurner.OnCopyStatus := copystats;
  53.     CDBurner.OnCDStatus := CDStatus;
  54.     CDBurner.OnBufferProgress := BufferProgress;
  55.     CDBurner.OnFileBufferProgress := FileBufferProgress;
  56.     CDBurner.OnBufferStatus := BufferStatus;
  57.     CDBurner.QuickSetDVDISOBurnSettings;  // for testing
  58.     CDBurner.BurnFromImage(BurnFileImage);
  59. end;
  60. Procedure TBurnform.StartCUEDataWrite(BurnFileImage : TBinCueImage);
  61. begin
  62.     CDBurner.OnCopyStatus := copystats;
  63.     CDBurner.OnCDStatus := CDStatus;
  64.     CDBurner.OnBufferProgress := BufferProgress;
  65.     CDBurner.OnFileBufferProgress := FileBufferProgress;
  66.     CDBurner.OnBufferStatus := BufferStatus;
  67.     CDBurner.QuickSetDAOBurnSettings;
  68.     CDBurner.BurnFromImage(BurnFileImage);
  69. end;
  70. Procedure TBurnform.DumpISOFile(FileName : String);
  71. begin
  72.     CDBurner.OnCopyStatus := copystats;
  73.     CDBurner.OnCDStatus := CDStatus;
  74.     CDBurner.OnBufferProgress := BufferProgress;
  75.     CDBurner.OnFileBufferProgress := FileBufferProgress;
  76.     CDBurner.OnBufferStatus := BufferStatus;
  77.     CDBurner.DeviceReader.RipDiskToISOImage(FileName);
  78.     Showmessage('Copy Finished!');
  79. end;
  80. procedure TBurnForm.copystats(CurrentSector, PercentDone : Integer) ;
  81. begin
  82.   gauge2.progress := percentdone;
  83.   statusbar1.simpletext := 'Sector : '+ inttostr(CurrentSector);
  84.   statusbar1.Refresh;
  85. end;
  86. procedure TBurnForm.BufferProgress(Percent : Integer);
  87. begin
  88.     gauge1.progress := Percent;
  89. end;
  90. procedure TBurnForm.FileBufferProgress(Percent : Integer);
  91. begin
  92.     gauge3.progress := Percent;
  93. end;
  94. procedure TBurnForm.BufferStatus(BufferSize , FreeSize : Integer);
  95. begin
  96.    Label3.caption := 'Burner Buffer Size : '+ inttostr(buffersize div 1024)+ ' kb';
  97.    Label4.caption := 'Burner Free Buffer : '+ inttostr(FreeSize div 1024)+ ' kb';
  98. end;
  99. Procedure TBurnForm.CDStatus(CurrentStatus:String);
  100. begin
  101.    ListBox1.items.Insert(0,CurrentStatus);
  102. end;
  103. Procedure TBurnForm.BlankThisCD;
  104. begin
  105.     CDBurner.OnCopyStatus := copystats;
  106.     CDBurner.OnCDStatus := CDStatus;
  107.     CDBurner.OnBufferProgress := BufferProgress;
  108.     CDBurner.OnBufferStatus := BufferStatus;
  109.  //   CDBurner.BlankCDRom(blanktype,0);
  110.     Showmessage('Blanking Finished!');
  111. end;
  112. end.