summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/libogcfpc/src/ogc/disc_io.inc
blob: c2869a452de66fa7379b312085fe4c1a955e3a43 (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
{$IFDEF OGC_INTERFACE}
const
  FEATURE_MEDIUM_CANREAD = $00000001;
  FEATURE_MEDIUM_CANWRITE = $00000002;
  FEATURE_GAMECUBE_SLOTA = $00000010;
  FEATURE_GAMECUBE_SLOTB = $00000020;
  FEATURE_GAMECUBE_DVD = $00000040;
  FEATURE_WII_SD = $00000100;
  FEATURE_WII_USB = $00000200;
  FEATURE_WII_DVD = $00000400;

type
  sec_t = cuint32;
  FN_MEDIUM_STARTUP = function: cbool; cdecl;
  FN_MEDIUM_ISINSERTED = function: cbool; cdecl;
  FN_MEDIUM_READSECTORS = function(sector, numSectors: sec_t; buffer: pointer)
    : cbool; cdecl;
  FN_MEDIUM_WRITESECTORS = function(sector, numSectors: sec_t; buffer: pointer)
    : cbool; cdecl;
  FN_MEDIUM_CLEARSTATUS = function: cbool; cdecl;
  FN_MEDIUM_SHUTDOWN = function: cbool; cdecl;

  DISC_INTERFACE_STRUCT = record
    ioType : culong;
    features : culong;
    startup : FN_MEDIUM_STARTUP;
    isInserted : FN_MEDIUM_ISINSERTED;
    readSectors : FN_MEDIUM_READSECTORS;
    writeSectors : FN_MEDIUM_WRITESECTORS;
    clearStatus : FN_MEDIUM_CLEARSTATUS;
    shutdown : FN_MEDIUM_SHUTDOWN;
  end;

  DISC_INTERFACE = DISC_INTERFACE_STRUCT;
  PDISC_INTERFACE = ^DISC_INTERFACE;
{$ENDIF}