tp/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h

60 lines
1.3 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);
~JKRDvdFile();
void initiate(void);
s32 sync(void);
static void doneProcess(long, DVDFileInfo*);
virtual bool open(char const*);
virtual void close(void);
virtual s32 readData(void*, long, long);
virtual s32 writeData(void const*, long, long);
virtual s32 getFileSize(void) const;
virtual bool open(long);
int getFileID() const {
return this->mFileID << 2;
}
const u8* getFileInfo() const {
return this->mDvdCommandBlock;
}
int getStatus() {
return DVDGetCommandBlockStatus(&this->mDvdCommandBlock[0]);
}
protected:
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;
};
#endif