summaryrefslogtreecommitdiff
path: root/include/dolphin/dvd/dvdlow.h
blob: 3672cd1f896b0f29b649cf87ccd76710c7e2d4fd (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
#ifndef DVDLOW_H
#define DVDLOW_H

#include "dolphin/dvd/dvd.h" // IWYU pragma: export
#include "dolphin/types.h"
#include "dolphin/os/OSUtil.h"
#include "dolphin/os/OSContext.h"

typedef void (*DVDLowCallback)(u32 intType);
vu32 __DIRegs[16] AT_ADDRESS(0xCC006000);

void __DVDInitWA(void);
void __DVDInterruptHandler(short unused, OSContext * context);
void __DVDLowSetWAType(u32 type, u32 location);

BOOL DVDLowRead(void* addr, u32 length, u32 offset, DVDLowCallback callback);
BOOL DVDLowSeek(u32 offset, DVDLowCallback callback);
BOOL DVDLowWaitCoverClose(DVDLowCallback callback);
BOOL DVDLowReadDiskID(DVDDiskID* diskID, DVDLowCallback callback);
BOOL DVDLowStopMotor(DVDLowCallback callback);
BOOL DVDLowRequestError(DVDLowCallback callback);
BOOL DVDLowInquiry(DVDDriveInfo* info, DVDLowCallback callback);
BOOL DVDLowAudioStream(u32 subcmd, u32 length, u32 offset, DVDLowCallback callback);
BOOL DVDLowRequestAudioStatus(u32 subcmd, DVDLowCallback callback);
BOOL DVDLowAudioBufferConfig(BOOL enable, u32 size, DVDLowCallback callback);
void DVDLowReset();
BOOL DVDLowBreak();
DVDLowCallback DVDLowClearCallback(void);

#endif /* DVDLOW_H */