summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/cdrom/src/cdromw32.inc
blob: 578e286b18dd01cc4d26dfce8e7714a0f6d88e30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
uses wincd;


Function ReadCDTOC(Device : String; Var CDTOC : Array of TTocEntry) : Integer;

Var
  Toc :  TToc;
  I,Res : Integer;

begin
 Res:=ReadTOC(Device,TOC);
 If Res<0 then
   Result:=Res
 else
   begin
   If Res>High(CDTOC)+1 then
     Result:=-2
   else
     begin
     Result:=0;
     For I:=TOC.FirstTrack to Toc.LastTrack do
       begin
       With CDTOC[Result],TOC.TocTrack[Result] do
         begin
         min:=Addr[1];
         sec:=Addr[2];
         frame:=Addr[3]; // ?? tocentry.cdte_addr.msf.frame;
         inc(frame,min*60*75);
         inc(frame,sec*75);
         end;
       Inc(Result);
       end;
     // Lead out
     With CDTOC[Result],TOC.TocTrack[Result] do
       begin
       min:=Addr[1];
       sec:=Addr[2];
       frame:=Addr[3]; // ?? tocentry.cdte_addr.msf.frame;
       inc(frame,min*60*75);
       inc(frame,sec*75);
       end;
     end;
   end;
end;


Function GetCDRomDevices(Var Devices : Array of string) : Integer;
begin
  Result:=enumcddrives(Devices);
end;