NW4F Snd
Loading...
Searching...
No Matches
snd_SoundStartable.h
Go to the documentation of this file.
1#ifndef NW_SND_SOUND_STARTABLE_H_
2#define NW_SND_SOUND_STARTABLE_H_
3
4#include <nw/snd/snd_SoundArchive.h>
5
6namespace nw { namespace snd {
7
8class SoundHandle;
9
11{
12public:
67 static_assert(sizeof(StartResult) == 4);
68
69 struct StartInfo
70 {
82
89 static_assert(sizeof(StartOffsetType) == 4);
90
92 {
93 const void* seqDataAddress;
94 const char* startLocationLabel;
96
100 {
101 for (unsigned int i = 0; i < SoundArchive::SEQ_BANK_MAX; i++)
102 bankIds[i] = SoundArchive::INVALID_ID;
103 }
104 };
105 static_assert(sizeof(SeqSoundInfo) == 0x18);
106
108 {
109 const void* externalData;
111
115 {
116 }
117 };
118 static_assert(sizeof(StreamSoundInfo) == 8);
119
136 static_assert(sizeof(WaveSoundInfo) == 0xC);
137
148
154 };
155 static_assert(sizeof(StartInfo) == 0x48);
156
157public:
158 virtual ~SoundStartable()
159 {
160 }
161
163 SoundHandle* pHandle,
164 SoundArchive::ItemId soundId,
165 const StartInfo* pStartInfo = NULL
166 );
168 SoundHandle* pHandle,
169 const char* pSoundName,
170 const StartInfo* pStartInfo = NULL
171 );
172
174 SoundHandle* pHandle,
175 SoundArchive::ItemId soundId,
176 const StartInfo* pHoldInfo = NULL
177 );
179 SoundHandle* pHandle,
180 const char* pSoundName,
181 const StartInfo* pHoldInfo = NULL
182 );
183
185 SoundHandle* pHandle,
186 SoundArchive::ItemId soundId,
187 const StartInfo* pStartInfo = NULL
188 );
190 SoundHandle* pHandle,
191 const char* pSoundName,
192 const StartInfo* pStartInfo = NULL
193 );
194
195protected:
197 SoundHandle* handle,
198 u32 soundId,
199 bool holdFlag,
200 const StartInfo* startInfo
201 ) = 0;
202
203 virtual SoundArchive::ItemId detail_GetItemId(const char* pString) = 0;
204};
205static_assert(sizeof(SoundStartable) == 4);
206
207} } // mamespace nw::snd
208
209#endif // NW_SND_SOUND_STARTABLE_H_
Definition snd_SoundArchive.h:11
u32 ItemId
Definition snd_SoundArchive.h:13
Definition snd_SoundHandle.h:10
Definition snd_SoundStartable.h:14
ResultCode m_Code
Definition snd_SoundStartable.h:65
bool IsSuccess() const
Definition snd_SoundStartable.h:54
ResultCode GetCode() const
Definition snd_SoundStartable.h:59
StartResult(ResultCode code)
Definition snd_SoundStartable.h:49
ResultCode
Definition snd_SoundStartable.h:17
@ START_ERR_NOT_DATA_LOADED
Definition snd_SoundStartable.h:22
@ START_ERR_CANNOT_ALLOCATE_TRACK
Definition snd_SoundStartable.h:30
@ START_ERR_INVALID_WARC_ID
Definition snd_SoundStartable.h:35
@ START_ERR_ACTOR_NOT_INITIALIZED
Definition snd_SoundStartable.h:34
@ START_SUCCESS
Definition snd_SoundStartable.h:18
@ START_ERR_NOT_WARC_LOADED
Definition snd_SoundStartable.h:26
@ START_ERR_NOT_AVAILABLE
Definition snd_SoundStartable.h:29
@ START_ERR_NOT_SEQ_LOADED
Definition snd_SoundStartable.h:23
@ START_ERR_INVALID_BANK_DATA
Definition snd_SoundStartable.h:36
@ START_ERR_NOT_WSD_LOADED
Definition snd_SoundStartable.h:25
@ START_ERR_NOT_ENOUGH_PLAYER_HEAP
Definition snd_SoundStartable.h:27
@ START_ERR_CANNOT_OPEN_FILE
Definition snd_SoundStartable.h:28
@ START_ERR_INVALID_SOUNDID
Definition snd_SoundStartable.h:21
@ START_ERR_INVALID_PARAMETER
Definition snd_SoundStartable.h:32
@ START_ERR_NOT_BANK_LOADED
Definition snd_SoundStartable.h:24
@ START_ERR_UNKNOWN
Definition snd_SoundStartable.h:39
@ START_ERR_NOT_ENOUGH_INSTANCE
Definition snd_SoundStartable.h:31
@ START_ERR_LOW_PRIORITY
Definition snd_SoundStartable.h:19
@ START_ERR_INVALID_LABEL_STRING
Definition snd_SoundStartable.h:20
@ START_ERR_USER
Definition snd_SoundStartable.h:38
@ START_ERR_INVALID_SEQ_START_LOCATION_LABEL
Definition snd_SoundStartable.h:33
StartResult()
Definition snd_SoundStartable.h:44
Definition snd_SoundStartable.h:11
StartResult HoldSound(SoundHandle *pHandle, const char *pSoundName, const StartInfo *pHoldInfo=NULL)
virtual SoundArchive::ItemId detail_GetItemId(const char *pString)=0
StartResult StartSound(SoundHandle *pHandle, const char *pSoundName, const StartInfo *pStartInfo=NULL)
StartResult PrepareSound(SoundHandle *pHandle, const char *pSoundName, const StartInfo *pStartInfo=NULL)
StartResult StartSound(SoundHandle *pHandle, SoundArchive::ItemId soundId, const StartInfo *pStartInfo=NULL)
StartResult HoldSound(SoundHandle *pHandle, SoundArchive::ItemId soundId, const StartInfo *pHoldInfo=NULL)
StartResult PrepareSound(SoundHandle *pHandle, SoundArchive::ItemId soundId, const StartInfo *pStartInfo=NULL)
virtual StartResult detail_SetupSound(SoundHandle *handle, u32 soundId, bool holdFlag, const StartInfo *startInfo)=0
virtual ~SoundStartable()
Definition snd_SoundStartable.h:158
Definition snd_BasicSound.cpp:3
Definition snd_SoundStartable.h:92
SeqSoundInfo()
Definition snd_SoundStartable.h:97
const void * seqDataAddress
Definition snd_SoundStartable.h:93
const char * startLocationLabel
Definition snd_SoundStartable.h:94
SoundArchive::ItemId bankIds[SoundArchive::SEQ_BANK_MAX]
Definition snd_SoundStartable.h:95
Definition snd_SoundStartable.h:108
StreamSoundInfo()
Definition snd_SoundStartable.h:112
const void * externalData
Definition snd_SoundStartable.h:109
u32 externalDataSize
Definition snd_SoundStartable.h:110
Definition snd_SoundStartable.h:121
u8 channelCount
Definition snd_SoundStartable.h:124
u8 padding[2]
Definition snd_SoundStartable.h:126
WaveSoundInfo()
Definition snd_SoundStartable.h:128
s8 waveType
Definition snd_SoundStartable.h:125
u32 sampleRate
Definition snd_SoundStartable.h:123
const void * waveAddress
Definition snd_SoundStartable.h:122
Definition snd_SoundStartable.h:70
StartOffsetType startOffsetType
Definition snd_SoundStartable.h:139
int playerPriority
Definition snd_SoundStartable.h:142
u32 enableFlag
Definition snd_SoundStartable.h:138
EnableFlagBit
Definition snd_SoundStartable.h:72
@ ENABLE_PLAYER_ID
Definition snd_SoundStartable.h:74
@ ENABLE_STRM_SOUND_INFO
Definition snd_SoundStartable.h:78
@ ENABLE_START_OFFSET
Definition snd_SoundStartable.h:73
@ ENABLE_ACTOR_PLAYER_ID
Definition snd_SoundStartable.h:76
@ ENABLE_PLAYER_PRIORITY
Definition snd_SoundStartable.h:75
@ ENABLE_WAVE_SOUND_INFO
Definition snd_SoundStartable.h:79
@ ENABLE_VOICE_RENDERER_TYPE
Definition snd_SoundStartable.h:80
@ ENABLE_SEQ_SOUND_INFO
Definition snd_SoundStartable.h:77
StreamSoundInfo streamSoundInfo
Definition snd_SoundStartable.h:145
StartInfo()
Definition snd_SoundStartable.h:149
u8 voiceRendererType
Definition snd_SoundStartable.h:147
int startOffset
Definition snd_SoundStartable.h:140
int actorPlayerId
Definition snd_SoundStartable.h:143
WaveSoundInfo waveSoundInfo
Definition snd_SoundStartable.h:146
StartOffsetType
Definition snd_SoundStartable.h:84
@ START_OFFSET_TYPE_MILLISEC
Definition snd_SoundStartable.h:85
@ START_OFFSET_TYPE_SAMPLE
Definition snd_SoundStartable.h:87
@ START_OFFSET_TYPE_TICK
Definition snd_SoundStartable.h:86
SoundArchive::ItemId playerId
Definition snd_SoundStartable.h:141
SeqSoundInfo seqSoundInfo
Definition snd_SoundStartable.h:144