Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
HBMRemoteSpk.h
Go to the documentation of this file.
1#ifndef HOMEBUTTON_REMOTE_SPK_H
2#define HOMEBUTTON_REMOTE_SPK_H
3
4#include <revolution/arc.h>
5#include <revolution/os.h>
6#include <revolution/wenc.h>
7#include <revolution/wpad.h>
8
9namespace homebutton {
10
11 class RemoteSpk {
12 private:
13 struct ChanInfo {
14 /* 0x00 */ OSAlarm alarm;
15 /* 0x30 */ WENCInfo wencinfo;
16 /* 0x50 */ const s16* in_pcm;
17 /* 0x54 */ int length;
18 /* 0x58 */ int seId;
19 /* 0x5C */ bool first;
20 /* 0x5D */ s8 vol;
21 /* 0x5E */ s8 cannotSendCnt;
22 /* 0x60 */ u16 pad_60;
23 /* 0x62 */ bool playReady;
24 }; // size = 0x68
25
26 public:
27 RemoteSpk(void* spkSeBuf);
28
29 bool isPlayReady(s32 chan) const;
30 bool isPlaying(s32 chan) const;
31 bool isPlayingId(s32 chan, int seId) const;
32
33 void GetPCMFromSeID(int in_ID, s16*& out_wave, int& out_length);
34 void ClearPcm();
35 void Start();
36 void Stop();
37 void Connect(s32 chan);
38 void Play(s32 chan, int seID, s8 vol);
39
40 static void SetInstance(RemoteSpk* pThis);
41 static RemoteSpk* GetInstance();
42
43 private:
44 static void UpdateSpeaker(OSAlarm* alarm, OSContext* context);
45
46 static void SpeakerOnCallback(s32 chan, s32 result);
47 static void DelaySpeakerOnCallback(OSAlarm* alarm, OSContext* context);
48
49 static void SpeakerPlayCallback(s32 chan, s32 result);
50 static void DelaySpeakerPlayCallback(OSAlarm* alarm, OSContext* context);
51
52 private:
53 /* 0x000 */ ChanInfo info[WPAD_MAX_CONTROLLERS];
54 /* 0x1A0 */ OSAlarm speakerAlarm;
55 /* 0x1D0 */ ARCHandle handle;
56 /* 0x1EC */ bool available;
57 /* 0x1F0 (vtable) */
58
59 public:
60 /* 0x08 */ virtual ~RemoteSpk();
61 }; // size = 0x1F8
62
63} // namespace homebutton
64
65#endif
Definition HBMRemoteSpk.h:11
void GetPCMFromSeID(int in_ID, s16 *&out_wave, int &out_length)
Definition HBMRemoteSpk.cpp:19
virtual ~RemoteSpk()
Definition HBMRemoteSpk.cpp:121
bool isPlaying(s32 chan) const
Definition HBMRemoteSpk.cpp:243
static void SpeakerOnCallback(s32 chan, s32 result)
Definition HBMRemoteSpk.cpp:162
static RemoteSpk * GetInstance()
Definition HBMRemoteSpk.cpp:15
void Connect(s32 chan)
Definition HBMRemoteSpk.cpp:212
bool isPlayingId(s32 chan, int seId) const
Definition HBMRemoteSpk.cpp:247
OSAlarm speakerAlarm
Definition HBMRemoteSpk.h:54
bool isPlayReady(s32 chan) const
Definition HBMRemoteSpk.cpp:255
void Start()
Definition HBMRemoteSpk.cpp:143
ChanInfo info[WPAD_MAX_CONTROLLERS]
Definition HBMRemoteSpk.h:53
void Stop()
Definition HBMRemoteSpk.cpp:153
void ClearPcm()
Definition HBMRemoteSpk.cpp:95
RemoteSpk(void *spkSeBuf)
Definition HBMRemoteSpk.cpp:102
static void UpdateSpeaker(OSAlarm *alarm, OSContext *context)
Definition HBMRemoteSpk.cpp:47
static void DelaySpeakerPlayCallback(OSAlarm *alarm, OSContext *context)
Definition HBMRemoteSpk.cpp:183
static void SpeakerPlayCallback(s32 chan, s32 result)
Definition HBMRemoteSpk.cpp:188
bool available
Definition HBMRemoteSpk.h:56
ARCHandle handle
Definition HBMRemoteSpk.h:55
void Play(s32 chan, int seID, s8 vol)
Definition HBMRemoteSpk.cpp:227
static void DelaySpeakerOnCallback(OSAlarm *alarm, OSContext *context)
Definition HBMRemoteSpk.cpp:157
static void SetInstance(RemoteSpk *pThis)
Definition HBMRemoteSpk.cpp:11
signed char s8
Definition types.h:7
signed short int s16
Definition types.h:9
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
Definition HBMAnmController.cpp:6
Definition arc.h:18
Definition OSAlarm.h:15
Definition OSContext.h:140
Definition wenc.h:14
Definition HBMRemoteSpk.h:13
int seId
Definition HBMRemoteSpk.h:18
int length
Definition HBMRemoteSpk.h:17
s8 vol
Definition HBMRemoteSpk.h:20
bool first
Definition HBMRemoteSpk.h:19
WENCInfo wencinfo
Definition HBMRemoteSpk.h:15
const s16 * in_pcm
Definition HBMRemoteSpk.h:16
u16 pad_60
Definition HBMRemoteSpk.h:22
s8 cannotSendCnt
Definition HBMRemoteSpk.h:21
OSAlarm alarm
Definition HBMRemoteSpk.h:14
bool playReady
Definition HBMRemoteSpk.h:23