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

75 lines
2.3 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JKRDVDRIPPER_H
#define JKRDVDRIPPER_H
2023-05-12 12:10:14 -07:00
#include "JSystem/JKernel/JKRCompression.h"
2023-07-21 19:30:25 +03:00
#include "JSystem/JSupport/JSUList.h"
2021-03-28 22:49:05 +02:00
2021-05-03 02:03:24 +02:00
enum JKRExpandSwitch {
EXPAND_SWITCH_UNKNOWN0 = 0,
EXPAND_SWITCH_UNKNOWN1 = 1,
EXPAND_SWITCH_UNKNOWN2 = 2,
};
2022-06-07 13:03:27 -07:00
struct SYaz0Header {
u32 signature;
u32 length;
};
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jkernel
*
*/
2023-07-21 19:30:25 +03:00
class JKRDMCommand {
JKRDMCommand();
~JKRDMCommand();
};
2021-05-03 02:03:24 +02:00
class JKRHeap;
class JKRDvdFile;
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jkernel
*
*/
2021-05-03 02:03:24 +02:00
class JKRDvdRipper {
public:
2023-07-21 19:30:25 +03:00
static JSUList<JKRDMCommand> sDvdAsyncList;
2021-05-03 02:03:24 +02:00
static u32 sSZSBufferSize;
enum EAllocDirection {
UNKNOWN_EALLOC_DIRECTION = 0,
ALLOC_DIRECTION_FORWARD = 1,
ALLOC_DIRECTION_BACKWARD = 2,
};
static void setSZSBufferSize(u32 size) { sSZSBufferSize = size; }
2021-05-03 02:03:24 +02:00
static void* loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection,
u32, JKRCompression*, u32*);
2023-09-24 02:05:03 -07:00
static void* loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32,
2021-05-03 02:03:24 +02:00
JKRCompression*, u32*);
static void* loadToMainRAM(JKRDvdFile*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection,
u32, JKRCompression*, u32*);
2022-06-07 13:03:27 -07:00
static u8 isErrorRetry(void);
2023-07-21 19:30:25 +03:00
inline static u32 getSZSBufferSize() { return sSZSBufferSize; }
2021-05-03 02:03:24 +02:00
};
// void JKRDecompressFromDVD(JKRDvdFile*, void*, u32, u32, u32, u32, u32*);
inline void* JKRDvdToMainRam(s32 entryNum, u8* dst, JKRExpandSwitch expandSwitch, u32 dstLength,
JKRHeap* heap, JKRDvdRipper::EAllocDirection allocDirection,
u32 offset, JKRCompression* compression, u32* returnSize) {
return JKRDvdRipper::loadToMainRAM(entryNum, dst, expandSwitch, dstLength, heap, allocDirection,
offset, compression, returnSize);
}
2022-04-10 16:29:58 -06:00
inline void* JKRDvdToMainRam(const char* name, u8* dst, JKRExpandSwitch expandSwitch, u32 dstLength,
JKRHeap* heap, JKRDvdRipper::EAllocDirection allocDirection,
u32 offset, JKRCompression* compression, u32* returnSize) {
return JKRDvdRipper::loadToMainRAM(name, dst, expandSwitch, dstLength, heap, allocDirection,
2022-02-07 17:47:45 -08:00
offset, compression, returnSize);
}
2021-03-28 22:49:05 +02:00
#endif /* JKRDVDRIPPER_H */