mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 14:41:38 -04:00
63 lines
2.1 KiB
C++
63 lines
2.1 KiB
C++
#ifndef JKRDVDRIPPER_H
|
|
#define JKRDVDRIPPER_H
|
|
|
|
#include "types.h"
|
|
#include "JSystem/JKernel/JKREnum.h"
|
|
#include "JSystem/JKernel/JKRDvdFile.h"
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#define SZP_BUFFERSIZE 1024
|
|
#define REF_BUFFERSIZE 0x1120
|
|
#define DMA_BUFFERSIZE 0x100
|
|
|
|
struct SZPHeader {
|
|
u32 magic;
|
|
u32 decompSize;
|
|
};
|
|
|
|
struct SYaz0Header {
|
|
u32 signature;
|
|
u32 length;
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
inline void* JKRDvdToMainRam(long entryNum, u8* dst, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap* heap,
|
|
JKRDvdRipper::EAllocDirection allocDirection, u32 startOffset, int* pCompression) {
|
|
return JKRDvdRipper::loadToMainRAM(entryNum, dst, expandSwitch, fileSize, heap, allocDirection, startOffset,
|
|
pCompression);
|
|
}
|
|
|
|
inline void* JKRDvdToMainRam(const char* path, u8* dst, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap* heap,
|
|
JKRDvdRipper::EAllocDirection allocDirection, u32 startOffset, int* pCompression) {
|
|
return JKRDvdRipper::loadToMainRAM(path, dst, expandSwitch, fileSize, heap, allocDirection, startOffset,
|
|
pCompression);
|
|
}
|
|
|
|
#endif
|
|
#endif
|