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

DVD

开发平台:

Delphi

  1. {-----------------------------------------------------------------------------
  2.  Unit Name: DeviceTypes
  3.  Author:    Paul Fisher / Andrew Semack
  4.  Purpose:   Selection of types
  5.  History:
  6. -----------------------------------------------------------------------------}
  7. unit DeviceTypes;
  8. interface
  9. uses
  10.   Windows, SCSITypes;
  11. const
  12.   //TDataBlockType
  13.   btRAW_DATA_BLOCK = $00;
  14.   btRAW_DATA_P_Q_SUB = $01;
  15.   btRAW_DATA_P_W_SUB = $02;
  16.   btRAW_DATA_P_W_SUB2 = $03;
  17.   btMODE_1 = $08;
  18.   btMODE_2 = $09;
  19.   btMODE_2_XA_FORM_1 = $0A;
  20.   btMODE_2_XA_FORM_1_SUB = $0B;
  21.   btMODE_2_XA_FORM_2 = $0C;
  22.   btMODE_2_XA_FORM_2_SUB = $0D;
  23.   //TSessionType
  24.   stCDROM_CDDA = $00;
  25.   stCDI_DISK = $01;
  26.   stCDROM_XA = $20;
  27.   //TEraseType
  28.   etBLANK_DISC = $00;
  29.   etBLANK_MINIMAL = $01;
  30.   etBLANK_TRACK = $02;
  31.   etUN_RESERVE_TRACK = $03;
  32.   etBLANK_TRACK_TAIL = $04;
  33.   etUNCLOSE_LAST_SESSION = $05;
  34.   etERASE_SESSION = $06;
  35.   etSESSION_FORMAT = $10;
  36.   etGROW_SESSION = $11;
  37.   etADD_SESSION = $12;
  38.   etQUICK_GROW_LAST_SESSION = $13;
  39.   etQUICK_ADD_SESSION = $14;
  40.   etQUICK_SESSION_FORMAT = $15;
  41.   etMRW_FULL_FORMAT = $24;
  42.   etDVD_PLUS_RW_BASIC_FORMAT = $26;
  43.   //TWriteType
  44.   wtPACKET_WRITE    = $00;
  45.   wtTRACK_AT_ONCE   = $01;
  46.   wtSESSION_AT_ONCE = $02;
  47.   wtRAW_DATA        = $03;
  48.   wtDVDPLUS_TAO     = $22;
  49.   wtDVD_TAO         = $42;
  50.   //TTrackMode
  51.   tmCDR_MODE_AUDIO = $01;
  52.   tmCDR_MODE_INCR_DATA = $01;
  53.   tmCDR_MODE_ALLOW_COPY = $02;
  54.   tmCDR_MODE_DATA = $04;
  55.   tmDVD_MODE_DATA = $05;
  56.   tmCDR_MODE_QUAD_AUDIO = $08;
  57.   tmCDR_MODE_DAO_96 = $3F;
  58.   //TCDSpeeds
  59.   SCDS_MAXSPEED = $FFFF;
  60.   SCDS_NONE = $00;
  61.  //TMedia Types
  62.   mtUNKNOWN   = 0;
  63.   mtCD_ROM    = 1;
  64.   mtCD_R      = 2;
  65.   mtCD_RW     = 3;
  66.   mtDVD_ROM   = 4;
  67.   mtDVD_R     = 5;
  68.   mtDVD_RAM   = 6;
  69.   mtDVD_RW    = 7;
  70.   mtDVD_RW_RO = 7;
  71.   mtDVD_RW_SR = 8;
  72.   mtDVD_PLUSRW= 9;
  73.   mtDVD_PLUSR = 10;
  74.   mtDDCD_ROM  = 11;
  75.   mtDDCD_R    = 12;
  76.   mtDDCD_RW   = 13;
  77. type
  78.   TCopyStatusEvent = procedure(CurrentSector, PercentDone: Integer) of object;
  79.   TCDStatusEvent = procedure(CurrentStatus: string) of object;
  80.   TCDBufferProgressEvent = procedure(Percent: Integer) of object;
  81.   TCDFileBufferProgressEvent = procedure(Percent: Integer) of object;
  82.   TCDBufferStatusEvent = procedure(BufferSize, FreeSize: Integer) of object;
  83.   TCDWriteStatusEvent = procedure(BytesWritten: Integer) of object;
  84. type
  85.   TDiscType = (
  86.     dtMT_UNKNOWN = $00,
  87.     dtMT_CDROMDATA120 = $01,
  88.     dtMT_CDAUDIO120 = $02,
  89.     dtMT_CDROMMIXED120 = $03,
  90.     dtMT_CDROMHYBRID120 = $04,
  91.     dtMT_CDROMDATA80 = $05,
  92.     dtMT_CDAUDIO80 = $06,
  93.     dtMT_CDROMMIXED80 = $07,
  94.     dtMT_CDROMHYBRID80 = $08,
  95.     dtMT_CDRUNKNOWN = $10,
  96.     dtMT_CDRDATA120 = $11,
  97.     dtMT_CDRAUDIO120 = $12,
  98.     dtMT_CDRMIXED120 = $13,
  99.     dtMT_CDRHYBRID120 = $14,
  100.     dtMT_CDRDATA80 = $15,
  101.     dtMT_CDRAUDIO80 = $16,
  102.     dtMT_CDRMIXED80 = $17,
  103.     dtMT_CDRHYBRID80 = $18,
  104.     dtMT_CDRWUNKNOWN = $20,
  105.     dtMT_CDRWDATA120 = $21,
  106.     dtMT_CDRWAUDIO120 = $22,
  107.     dtMT_CDRWMIXED120 = $23,
  108.     dtMT_CDRWHYBRID120 = $24,
  109.     dtMT_CDRWDATA80 = $25,
  110.     dtMT_CDRWAUDIO80 = $26,
  111.     dtMT_CDRWMIXED80 = $27,
  112.     dtMT_CDRWHYBRID80 = $28,
  113.     dtMT_NODISC = $70,
  114.     dtMT_DOOROPEN = $71
  115.     );
  116. type
  117.   PCDBurnerInfo = ^TCDBurnerInfo;
  118. // built to be able to add special types to the write settings
  119. Type
  120.  TSpecialDeviceType = Record
  121.     PDVR103       : Boolean;
  122.     SonyCRX100E   : Boolean;
  123.     TEAC512EB     : Boolean;
  124.     FlmmedCT      : Boolean;
  125.     SonyPowerBurn : Boolean;
  126.  end;
  127. Type
  128.   TDiskMediaType = Record
  129.      MediaType  : Integer;
  130.      MedialSize : Cardinal;
  131.    end;
  132. type
  133.   TBurnSettings = record
  134.     DataBlockType  : Integer;
  135.     WriteType      : Integer;
  136.     TrackMode      : Integer;
  137.     SessionType    : Integer;
  138.     EraseType      : Integer;
  139.     AudioPause     : Integer;
  140.     PacketSize     : Integer;
  141.     TestWrite      : Boolean;
  142.     BurnProof      : Boolean;
  143.     CloseSession   : Boolean;
  144.     CloseDisk      : Boolean;
  145.     DiskAtOnce     : Boolean;
  146.     SessionAtOnce  : Boolean;
  147.     SpecialDeviceType : TSpecialDeviceType;
  148.     MediaType      : TDiskMediaType;
  149.     MultiSession   : Boolean;
  150.     SetError       : string;
  151.   end;
  152. implementation
  153. end.