Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
WsdTrack.h
Go to the documentation of this file.
1#ifndef NW4HBM_SND_WSD_TRACK_H
2#define NW4HBM_SND_WSD_TRACK_H
3
4#include "snd_types.h"
5
6#include "Channel.h"
7#include "Lfo.h"
8#include "WsdFile.h"
9
10namespace nw4hbm {
11 namespace snd {
12 namespace detail {
13 class WsdPlayer;
14 class WsdTrack {
15 public:
17 public:
18 /* 0x08 */ virtual ~WsdCallback() = 0 {}
19
20 /* 0x0C */ virtual bool GetWaveSoundData(WaveSoundInfo* info,
21 WaveSoundNoteInfo* noteInfo,
22 WaveData* waveData,
23 const void* waveSoundData, int index,
24 int noteIndex, u32 userData) const = 0;
25 };
26
31
32 WsdTrack() : mWsdPlayer(NULL) {}
33
34 void Init(WsdPlayer* player);
35
36 void Start(const void* wsdData, int index);
37 void Close();
38
40 void ReleaseAllChannel(int release) NO_INLINE;
43 void AddChannel(Channel* channel);
44
45 int Parse(const WsdCallback* callback, u32 callbackData, bool doNoteOn);
46 int ParseNextTick(const WsdCallback* callback, u32 callbackData, bool doNoteOn);
47
48 static void ChannelCallbackFunc(Channel* dropChannel,
50 u32 userData);
51
52 const void* GetWsdDataAddress() const { return mWsdData; }
53
54 private:
55 /* 0x00 */ const void* mWsdData;
56 /* 0x04 */ int mIndex;
57 /* 0x08 */ u32 mCounter;
58 /* 0x0C */ LfoParam mLfoParam;
59 /* 0x1C */ u8 mBendRange;
60 /* 0x1D */ u8 mPriority;
62 /* 0x2C */ WsdPlayer* mWsdPlayer;
63 /* 0x30 */ Channel* mChannelList;
64 };
65 } // namespace detail
66 } // namespace snd
67} // namespace nw4hbm
68
69#endif
static BOOL flag
Definition DEMOAVX.c:20
Definition Channel.h:23
ChannelCallbackStatus
Definition Channel.h:25
Definition WsdPlayer.h:13
virtual bool GetWaveSoundData(WaveSoundInfo *info, WaveSoundNoteInfo *noteInfo, WaveData *waveData, const void *waveSoundData, int index, int noteIndex, u32 userData) const =0
virtual ~WsdCallback()=0
Definition WsdTrack.h:18
Definition WsdTrack.h:14
static void ChannelCallbackFunc(Channel *dropChannel, Channel::ChannelCallbackStatus status, u32 userData)
int Parse(const WsdCallback *callback, u32 callbackData, bool doNoteOn)
void Init(WsdPlayer *player)
void AddChannel(Channel *channel)
int ParseNextTick(const WsdCallback *callback, u32 callbackData, bool doNoteOn)
u32 mCounter
Definition WsdTrack.h:57
u8 mPriority
Definition WsdTrack.h:60
LfoParam mLfoParam
Definition WsdTrack.h:58
void PauseAllChannel(bool flag)
StartOffsetType
Definition WsdTrack.h:27
@ START_OFFSET_TYPE_SAMPLE
Definition WsdTrack.h:28
@ START_OFFSET_TYPE_MILLISEC
Definition WsdTrack.h:29
WsdPlayer * mWsdPlayer
Definition WsdTrack.h:62
u8 mBendRange
Definition WsdTrack.h:59
const void * mWsdData
Definition WsdTrack.h:55
const void * GetWsdDataAddress() const
Definition WsdTrack.h:52
void Start(const void *wsdData, int index)
Channel * mChannelList
Definition WsdTrack.h:63
WsdTrack()
Definition WsdTrack.h:32
WaveSoundInfo mWaveSoundInfo
Definition WsdTrack.h:61
void ReleaseAllChannel(int release) NO_INLINE
int mIndex
Definition WsdTrack.h:56
static u8 index[20][3]
Definition GXDraw.c:434
static u32 status
Definition fstload.c:9
unsigned long u32
Definition types.h:12
unsigned char u8
Definition types.h:8
Definition HBMAnmController.h:6
static void callback(u32 param_0)
Definition OSExec.c:308
Definition WaveFile.h:47
Definition WsdFile.h:100