Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
HBMController.h
Go to the documentation of this file.
1#ifndef HOMEBUTTON_CONTROLLER_H
2#define HOMEBUTTON_CONTROLLER_H
3
4#include <revolution/mtx.h>
5#include <revolution/os.h>
6#include <revolution/wpad.h>
7#include "HBMCommon.h"
8#include "HBMRemoteSpk.h"
11
12
14 /* 0x00 */ int chan;
15 /* 0x04 */ f32 spVol;
16 /* 0x08 */ f32 x;
17 /* 0x0C */ f32 y;
18 /* 0x10 */ u32 trig;
19 /* 0x14 */ u32 hold;
20 /* 0x18 */ u32 release;
21 /* 0x1C */ bool rumble;
22}; // size = 0x20
23
24namespace homebutton {
25
26 class Controller {
27 public:
28 Controller(int chan, RemoteSpk* spk);
30
32 int getChan() const;
33 f32 getSpeakerVol() const;
34 RemoteSpk* getRemoteSpk() const { return remotespk; }
35 bool isRumbling() { return mHBController.rumble; }
36 bool getBatteryFlag() const;
37
38 void setSpeakerVol(f32 vol);
39 void setRumble() { mHBController.rumble = true; }
40 void clrRumble() { mHBController.rumble = false; }
41
43 bool isPlayReady() const;
44 bool isPlayingSound() const;
45 bool isPlayingSoundId(int id) const;
46
47 void setKpad(const HBMKPadData* con, bool updatePos);
48 void setInValidPos();
49 void clrBatteryFlag();
50 void clrKpadButton();
51
52 void connect();
53 void disconnect();
54
55 void initSound();
56 void updateSound();
57 void playSound(nw4hbm::snd::SoundArchivePlayer* pSoundArchivePlayer, int id);
58
59 void soundOn();
60 void soundOff(int msec);
61
62 void startMotor();
63 void stopMotor();
64
65 void initCallback();
66 void clearCallback();
67
68 static RemoteSpk* GetInstance() { return sPInstance; }
69 static void SetInstance(RemoteSpk* p) { sPInstance = p; }
70
71 private:
72 static void wpadConnectCallback(s32 chan, s32 result);
73 static void wpadExtensionCallback(s32 chan, s32 result);
74 static void soundOnCallback(OSAlarm* alm, OSContext* context);
75 static void ControllerCallback(s32 chan, s32 result);
76
77 private:
80 /* 0x24 */ RemoteSpk* remotespk;
85 /* 0x40 */ bool mCallbackFlag;
86 /* 0x41 */ bool mSoundOffFlag;
87 /* 0x42 */ bool mCheckSoundTimeFlag;
88 /* 0x43 */ bool mCheckSoundIntervalFlag;
89
90 private:
91 static bool sBatteryFlag[WPAD_MAX_CONTROLLERS];
92 static OSAlarm sAlarm[WPAD_MAX_CONTROLLERS];
93 static OSAlarm sAlarmSoundOff[WPAD_MAX_CONTROLLERS];
94 static Controller* sThis[WPAD_MAX_CONTROLLERS];
95 static bool sSetInfoAsync[WPAD_MAX_CONTROLLERS];
98 }; // size = 0x44
99
100} // namespace homebutton
101
102#endif
Definition HBMController.h:26
WPADExtensionCallback mOldExtensionCallback
Definition HBMController.h:82
void soundOn()
Definition HBMController.cpp:290
void setSpeakerVol(f32 vol)
Definition HBMController.cpp:192
bool isPlayReady() const
Definition HBMController.cpp:300
static void wpadExtensionCallback(s32 chan, s32 result)
Definition HBMController.cpp:39
static void SetInstance(RemoteSpk *p)
Definition HBMController.h:69
static bool sBatteryFlag[WPAD_MAX_CONTROLLERS]
Definition HBMController.h:91
bool mCheckSoundTimeFlag
Definition HBMController.h:87
OSTime mPlaySoundTime
Definition HBMController.h:83
f32 getSpeakerVol() const
Definition HBMController.cpp:196
void setKpad(const HBMKPadData *con, bool updatePos)
Definition HBMController.cpp:105
bool isRumbling()
Definition HBMController.h:35
void clrKpadButton()
Definition HBMController.cpp:171
static void wpadConnectCallback(s32 chan, s32 result)
Definition HBMController.cpp:13
void initSound()
Definition HBMController.cpp:231
static RemoteSpk * GetInstance()
Definition HBMController.h:68
WPADConnectCallback mOldConnectCallback
Definition HBMController.h:81
static s32 lbl_8025DBBC
Definition HBMController.h:97
static void ControllerCallback(s32 chan, s32 result)
Definition HBMController.cpp:334
void setRumble()
Definition HBMController.h:39
void soundOff(int msec)
Definition HBMController.cpp:274
static void soundOnCallback(OSAlarm *alm, OSContext *context)
Definition HBMController.cpp:51
RemoteSpk * remotespk
Definition HBMController.h:80
OSTime mStopSoundTime
Definition HBMController.h:84
nw4hbm::snd::SoundHandle mSoundHandle
Definition HBMController.h:79
int getChan() const
Definition HBMController.cpp:182
bool mSoundOffFlag
Definition HBMController.h:86
void clrRumble()
Definition HBMController.h:40
bool isPlayingSound() const
Definition HBMController.cpp:215
s32 getInfoAsync(WPADInfo *info)
Definition HBMController.cpp:322
static bool sSetInfoAsync[WPAD_MAX_CONTROLLERS]
Definition HBMController.h:95
void initCallback()
Definition HBMController.cpp:80
~Controller()
Definition HBMController.cpp:75
void updateSound()
Definition HBMController.cpp:236
void startMotor()
Definition HBMController.cpp:308
void disconnect()
Definition HBMController.cpp:190
Controller(int chan, RemoteSpk *spk)
Definition HBMController.cpp:56
void playSound(nw4hbm::snd::SoundArchivePlayer *pSoundArchivePlayer, int id)
Definition HBMController.cpp:200
static RemoteSpk * sPInstance
Definition HBMController.h:96
bool mCallbackFlag
Definition HBMController.h:85
void clearCallback()
Definition HBMController.cpp:97
HBController mHBController
Definition HBMController.h:78
static OSAlarm sAlarm[WPAD_MAX_CONTROLLERS]
Definition HBMController.h:92
bool mCheckSoundIntervalFlag
Definition HBMController.h:88
static Controller * sThis[WPAD_MAX_CONTROLLERS]
Definition HBMController.h:94
void connect()
Definition HBMController.cpp:186
RemoteSpk * getRemoteSpk() const
Definition HBMController.h:34
void setInValidPos()
Definition HBMController.cpp:177
void clrBatteryFlag()
Definition HBMController.cpp:348
static OSAlarm sAlarmSoundOff[WPAD_MAX_CONTROLLERS]
Definition HBMController.h:93
HBController * getController()
Definition HBMController.cpp:304
bool getBatteryFlag() const
Definition HBMController.cpp:340
void stopMotor()
Definition HBMController.cpp:315
bool isPlayingSoundId(int id) const
Definition HBMController.cpp:219
Definition HBMRemoteSpk.h:11
Definition SoundArchivePlayer.h:46
Definition SoundHandle.h:12
s64 OSTime
Definition os.h:19
p
Definition e_acos.c:103
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
signed long s32
Definition types.h:11
Definition HBMAnmController.cpp:6
Definition HBMController.h:13
f32 x
Definition HBMController.h:16
f32 y
Definition HBMController.h:17
u32 trig
Definition HBMController.h:18
bool rumble
Definition HBMController.h:21
u32 hold
Definition HBMController.h:19
f32 spVol
Definition HBMController.h:15
u32 release
Definition HBMController.h:20
int chan
Definition HBMController.h:14
Definition hbm.h:82
Definition OSAlarm.h:15
Definition OSContext.h:140
Definition wpad.h:159
void(* WPADExtensionCallback)(s32 chan, s32 devType)
Definition wpad.h:147
void(* WPADConnectCallback)(s32 chan, s32 result)
Definition wpad.h:152