Files
ac-decomp/include/JSystem/JKernel/JKRDvdRipper.h
T
2023-03-13 07:15:03 +00:00

48 lines
1.4 KiB
C++

#ifndef JKRDVDRIPPER_H
#define JKRDVDRIPPER_H
#include "types.h"
#include "JSystem/JKernel/JKRDvdFile.h"
#define SZP_BUFFERSIZE 1024
#define REF_BUFFERSIZE 0x1120
enum JKRExpandSwitch {
EXPAND_SWITCH_DEFAULT, /* Do nothing? treated same as 2 */
EXPAND_SWITCH_DECOMPRESS, /* Check for compression and decompress */
EXPAND_SWITCH_NONE /* Do nothing */
};
struct SZPHeader {
u32 magic;
u32 decompSize;
};
class JKRDMCommand {
JKRDMCommand();
~JKRDMCommand();
};
class JKRDvdRipper {
public:
enum EAllocDirection {
ALLOC_DIR_DEFAULT = 0,
ALLOC_DIR_TOP = 1,
ALLOC_DIR_BOTTOM = 2
};
static void* loadToMainRAM(const char* file, u8* buf, JKRExpandSwitch expandSwitch, u32 maxDest, JKRHeap* heap, EAllocDirection allocDir, u32 offset, int* compressMode);
static void* loadToMainRAM(s32 entrynum, u8* buf, JKRExpandSwitch expandSwitch, u32 maxDest, JKRHeap* heap, EAllocDirection allocDir, u32 offset, int* compressMode);
static void* loadToMainRAM(JKRDvdFile* file, u8* buf, JKRExpandSwitch expandSwitch, u32 maxDest, JKRHeap* heap, EAllocDirection allocDir, u32 offset, int* compressMode);
static inline bool isErrorRetry() { return JKRDvdRipper::errorRetry; }
static JSUList<JKRDMCommand> sDvdAsyncList;
static bool errorRetry;
};
static int JKRDecompressFromDVD(JKRDvdFile* srcFile, void* buf, u32 size, u32 maxDest, u32 fileOffset, u32 srcOffset);
#endif