mirror of
https://github.com/zeldaret/tp
synced 2026-05-25 23:35:23 -04:00
86f892c3d3
* JKRDvdArchive.s split * JKRMemArchive.s split * JKRAramArchive.s split * JKRCompArchive.s split * JKRDecomp.s split * JKRDvdRipper.s split * JKRAramBlock.s split * JKRAramHeap.s split * JKRAramPiece.s split * JKRAramStream.s split * removed unused .s files * JKRDvdAramRipper.s split * JKRAram.s split * cleanup and making vtables easier to debug * fixed merge errors * fixed JKRFileLoader::fetchVolumeName Co-authored-by: Pheenoh <pheenoh@gmail.com>
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
#ifndef __JKRDVDFILE_H__
|
|
#define __JKRDVDFILE_H__
|
|
|
|
#include "dolphin/types.h"
|
|
#include "JSystem/JKernel/JKRFile/JKRFile.h"
|
|
#include "global.h"
|
|
|
|
class DVDFileInfo;
|
|
class JKRDvdFile : public JKRFile {
|
|
public:
|
|
JKRDvdFile();
|
|
JKRDvdFile(char const*);
|
|
JKRDvdFile(long);
|
|
virtual ~JKRDvdFile();
|
|
|
|
void initiate(void);
|
|
s32 sync(void);
|
|
|
|
int getFileID() const {
|
|
return this->mFileID << 2;
|
|
}
|
|
|
|
const u8* getFileInfo() const {
|
|
return this->mDvdCommandBlock;
|
|
}
|
|
|
|
int getStatus() {
|
|
return DVDGetCommandBlockStatus(&this->mDvdCommandBlock[0]);
|
|
}
|
|
|
|
public:
|
|
/* vt[03] */ virtual bool open(char const*); /* override */
|
|
/* vt[04] */ virtual void close(void); /* override */
|
|
/* vt[05] */ virtual s32 readData(void*, long, long); /* override */
|
|
/* vt[06] */ virtual s32 writeData(void const*, long, long); /* override */
|
|
/* vt[07] */ virtual s32 getFileSize(void) const; /* override */
|
|
/* vt[08] */ virtual bool open(long);
|
|
|
|
private:
|
|
OSMutex mMutex1;
|
|
OSMutex mMutex2;
|
|
u32 field_0x4c;
|
|
u32 field_0x50;
|
|
u32 field_0x54;
|
|
u32 field_0x58;
|
|
u8 mDvdCommandBlock[48];
|
|
s32 mFileID;
|
|
s32 mFileSize;
|
|
u32 field_0x94;
|
|
JKRDvdFile* mDvdFile;
|
|
OSMessageQueue mQueue1;
|
|
OSMessage mMessages1[1];
|
|
OSMessageQueue mQueue2;
|
|
OSMessage mMessages2[1];
|
|
JSULink<JKRDvdFile> mDvdLink;
|
|
OSThread* mOSThread;
|
|
|
|
public:
|
|
static void doneProcess(long, DVDFileInfo*);
|
|
};
|
|
|
|
|
|
#endif
|