Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
WaveFile.h
Go to the documentation of this file.
1#ifndef NW4HBM_SND_WAVE_FILE_H
2#define NW4HBM_SND_WAVE_FILE_H
3
4#include "AxVoice.h"
5#include "snd_types.h"
6
7namespace nw4hbm {
8 namespace snd {
9 namespace detail {
10 namespace WaveFile {
12
13 typedef struct WaveInfo {
14 /* 0x00 */ u8 format;
15 /* 0x01 */ u8 loopFlag;
16 /* 0x02 */ u8 numChannels;
17 /* 0x03 */ u8 sampleRate24;
18 /* 0x04 */ u16 sampleRate;
19 /* 0x06 */ u16 padding2;
20 /* 0x08 */ u32 loopStart;
21 /* 0x0C */ u32 loopEnd;
23 /* 0x14 */ u32 dataOffset;
24 /* 0x18 */ u32 reserved;
26
27 typedef struct WaveChannelInfo {
29 /* 0x04 */ u32 adpcmOffset;
30 /* 0x08 */ u32 volumeFrontLeft;
32 /* 0x10 */ u32 volumeRearLeft;
33 /* 0x14 */ u32 volumeRearRight;
34 /* 0x18 */ u32 reserved;
36 } // namespace WaveFile
37
38 typedef struct ChannelParam {
39 /* 0x00 */ void* dataAddr;
40 /* 0x04 */ u32 volumeFrontLeft;
42 /* 0x0C */ u32 volumeRearLeft;
43 /* 0x10 */ u32 volumeRearRight;
44 /* 0x14 */ AdpcmInfo adpcmInfo;
46
47 typedef struct WaveData {
48 /* 0x00 */ u8 format;
49 /* 0x01 */ u8 loopFlag;
50 /* 0x02 */ u8 numChannels;
51 /* 0x04 */ int sampleRate;
52 /* 0x08 */ u32 loopStart;
53 /* 0x0C */ u32 loopEnd;
56
58 public:
59 explicit WaveFileReader(const WaveFile::WaveInfo* waveInfo);
60
61 bool ReadWaveParam(WaveData* waveData, const void* waveAddr) const;
63
64 private:
65 /* 0x00 */ const WaveFile::WaveInfo* mWaveInfo;
66 };
67
69 if (format == WaveFile::FORMAT_PCM16) {
71 }
72 if (format == WaveFile::FORMAT_PCM8) {
74 }
76 }
77 } // namespace detail
78 } // namespace snd
79} // namespace nw4hbm
80
81#endif
Format
Definition AxVoice.h:145
@ FORMAT_PCM16
Definition AxVoice.h:146
@ FORMAT_PCM8
Definition AxVoice.h:147
@ FORMAT_ADPCM
Definition AxVoice.h:148
Definition WaveFile.h:57
const WaveFile::WaveInfo * mWaveInfo
Definition WaveFile.h:65
static AxVoice::Format WaveFormatToAxFormat(u32 format)
bool ReadWaveParam(WaveData *waveData, const void *waveAddr) const
WaveFileReader(const WaveFile::WaveInfo *waveInfo)
unsigned long u32
Definition types.h:12
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Format
Definition WaveFile.h:11
@ FORMAT_PCM16
Definition WaveFile.h:11
@ FORMAT_PCM8
Definition WaveFile.h:11
@ FORMAT_ADPCM
Definition WaveFile.h:11
struct nw4hbm::snd::detail::WaveFile::WaveChannelInfo WaveChannelInfo
struct nw4hbm::snd::detail::WaveFile::WaveInfo WaveInfo
AxVoice::Format WaveFormatToAxFormat(u32 format)
Definition WaveFile.h:68
struct nw4hbm::snd::detail::WaveData WaveData
struct nw4hbm::snd::detail::ChannelParam ChannelParam
static const int CHANNEL_MAX
Definition snd_types.h:48
Definition HBMAnmController.h:6
Definition snd_types.h:107
Definition WaveFile.h:38
AdpcmInfo adpcmInfo
Definition WaveFile.h:44
void * dataAddr
Definition WaveFile.h:39
u32 volumeRearLeft
Definition WaveFile.h:42
u32 volumeRearRight
Definition WaveFile.h:43
u32 volumeFrontRight
Definition WaveFile.h:41
u32 volumeFrontLeft
Definition WaveFile.h:40
Definition WaveFile.h:47
u32 loopStart
Definition WaveFile.h:52
u8 numChannels
Definition WaveFile.h:50
u8 format
Definition WaveFile.h:48
u32 loopEnd
Definition WaveFile.h:53
u8 loopFlag
Definition WaveFile.h:49
int sampleRate
Definition WaveFile.h:51
ChannelParam channelParam[CHANNEL_MAX]
Definition WaveFile.h:54
u32 volumeRearLeft
Definition WaveFile.h:32
u32 volumeFrontRight
Definition WaveFile.h:31
u32 volumeRearRight
Definition WaveFile.h:33
u32 volumeFrontLeft
Definition WaveFile.h:30
u32 channelDataOffset
Definition WaveFile.h:28
u32 channelInfoTableOffset
Definition WaveFile.h:22
u8 loopFlag
Definition WaveFile.h:15
u32 dataOffset
Definition WaveFile.h:23
u32 loopEnd
Definition WaveFile.h:21
u16 sampleRate
Definition WaveFile.h:18
u16 padding2
Definition WaveFile.h:19
u32 reserved
Definition WaveFile.h:24
u8 numChannels
Definition WaveFile.h:16
u8 sampleRate24
Definition WaveFile.h:17
u32 loopStart
Definition WaveFile.h:20
u8 format
Definition WaveFile.h:14