281 class SoundArchiveFileReader
286 SoundArchiveFileReader();
287 ~SoundArchiveFileReader() {}
290 void Init(
void const *soundArchiveData);
292 u16 GetVersion()
const {
return mHeader.fileHeader.version; }
293 ulong GetLabelStringChunkOffset()
const
295 return mHeader.symbolDataOffset;
297 ulong GetLabelStringChunkSize()
const {
return mHeader.symbolDataSize; }
298 ulong GetInfoChunkOffset()
const {
return mHeader.infoOffset; }
299 ulong GetInfoChunkSize()
const {
return mHeader.infoSize; }
301 char const *GetString(ulong
id)
const;
302 SoundArchive::SoundType GetSoundType(ulong soundId)
const;
303 ulong GetSoundStringId(ulong
id)
const;
304 ulong GetBankCount()
const;
305 ulong GetPlayerCount()
const;
306 ulong GetGroupCount()
const;
307 ulong GetFileCount()
const;
308 void const *GetPtrConst(
void const *base, ulong offset)
const
313 return ut::AddOffsetToPtr(base, offset);
316 void SetStringChunk(
void const *stringChunk, ulong stringChunkSize);
317 void SetInfoChunk(
void const *infoChunk, ulong infoChunkSize);
319 bool ReadSeqSoundInfo(ulong soundId,
321 bool ReadStrmSoundInfo(ulong soundId,
323 bool ReadWaveSoundInfo(ulong soundId,
325 bool ReadSoundArchivePlayerInfo(
334 bool ReadGroupItemInfo(ulong groupId, ulong index,
339 bool ReadFilePos(ulong fileId, ulong index,
343 char const *str)
const;
344 const char* GetSoundLabelString(ulong
id)
const;
345 ulong GetSoundUserParam(ulong
id)
const;
347 ulong ConvertLabelStringToSoundId(
const char* pLabel)
const {
348 return ConvertLabelStringToId(mStringTreeSound, pLabel);
350 ulong ConvertLabelStringToPlayerId(
const char* pLabel)
const {
351 return ConvertLabelStringToId(mStringTreePlayer, pLabel);
353 ulong ConvertLabelStringToGroupId(
const char* pLabel)
const {
354 return ConvertLabelStringToId(mStringTreeGroup, pLabel);
356 ulong ConvertLabelStringToBankId(
const char* pLabel)
const {
357 return ConvertLabelStringToId(mStringTreeBank, pLabel);
361 static bool IsValidFileHeader(
void const *soundArchiveData);
364 ulong soundId)
const;
366 ulong soundId)
const;
368 ulong soundId)
const;
370 ulong soundId)
const;
372 bool impl_GetSoundInfoOffset(
373 ulong soundId, SoundArchiveFile::SoundInfoRef *soundInfoRef)
const;
378 ulong playerId)
const;
384 static u16
const SUPPORTED_FILE_VERSION = NW4R_FILE_VERSION(1, 4);
390 void const *mStringBase;