| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- unit MMCDATyp;
- {$I COMPILER.INC}
- interface
- uses
- Windows,
- MMSystem,
- MMSCSI;
- const
- CDDADLL_VERSION = 20;
- const
- SECTOR_LEN = 2368;
- FRAME_SIZE = 2352;
- DATA_SECTOR = 2048;
- TIMEOUT = 10000;
- FRAME_OFFSET = 150;
- SINGLE_SPEED = 75*FRAME_SIZE;
- type
- THCDDA = integer;
- { ASPI Device Info }
- PASPIDeviceInfo = ^TASPIDeviceInfo;
- TASPIDeviceInfo = packed record
- Adapter : integer; // haId
- TargetId : integer;
- LUN : Integer;
- Data : TScsiInquiry;
- lpNext : PASPIDeviceInfo;
- end;
- {==========================================================================}
- PASPIInfo = ^TASPIInfo;
- TASPIInfo = packed record
- FNumAdapters : Byte;
- FDevices : PASPIDeviceInfo;
- end;
- {==========================================================================}
- TCDTrackType = (ttData,ttAudio);
- TCDISRC = array[0..12] of Char;
- TCDUPC = array[0..13] of Char;
- {==========================================================================}
- PCDTrack = ^TCDTrack; { Track-Info }
- TCDTrack = packed record
- Number : Integer;
- Start : Integer; // MSF
- Length : Integer; // MSF
- TrackType : TCDTrackType;
- CopyProtected : LongBool;
- PreEmphasis : LongBool;
- end;
- {==========================================================================}
- PCDTrackInfo = ^TCDTrackInfo; { TOC-Info }
- TCDTrackInfo = packed record
- nTracks : Integer;
- Tracks : array[0..99] of TCDTrack;
- end;
- TCDText = array[0..160] of Char;
- {==========================================================================}
- PCDTextTrack = ^TCDTextTrack; { CDText Track Info }
- TCDTextTrack = packed record
- TrackNr : integer;
- TrackTitle : TCDText;
- Performer : TCDText;
- SongWriter : TCDText;
- Composer : TCDText;
- Arranger : TCDText;
- Message : TCDText;
- DiskID : TCDText;
- GenreInfo : TCDText;
- UPC_EAN_ISRC : TCDText;
- end;
- {==========================================================================}
- PCDTextBlock = ^TCDTextBlock; { CDText Block (language) }
- TCDTextBlock = packed record
- nTracks : integer;
- Tracks : array[0..100] of TCDTextTrack; // Track 0 = AlbumTitle
- end;
- {==========================================================================}
- PCDTextInfo = ^TCDTextInfo; { CDText TOC-Info }
- TCDTextInfo = packed record
- Blocks : array[0..7] of PCDTextBlock;
- end;
- const
- AUTO = 'AutoDetect';
- ATAPI = 'ATAPI';
- CYBER = 'CYBER';
- DEC_ = 'DEC';
- GRUNDIG = 'GRUNDIG';
- HITACHI = 'HITACHI';
- HP = 'HP';
- IBM = 'IBM';
- IMS = 'IMS';
- KODAK = 'KODAK';
- MATSHITA = 'MATSHITA';
- MITSUMI = 'MITSUMI';
- MP = 'MP';
- MS = 'MS';
- NEC = 'NEC';
- PANASONIC = 'PANASONIC';
- PHILIPS = 'PHILIPS';
- PIONEER = 'PIONEER';
- PLASMON = 'PLASMON';
- PLEXTOR = 'PLEXTOR';
- RICOH = 'RICOH';
- SONY = 'SONY';
- TOSHIBA = 'TOSHIBA';
- TEAC = 'TEAC';
- YAMAHA = 'YAMAHA';
- type
- {==========================================================================}
- TCDDeviceType = (dtAUTO,
- dtATAPI,
- dtCYBER,
- dtDEC,
- dtGRUNDIG,
- dtHITACHI,
- dtHP,
- dtIBM,
- dtIMS,
- dtKODAK,
- dtMATSHITA,
- dtMITSUMI,
- dtMP,
- dtMS,
- dtNEC,
- dtPANASONIC,
- dtPHILIPS,
- dtPIONEER,
- dtPLASMON,
- dtPLEXTOR,
- dtRICOH,
- dtSONY,
- dtTOSHIBA,
- dtTEAC,
- dtYAMAHA);
- const
- {==========================================================================}
- CDDeviceTypes: array[0..24] of string =
- (AUTO,
- ATAPI,
- CYBER,
- DEC_,
- GRUNDIG,
- HITACHI,
- HP,
- IBM,
- IMS,
- KODAK,
- MATSHITA,
- MITSUMI,
- MP,
- MS,
- NEC,
- PANASONIC,
- PHILIPS,
- PIONEER,
- PLASMON,
- PLEXTOR,
- RICOH,
- SONY,
- TOSHIBA,
- TEAC,
- YAMAHA);
- const
- {==========================================================================}
- { ASPI Error codes }
- {==========================================================================}
- ASPI_ERRBASE = -100;
- ASPI_NOERROR = 0;
- ASPI_DLLERROR = ASPI_ERRBASE - 1;
- ASPI_NOMANAGER = ASPI_ERRBASE - 2;
- ASPI_NOADAPTER = ASPI_ERRBASE - 3;
- ASPI_INVALIDDEVICE = ASPI_ERRBASE - 4;
- ASPI_TIMEOUT = ASPI_ERRBASE - 5;
- ASPI_UNKNOWNERROR = ASPI_ERRBASE - 100;
- {==========================================================================}
- { CDDA Error codes }
- {==========================================================================}
- CDDA_ERRBASE = 0;
- CDDA_NOERROR = CDDA_ERRBASE;
- CDDA_INITFAILURE = CDDA_ERRBASE - 1;
- CDDA_INVALHANDLE = CDDA_ERRBASE - 2;
- CDDA_INVALPARAM = CDDA_ERRBASE - 3;
- CDDA_INVALIDDEVICE = CDDA_ERRBASE - 4;
- CDDA_ALLOCATED = CDDA_ERRBASE - 5;
- CDDA_NOTREADY = CDDA_ERRBASE - 6;
- CDDA_CANNOTOPEN = CDDA_ERRBASE - 7;
- CDDA_CANNOTCLOSE = CDDA_ERRBASE - 8;
- CDDA_CANNOTLOAD = CDDA_ERRBASE - 9;
- CDDA_CANNOTPLAY = CDDA_ERRBASE - 10;
- CDDA_CANNOTPAUSE = CDDA_ERRBASE - 11;
- CDDA_CANNOTRESUME = CDDA_ERRBASE - 12;
- CDDA_CANNOTSTOP = CDDA_ERRBASE - 13;
- CDDA_CANNOTLOCK = CDDA_ERRBASE - 14;
- CDDA_CANNOTREAD = CDDA_ERRBASE - 15;
- CDDA_SYNCERROR = CDDA_ERRBASE - 16;
- CDDA_NOTSUPPORTED = CDDA_ERRBASE - 17;
- CDDA_UNKNOWNERROR = CDDA_ERRBASE - 100;
- function MSFToFrame(MSF: Longint): Longint;
- function Frame2MSF(Frame: Longint; M, S, F: PInteger): Longint;
- function FrameToMSF(Frame: Longint): Longint;
- function MSFToSecond(MSF: Longint): Longint;
- function MSFToTime(MSF: Longint): Longint;
- function TimeToMSF(Time: Longint): Longint;
- implementation
- end.
|