Files
Jasper St. Pierre f15ed22cba JUTGba match
2023-10-11 00:23:35 -07:00

82 lines
2.3 KiB
C++

#ifndef JUTGBA_H
#define JUTGBA_H
#include "dolphin/os/OSMessage.h"
#include "dolphin/os/OSTime.h"
struct JUTGbaParam;
typedef void (*JUTGba_Func)(JUTGbaParam*, void*);
struct JUTGbaParam {
/* 0x00 */ OSMessageQueue msg_q;
/* 0x20 */ OSMessage msg[1];
/* 0x24 */ u32 field_0x24;
/* 0x28 */ s32 channel;
/* 0x2C */ u8* program;
/* 0x30 */ int length;
/* 0x34 */ int palette_color;
/* 0x38 */ int palette_speed;
/* 0x3C */ u8 field_0x3c;
/* 0x40 */ int field_0x40;
/* 0x44 */ u8 status;
/* 0x48 */ u8* field_0x48;
/* 0x4C */ JUTGba_Func field_0x4c;
/* 0x50 */ void* field_0x50;
/* 0x54 */ u8 field_0x54;
/* 0x58 */ int field_0x58;
};
struct JUTGbaThreadVar {
/* 0x00 */ JUTGbaParam* field_0x0;
/* 0x08 */ OSTime field_0x8;
/* 0x10 */ u32 field_0x10;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ u32 field_0x18;
/* 0x1C */ s32 field_0x1c;
};
class JUTGba {
public:
JUTGba();
static JUTGba* create();
int result_common(int, u32, u32*);
int resultStatus_common(int, u32, u8*);
void doJoyBoot(int, s32, s32, u8*, u32, JUTGba_Func, void*);
int resultJoyBoot(int, u8*);
void doInitProbe(int, JUTGba_Func, void*);
int resultInitProbe(int, u32*);
void doProbe(int, JUTGba_Func, void*);
BOOL resultProbe(int, u32*);
void doReset(int, JUTGba_Func, void*);
BOOL resultReset(int, u8*);
void doRead(int, u8*, JUTGba_Func, void*);
BOOL resultRead(int, u8*);
void doWrite(int, u8*, JUTGba_Func, void*);
BOOL resultWrite(int, u8*);
void doGetStatus(int, JUTGba_Func, void*);
BOOL resultGetStatus(int, u8*);
static void* gbaThreadMain(void*);
void gbaThread_sleep(OSTime);
void gbaThread_Destroy(JUTGbaThreadVar*);
int gbaThread_JoyBoot(JUTGbaThreadVar*);
int gbaThread_InitProbe(JUTGbaThreadVar*);
int gbaThread_Probe(JUTGbaThreadVar*);
int gbaThread_Reset(JUTGbaThreadVar*);
int gbaThread_Read(JUTGbaThreadVar*);
int gbaThread_Write(JUTGbaThreadVar*);
int gbaThread_GetStatus(JUTGbaThreadVar*);
static JUTGba* getManager() { return sManager; }
static JUTGba* sManager;
/* 0x0000 */ OSThread mThreads[4];
/* 0x0C60 */ u8 mStacks[4][4096];
/* 0x4C60 */ JUTGbaParam mParams[4];
/* 0x4DD0 */ u8 field0x4dd0[16];
};
#endif /* JUTGBA_H */