Decompile HuDVDReadAsyncCallBack

This commit is contained in:
gamemasterplc 2023-11-24 00:18:52 -06:00
parent c831b27965
commit 5001e49b8d
2 changed files with 28 additions and 3 deletions

View file

@ -2,6 +2,7 @@
#define _COMMON_STRUCTS_H #define _COMMON_STRUCTS_H
#include "types.h" #include "types.h"
#include "dolphin/dvd.h"
typedef struct UnkOvl { typedef struct UnkOvl {
s32 unk0; s32 unk0;
@ -62,4 +63,16 @@ typedef struct file_list_entry {
s32 file_id; s32 file_id;
} FileListEntry; } FileListEntry;
typedef struct data_stat {
s32 dir_id;
void *dir;
void *data;
u32 raw_len;
u32 comp_type;
BOOL used;
s32 num;
u32 status;
DVDFileInfo file_info;
} DataStat;
#endif #endif

View file

@ -3,6 +3,7 @@
#include "dolphin/os.h" #include "dolphin/os.h"
extern u32 DirDataSize; extern u32 DirDataSize;
extern void HuDataDirReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo);
static DVDDiskID correctDiskID = { static DVDDiskID correctDiskID = {
{ 'M', 'P', 'G', 'C' }, //gameName { 'M', 'P', 'G', 'C' }, //gameName
@ -18,7 +19,7 @@ void HuDvdErrorWatch();
static s32 beforeDvdStatus; static s32 beforeDvdStatus;
static int CallBackStatus; static int CallBackStatus;
static void HuDVDReadAsyncCallBack() static void HuDVDReadAsyncCallBack(s32 result, DVDFileInfo* fileInfo)
{ {
CallBackStatus = 1; CallBackStatus = 1;
} }
@ -125,9 +126,8 @@ void *HuDvdDataFastReadNum(s32 entrynum, s32 num)
DVDFileInfo file; DVDFileInfo file;
void *data = NULL; void *data = NULL;
if(!DVDFastOpen(entrynum, &file)) { if(!DVDFastOpen(entrynum, &file)) {
OSPanic("dvd.c", 258, "dvd.c: File Open Error");
(void)num; (void)num;
(void)data; OSPanic("dvd.c", 258, "dvd.c: File Open Error");
} else { } else {
data = HuDvdDataReadWait(&file, 3, 1, num, HuDVDReadAsyncCallBack, FALSE); data = HuDvdDataReadWait(&file, 3, 1, num, HuDVDReadAsyncCallBack, FALSE);
DVDClose(&file); DVDClose(&file);
@ -135,6 +135,18 @@ void *HuDvdDataFastReadNum(s32 entrynum, s32 num)
return data; return data;
} }
void *HuDvdDataFastReadAsync(s32 entrynum, DataStat *stat)
{
DVDFileInfo file;
void *data = NULL;
if(!DVDFastOpen(entrynum, &stat->file_info)) {
OSPanic("dvd.c", 274, "dvd.c: File Open Error");
} else {
data = HuDvdDataReadWait(&stat->file_info, 3, 0, 0, HuDataDirReadAsyncCallBack, TRUE);
}
return data;
}
void HuDvdDataClose(void *ptr) void HuDvdDataClose(void *ptr)
{ {
if(ptr) { if(ptr) {