2015-08-22 23:42:29 -07:00
|
|
|
#ifndef __RETRO_CDVDFILE_HPP__
|
|
|
|
#define __RETRO_CDVDFILE_HPP__
|
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
|
|
|
|
|
|
|
namespace Retro
|
|
|
|
{
|
|
|
|
|
|
|
|
const char* DecodeARAMFile(const char* name);
|
|
|
|
|
|
|
|
enum ESeekOrigin
|
|
|
|
{
|
|
|
|
OriginBegin = 0,
|
|
|
|
OriginCur = 1,
|
|
|
|
OriginEnd = 2
|
|
|
|
};
|
|
|
|
|
|
|
|
struct DVDFileInfo;
|
|
|
|
class CDvdRequest;
|
|
|
|
|
|
|
|
class CDvdFile
|
|
|
|
{
|
2015-08-23 16:58:07 -07:00
|
|
|
friend class CResLoader;
|
|
|
|
std::string x18_name;
|
2015-08-22 23:42:29 -07:00
|
|
|
public:
|
|
|
|
CDvdFile(const char*);
|
|
|
|
void UpdateFilePos(int);
|
|
|
|
void CalcFileOffset(int, ESeekOrigin);
|
|
|
|
static void internalCallback(s32, DVDFileInfo*);
|
2015-08-23 16:58:07 -07:00
|
|
|
static bool FileExists(const char*);
|
2015-08-22 23:42:29 -07:00
|
|
|
void CloseFile();
|
|
|
|
CDvdRequest* AsyncSeekRead(void*, u32, ESeekOrigin, int);
|
|
|
|
void SyncSeekRead(void*, u32, ESeekOrigin, int);
|
|
|
|
CDvdRequest* AsyncRead(void*, u32);
|
|
|
|
void SyncRead(void*, u32);
|
|
|
|
void StallForARAMFile();
|
|
|
|
void StartARAMFileLoad();
|
|
|
|
void PopARAMFileLoad();
|
|
|
|
void PushARAMFileLoad();
|
|
|
|
void TryARAMFile();
|
|
|
|
void PingARAMTransfer();
|
|
|
|
void HandleDVDInterrupt();
|
|
|
|
void HandleARAMInterrupt();
|
|
|
|
static void ARAMARAMXferCallback(u32);
|
|
|
|
static void DVDARAMXferCallback(s32, DVDFileInfo*);
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __RETRO_CDVDFILE_HPP__
|