blob: 2eba2eec7f72b54d3f1bf2eb9965005dd6c3469f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef PADMGR_H
#define PADMGR_H
#include "ultra64.h"
#include "libu64/pad.h"
#include "unk.h"
typedef struct Padmgr {
/* 0x000 */ u8 unk_000;
/* 0x004 */ void (*rumbleRetraceCallback)(void*);
/* 0x008 */ void* rumbleRetraceArg;
/* 0x00C */ void (*inputRetraceCallback)(void*);
/* 0x010 */ void* inputRetraceArg;
/* 0x014 */ UNK_TYPE1 unk_014[0x2B0 - 0x14];
/* 0x2B0 */ OSContPad pads[MAXCONTROLLERS];
/* 0x2C8 */ UNK_TYPE1 unk_2C8[0x480 - 0x2C8];
} Padmgr; // size = 0x480
#define PADMGR_SET_RETRACE_CALLACK(callback, arg) \
do { \
padmgr_class.inputRetraceCallback = (callback); \
padmgr_class.inputRetraceArg = (arg); \
} while (0)
#define PADMGR_UNSET_RETRACE_CALLACK(callback, param) \
do { \
Padmgr* mgr = &padmgr_class; \
if (mgr->inputRetraceCallback == (callback) && mgr->inputRetraceArg == (param)) { \
mgr->inputRetraceCallback = NULL; \
mgr->inputRetraceArg = NULL; \
} \
} while (0)
OSMesgQueue* padmgr_LockSerialMesgQ(void);
void padmgr_UnlockSerialMesgQ(OSMesgQueue*);
// void padmgr_LockContData();
// void padmgr_UnlockContData();
// void func_800D6AD4_jp();
// void func_800D6AEC_jp();
// void func_800D6B0C_jp();
// void func_800D6B34_jp();
// void padmgr_PakConnectCheck();
// void padmgr_HandleDoneReadPadMsg();
// void padmgr_ConnectCheck();
// void padmgr_HandleRetraceMsg();
// void padmgr_HandlePreNMIMsg();
// void padmgr_RequestPadData_NonLock();
void padmgr_RequestPadData(Input inputs[4], s32 arg1);
void padmgr_ClearPadData(Input inputs[4]);
// void padmgr_MainProc();
// void padmgr_Init();
// void func_800D763C_jp();
// void func_800D765C_jp();
s32 padmgr_isConnectedAnyPak(s32 arg0);
extern Padmgr padmgr_class;
#endif
|