Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
WavePlayer.h
Go to the documentation of this file.
1#ifndef NW4HBM_SND_WAVE_PLAYER_H
2#define NW4HBM_SND_WAVE_PLAYER_H
3
4#include "snd_types.h"
5
6#include "AxVoice.h"
7
8#include "../ut/LinkList.h"
9
10#include <revolution/wpad.h>
11
12namespace nw4hbm {
13 namespace snd {
14
15 namespace detail {
16 class SoundThread;
17 }
18
19 class WavePlayer {
20 public:
21 friend class detail::SoundThread;
27
28 class WavePacket {
30 virtual ~WavePacket() {}
31
32 private:
34 /* 0x14 */ bool mAppendFlag;
35
36 public:
38
39 friend class WavePlayer;
40 };
41 typedef ut::LinkList<WavePacket, offsetof(WavePacket, mLinkNode)> WavePacketList;
42
47
49 void*);
50
51 typedef struct SetupParam {
52 /* 0x00 */ int channelCount;
54 /* 0x08 */ int sampleRate;
55 /* 0x0C */ f32 pitchMax;
56 /* 0x10 */ int voiceCount;
58
60 virtual ~WavePlayer();
61
62 void InitParam();
64 void* callbackArg);
65
67
68 void Start();
69 void Stop();
70 void Pause(bool flag);
71
72 void Shutdown();
73
74 void StartVoice();
75 void StopVoice();
76
77 bool IsNextWavePacket() const;
80
81 private:
84
87 static void detail_StopAllPlayers();
88
91
93 /* 0x10 */ int mChannelCount;
94 /* 0x14 */ f32 mPitchMax;
96 /* 0x1C */ bool mStartFlag;
97 /* 0x1D */ bool mVoiceStartFlag;
98 /* 0x1E */ bool mLoopSetFlag;
99 /* 0x1F */ bool mPauseFlag;
101 /* 0x24 */ int mSampleRate;
103 /* 0x30 */ f32 mVolume;
104 /* 0x34 */ f32 mPan;
105 /* 0x38 */ f32 mSurroundPan;
106 /* 0x3C */ f32 mPitch;
107 /* 0x40 */ f32 mLpfFreq;
108 /* 0x44 */ int mOutputLineFlag;
109 /* 0x48 */ f32 mMainOutVolume;
110 /* 0x4C */ f32 mRemoteOutVolume[WPAD_MAX_CONTROLLERS];
111 /* 0x5C */ f32 mMainSend;
113 /* 0x6C */ f32 mRemoteSend[WPAD_MAX_CONTROLLERS];
114 /* 0x7C */ f32 mRemoteFxSend[WPAD_MAX_CONTROLLERS];
116 /* 0x90 */ void* mCallbackArg;
117
118 public:
120 };
121
122 typedef ut::LinkList<WavePlayer, offsetof(WavePlayer, mPlayerLink)> WavePlayerList;
123
124 } // namespace snd
125} // namespace nw4hbm
126
127#endif
static BOOL flag
Definition DEMOAVX.c:20
Definition WavePlayer.h:28
bool mAppendFlag
Definition WavePlayer.h:34
ut::LinkListNode mLinkNode
Definition WavePlayer.h:37
virtual ~WavePacket()
Definition WavePlayer.h:30
WaveBufferInfo mWaveBuffer
Definition WavePlayer.h:33
Definition WavePlayer.h:19
WavePacketCallbackStatus
Definition WavePlayer.h:43
@ WAVE_PACKET_CALLBACK_STATUS_FINISH
Definition WavePlayer.h:44
@ WAVE_PACKET_CALLBACK_STATUS_CANCEL
Definition WavePlayer.h:45
void Pause(bool flag)
f32 mMainOutVolume
Definition WavePlayer.h:109
bool mStartFlag
Definition WavePlayer.h:96
ut::LinkListNode mPlayerLink
Definition WavePlayer.h:119
f32 mSurroundPan
Definition WavePlayer.h:105
bool mVoiceStartFlag
Definition WavePlayer.h:97
struct nw4hbm::snd::WavePlayer::WaveBufferInfo WaveBufferInfo
SampleFormat mSampleFormat
Definition WavePlayer.h:100
void(*) WavePacketCallback(WavePacketCallbackStatus, WavePlayer *, WavePacket *, void *)
Definition WavePlayer.h:48
f32 mPan
Definition WavePlayer.h:104
f32 mPitch
Definition WavePlayer.h:106
WavePacketList mWavePacketList
Definition WavePlayer.h:92
WavePacketCallback mCallback
Definition WavePlayer.h:115
void * mCallbackArg
Definition WavePlayer.h:116
s64 mPlaySampleCount
Definition WavePlayer.h:102
f32 mVolume
Definition WavePlayer.h:103
f32 mMainSend
Definition WavePlayer.h:111
static void detail_UpdateAllPlayers()
int mOutputLineFlag
Definition WavePlayer.h:108
bool mLoopSetFlag
Definition WavePlayer.h:98
int mSampleRate
Definition WavePlayer.h:101
struct nw4hbm::snd::WavePlayer::SetupParam SetupParam
bool Setup(const SetupParam &setupParam, WavePacketCallback callback, void *callbackArg)
f32 mLpfFreq
Definition WavePlayer.h:107
ut::LinkList< WavePacket, offsetof(WavePacket, mLinkNode)> WavePacketList
Definition WavePlayer.h:41
int mChannelCount
Definition WavePlayer.h:93
static void detail_UpdateBufferAllPlayers()
static void detail_StopAllPlayers()
f32 mFxSend[AUX_BUS_NUM]
Definition WavePlayer.h:112
bool AppendWavePacket(WavePacket *packet)
f32 mRemoteOutVolume[WPAD_MAX_CONTROLLERS]
Definition WavePlayer.h:110
f32 mPitchMax
Definition WavePlayer.h:94
bool IsNextWavePacket() const
detail::AxVoice * mVoice
Definition WavePlayer.h:95
bool mPauseFlag
Definition WavePlayer.h:99
static void VoiceCallbackFunc(detail::AxVoice *voice, detail::AxVoice::CallbackStatus status, void *arg)
f32 mRemoteFxSend[WPAD_MAX_CONTROLLERS]
Definition WavePlayer.h:114
f32 mRemoteSend[WPAD_MAX_CONTROLLERS]
Definition WavePlayer.h:113
Definition AxVoice.h:123
CallbackStatus
Definition AxVoice.h:127
Definition SoundThread.h:19
Definition LinkList.h:23
static u32 status
Definition fstload.c:9
unsigned long u32
Definition types.h:12
signed long long int s64
Definition types.h:13
float f32
Definition types.h:25
static const int CHANNEL_MAX
Definition snd_types.h:48
@ AUX_BUS_NUM
Definition snd_types.h:73
SampleFormat
Definition snd_types.h:75
ut::LinkList< WavePlayer, offsetof(WavePlayer, mPlayerLink)> WavePlayerList
Definition WavePlayer.h:122
Definition HBMAnmController.h:6
static void callback(u32 param_0)
Definition OSExec.c:308
Definition WavePlayer.h:51
int voiceCount
Definition WavePlayer.h:56
int channelCount
Definition WavePlayer.h:52
int sampleRate
Definition WavePlayer.h:54
SampleFormat sampleFormat
Definition WavePlayer.h:53
f32 pitchMax
Definition WavePlayer.h:55
Definition WavePlayer.h:22
int channelCount
Definition WavePlayer.h:23
void * bufferAddress[CHANNEL_MAX]
Definition WavePlayer.h:24
u32 bufferSize
Definition WavePlayer.h:25