NW4F Snd
Loading...
Searching...
No Matches
snd_SoundArchive.h
Go to the documentation of this file.
1#ifndef NW_SND_SOUND_ARCHIVE_H_
2#define NW_SND_SOUND_ARCHIVE_H_
3
4#include <nw/snd/snd_Util.h>
5#include <nw/snd/snd_Global.h>
6#include <nw/snd/snd_Config.h>
7
8namespace nw { namespace snd {
9
11{
12public:
13 typedef u32 ItemId;
14
15 static const ItemId INVALID_ID = 0xffffffff;
16
17 typedef ItemId FileId;
18
33 static_assert(sizeof(SoundInfo) == 0x18);
34
35 static const u32 SEQ_BANK_MAX = nw::snd::SEQ_BANK_MAX;
36
38 {
40 u32 bankIds[SEQ_BANK_MAX];
41
45
47 : startOffset(0)
51 {
52 for (u32 i = 0; i < SEQ_BANK_MAX; i++)
53 bankIds[i] = INVALID_ID;
54 }
55 };
56 static_assert(sizeof(SequenceSoundInfo) == 0x1C);
57
58 static const u32 STRM_TRACK_NUM = internal::STRM_TRACK_NUM;
59
61 {
65 u8 flags; // nw::snd::internal::StreamSoundFile::SurroundMode
67 s8 globalChannelIndex[WAVE_CHANNEL_MAX];
68
70 : volume(0)
71 , pan(0)
72 , span(0)
73 , channelCount(0)
74 {
75 std::memset(globalChannelIndex, -1, sizeof(s8)*WAVE_CHANNEL_MAX);
76 }
77 };
78 static_assert(sizeof(StreamTrackInfo) == 7);
79
92 static_assert(sizeof(StreamSoundInfo) == 0x3C);
93
108 static_assert(sizeof(WaveSoundInfo) == 0xC);
109
120 static_assert(sizeof(SoundArchivePlayerInfo) == 0x1C);
121
122public:
123 const char* GetItemLabel(ItemId id) const;
124 ItemId GetItemId(const char* pLabel) const;
125
126 static ItemId GetSoundIdFromIndex(u32 index)
127 {
128 return internal::Util::GetMaskedItemId(index, internal::ItemType_Sound);
129 }
130
132 {
133 return internal::Util::GetMaskedItemId(index, internal::ItemType_SoundGroup);
134 }
135
136 static ItemId GetBankIdFromIndex(u32 index)
137 {
138 return internal::Util::GetMaskedItemId(index, internal::ItemType_Bank);
139 }
140
141 static ItemId GetPlayerIdFromIndex(u32 index)
142 {
143 return internal::Util::GetMaskedItemId(index, internal::ItemType_Player);
144 }
145
147 {
148 return internal::Util::GetMaskedItemId(index, internal::ItemType_WaveArchive);
149 }
150
151 static ItemId GetGroupIdFromIndex(u32 index)
152 {
153 return internal::Util::GetMaskedItemId(index, internal::ItemType_Group);
154 }
155};
156
157} }
158
159#endif // NW_SND_SOUND_ARCHIVE_H_
Definition snd_SoundArchive.h:11
static const u32 STRM_TRACK_NUM
Definition snd_SoundArchive.h:58
static ItemId GetGroupIdFromIndex(u32 index)
Definition snd_SoundArchive.h:151
static ItemId GetPlayerIdFromIndex(u32 index)
Definition snd_SoundArchive.h:141
ItemId FileId
Definition snd_SoundArchive.h:17
static ItemId GetSoundGroupIdFromIndex(u32 index)
Definition snd_SoundArchive.h:131
static ItemId GetBankIdFromIndex(u32 index)
Definition snd_SoundArchive.h:136
static ItemId GetSoundIdFromIndex(u32 index)
Definition snd_SoundArchive.h:126
ItemId GetItemId(const char *pLabel) const
static const u32 SEQ_BANK_MAX
Definition snd_SoundArchive.h:35
static const ItemId INVALID_ID
Definition snd_SoundArchive.h:15
const char * GetItemLabel(ItemId id) const
static ItemId GetWaveArchiveIdFromIndex(u32 index)
Definition snd_SoundArchive.h:146
u32 ItemId
Definition snd_SoundArchive.h:13
Definition snd_BasicSound.cpp:3
PanMode
Definition snd_Global.h:45
PanCurve
Definition snd_Global.h:52
Definition snd_SoundArchive.h:38
u32 allocateTrackFlags
Definition snd_SoundArchive.h:42
bool isReleasePriorityFix
Definition snd_SoundArchive.h:44
u32 bankIds[SEQ_BANK_MAX]
Definition snd_SoundArchive.h:40
u32 startOffset
Definition snd_SoundArchive.h:39
u8 channelPriority
Definition snd_SoundArchive.h:43
SequenceSoundInfo()
Definition snd_SoundArchive.h:46
Definition snd_SoundArchive.h:111
int waveSoundMax
Definition snd_SoundArchive.h:117
int streamChannelMax
Definition snd_SoundArchive.h:116
int sequenceTrackMax
Definition snd_SoundArchive.h:113
int streamSoundMax
Definition snd_SoundArchive.h:114
int waveTrackMax
Definition snd_SoundArchive.h:118
int streamTrackMax
Definition snd_SoundArchive.h:115
int sequenceSoundMax
Definition snd_SoundArchive.h:112
Definition snd_SoundArchive.h:20
FileId fileId
Definition snd_SoundArchive.h:21
u8 actorPlayerId
Definition snd_SoundArchive.h:24
PanMode panMode
Definition snd_SoundArchive.h:28
u8 volume
Definition snd_SoundArchive.h:26
PanCurve panCurve
Definition snd_SoundArchive.h:29
ItemId playerId
Definition snd_SoundArchive.h:22
u8 remoteFilter
Definition snd_SoundArchive.h:27
bool isFrontBypass
Definition snd_SoundArchive.h:31
u8 playerPriority
Definition snd_SoundArchive.h:25
Definition snd_SoundArchive.h:81
u16 allocateTrackFlags
Definition snd_SoundArchive.h:82
u16 allocateChannelCount
Definition snd_SoundArchive.h:83
StreamTrackInfo trackInfo[STRM_TRACK_NUM]
Definition snd_SoundArchive.h:84
StreamSoundInfo()
Definition snd_SoundArchive.h:86
Definition snd_SoundArchive.h:61
u8 flags
Definition snd_SoundArchive.h:65
u8 volume
Definition snd_SoundArchive.h:62
StreamTrackInfo()
Definition snd_SoundArchive.h:69
u8 channelCount
Definition snd_SoundArchive.h:66
u8 pan
Definition snd_SoundArchive.h:63
u8 span
Definition snd_SoundArchive.h:64
s8 globalChannelIndex[WAVE_CHANNEL_MAX]
Definition snd_SoundArchive.h:67
Definition snd_SoundArchive.h:95
WaveSoundInfo()
Definition snd_SoundArchive.h:101
u32 index
Definition snd_SoundArchive.h:96
u8 channelPriority
Definition snd_SoundArchive.h:98
bool isReleasePriorityFix
Definition snd_SoundArchive.h:99
u32 allocateTrackCount
Definition snd_SoundArchive.h:97