mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 06:54:16 -04:00
82 lines
2.3 KiB
C++
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 */
|