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

69 lines
1.9 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JKRDVDFILE_H
#define JKRDVDFILE_H
2021-05-03 02:03:24 +02:00
#include "JSystem/JKernel/JKRFile.h"
2024-01-19 16:22:19 -08:00
#include "dolphin/dvd.h"
#include <dolphin/os.h>
#include <dolphin/os.h>
2021-03-28 22:49:05 +02:00
2023-05-12 12:10:14 -07:00
struct OSThread;
2021-05-03 02:03:24 +02:00
class JKRADCommand;
2022-05-16 16:42:10 -07:00
class JKRAramBlock;
2021-05-03 02:03:24 +02:00
class JSUFileInputStream;
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jkernel
*
*/
2021-05-03 02:03:24 +02:00
class JKRDvdFile : public JKRFile {
public:
JKRDvdFile();
JKRDvdFile(const char*);
2023-09-24 02:05:03 -07:00
JKRDvdFile(s32);
2021-05-03 02:03:24 +02:00
virtual ~JKRDvdFile();
void initiate(void);
s32 sync(void);
u32 getFileID() const { return mFileInfo.startAddr; }
2022-06-07 13:03:27 -07:00
DVDFileInfo* getFileInfo() { return &mFileInfo; }
int getStatus() { return DVDGetCommandBlockStatus(&mFileInfo.cb); }
2021-05-03 02:03:24 +02:00
public:
/* vt[03] */ virtual bool open(const char*); /* override */
/* vt[04] */ virtual void close(void); /* override */
/* vt[05] */ virtual s32 readData(void*, s32, s32); /* override */
/* vt[06] */ virtual s32 writeData(const void*, s32, s32); /* override */
/* vt[07] */ virtual s32 getFileSize(void) const; /* override */
/* vt[08] */ virtual bool open(s32);
2022-12-19 11:06:32 -08:00
// private:
2021-05-03 02:03:24 +02:00
/* 0x00 */ // vtable
/* 0x04 */ // JKRFile
/* 0x1C */ OSMutex mMutex1;
/* 0x34 */ OSMutex mMutex2;
2022-05-16 16:42:10 -07:00
/* 0x4C */ JKRAramBlock* mBlock;
/* 0x50 */ OSThread* field_0x50;
/* 0x54 */ JSUFileInputStream* mFileStream;
2021-05-03 02:03:24 +02:00
/* 0x58 */ u32 field_0x58;
/* 0x5C */ DVDFileInfo mFileInfo;
/* 0x98 */ JKRDvdFile* mDvdFile;
/* 0x9C */ OSMessageQueue mMessageQueue1;
/* 0xBC */ OSMessage mMessage1;
/* 0xC0 */ OSMessageQueue mMessageQueue2;
/* 0xE0 */ OSMessage mMessage2;
/* 0xE4 */ JSULink<JKRDvdFile> mDvdLink;
/* 0xF4 */ OSThread* mOSThread;
public:
2023-09-24 02:05:03 -07:00
static void doneProcess(s32, DVDFileInfo*);
2021-05-03 02:03:24 +02:00
static JSUList<JKRDvdFile>& getDvdList() { return sDvdList; }
private:
static JSUList<JKRDvdFile> sDvdList;
};
2021-03-28 22:49:05 +02:00
#endif /* JKRDVDFILE_H */