Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
nw4hbm::snd::SoundArchivePlayer Class Reference

#include <SoundArchivePlayer.h>

+ Inheritance diagram for nw4hbm::snd::SoundArchivePlayer:
+ Collaboration diagram for nw4hbm::snd::SoundArchivePlayer:

Classes

struct  Group
 
class  SeqLoadCallback
 
class  SeqLoadTask
 
class  SeqNoteOnCallback
 
class  StrmCallback
 
class  StrmDataLoadTask
 
class  StrmHeaderLoadTask
 
class  WsdCallback
 

Public Member Functions

 SoundArchivePlayer ()
 
virtual ~SoundArchivePlayer ()
 
virtual void InvalidateData (const void *start, const void *end)
 
virtual void InvalidateWaveData (const void *start, const void *end)
 
virtual StartResult detail_SetupSound (SoundHandle *handle, u32 id, detail::BasicSound::AmbientArgInfo *ambientArgInfoInfo, detail::ExternalSoundPlayer *extPlayer, bool hold, const StartInfo *startInfo)
 
virtual u32 detail_ConvertLabelStringToSoundId (const char *label)
 
bool IsAvailable () const
 
bool Setup (const SoundArchive *arc, void *buffer, u32 mramBufferSize, void *strmBuffer, u32 strmBufferSize)
 
void Shutdown ()
 
u32 GetRequiredMemSize (const SoundArchive *arc)
 
u32 GetRequiredStrmBufferSize (const SoundArchive *arc)
 
void Update ()
 
const SoundArchiveGetSoundArchive () const
 
SoundPlayerGetSoundPlayer (u32 playerId)
 
SoundPlayerGetSoundPlayer (int playerId)
 
const void * detail_GetFileAddress (u32 id) const
 
const void * detail_GetFileWaveDataAddress (u32 id) const
 
const void * GetGroupAddress (u32 groupId) const
 
void SetGroupAddress (u32 groupId, const void *addr)
 
const void * GetGroupWaveDataAddress (u32 groupId) const
 
void SetGroupWaveDataAddress (u32 groupId, const void *addr)
 
bool LoadGroup (u32 id, SoundMemoryAllocatable *allocatable, u32 loadBlockSize)
 
bool LoadGroup (const char *label, SoundMemoryAllocatable *allocatable, u32 loadBlockSize)
 
bool LoadGroup (int id, SoundMemoryAllocatable *allocatable, u32 loadBlockSize)
 
bool LoadGroup (u32 id, SoundMemoryAllocatable *allocatable, unsigned int loadBlockSize)
 
u32 GetSoundPlayerCount () const
 
u32 GetFreeSeqSoundCount () const
 
u32 GetFreeStrmSoundCount () const
 
u32 GetFreeWaveSoundCount () const
 
- Public Member Functions inherited from nw4hbm::snd::SoundStartable
virtual ~SoundStartable ()
 
bool StartSound (SoundHandle *soundHandle, u32 id)
 
bool StartSound (SoundHandle *soundHandle, unsigned int id)
 
bool StartSound (SoundHandle *soundHandle, int id)
 
bool HoldSound (SoundHandle *soundHandle, u32 id)
 
bool HoldSound (SoundHandle *soundHandle, unsigned int id)
 
bool HoldSound (SoundHandle *soundHandle, int id)
 
bool PrepareSound (SoundHandle *soundHandle, u32 id)
 
bool PrepareSound (SoundHandle *soundHandle, unsigned int id)
 
bool PrepareSound (SoundHandle *soundHandle, int id)
 

Private Types

typedef struct nw4hbm::snd::SoundArchivePlayer::Group Group
 
typedef detail::Util::Table< GroupGroupTable
 

Private Member Functions

bool SetupMram (const SoundArchive *arc, void *buffer, u32 size)
 
detail::PlayerHeapCreatePlayerHeap (void *buffer, u32 bufferSize)
 
bool SetupSoundPlayer (const SoundArchive *arc, void **buffer, void *end)
 
bool CreateGroupAddressTable (const SoundArchive *arc, void **buffer, void *end)
 
bool SetupSeqSound (const SoundArchive *arc, int sounds, void **buffer, void *end)
 
bool SetupWaveSound (const SoundArchive *arc, int sounds, void **buffer, void *end)
 
bool SetupStrmSound (const SoundArchive *arc, int sounds, void **buffer, void *end)
 
bool SetupSeqTrack (const SoundArchive *arc, int tracks, void **buffer, void *end)
 
bool SetupStrmBuffer (const SoundArchive *arc, void *buffer, u32 bufferSize)
 
StartResult PrepareSeqImpl (detail::SeqSound *sound, const SoundArchive::SoundInfo *soundInfo, const SoundArchive::SeqSoundInfo *seqSoundInfo, int voices)
 
StartResult PrepareStrmImpl (detail::StrmSound *sound, const SoundArchive::SoundInfo *soundInfo, const SoundArchive::StrmSoundInfo *strmSoundInfo, SoundStartable::StartInfo::StartOffsetType startOffsetType, int startOffset, int voices)
 
StartResult PrepareWaveSoundImpl (detail::WaveSound *sound, const SoundArchive::SoundInfo *soundInfo, const SoundArchive::WaveSoundInfo *waveSoundInfo, int voices)
 

Private Attributes

const SoundArchivemSoundArchive
 
GroupTablemGroupTable
 
SeqLoadCallback mSeqLoadCallback
 
SeqNoteOnCallback mSeqCallback
 
WsdCallback mWsdCallback
 
StrmCallback mStrmCallback
 
detail::SeqTrackAllocatormSeqTrackAllocator
 
SoundArchivePlayer_FileManagermFileManager
 
u32 mSoundPlayerCount
 
SoundPlayermSoundPlayers
 
detail::SoundInstanceManager< detail::SeqSoundmSeqSoundInstanceManager
 
detail::SoundInstanceManager< detail::StrmSoundmStrmSoundInstanceManager
 
detail::SoundInstanceManager< detail::WaveSoundmWaveSoundInstanceManager
 
detail::StrmBufferPool mStrmBufferPool
 
detail::MmlParser mMmlParser
 
detail::MmlSeqTrackAllocator mMmlSeqTrackAllocator
 
void * mSetupBufferAddress
 
u32 mSetupBufferSize
 

Friends

class SoundArchivePlayer::SeqNoteOnCallback
 

Additional Inherited Members

- Public Types inherited from nw4hbm::snd::SoundStartable
enum  StartResult {
  START_SUCCESS = 0 , START_ERR_LOW_PRIORITY , START_ERR_INVALID_LABEL_STRING , START_ERR_INVALID_SOUNDID ,
  START_ERR_NOT_DATA_LOADED , START_ERR_NOT_ENOUGH_PLAYER_HEAP , START_ERR_CANNOT_OPEN_FILE , START_ERR_NOT_AVAILABLE ,
  START_ERR_CANNOT_ALLOCATE_TRACK , START_ERR_NOT_ENOUGH_INSTANCE , START_ERR_INVALID_PARAMETER , START_ERR_INVALID_SEQ_START_LOCATION_LABEL ,
  START_ERR_USER = 128 , START_ERR_UNKNOWN = 255
}
 
typedef enum nw4hbm::snd::SoundStartable::StartResult StartResult
 
typedef struct nw4hbm::snd::SoundStartable::StartInfo StartInfo
 

Member Typedef Documentation

◆ Group

struct nw4hbm::snd::SoundArchivePlayer::Group nw4hbm::snd::SoundArchivePlayer::Group
private

◆ GroupTable

Constructor & Destructor Documentation

◆ SoundArchivePlayer()

nw4hbm::snd::SoundArchivePlayer::SoundArchivePlayer ( )

◆ ~SoundArchivePlayer()

virtual nw4hbm::snd::SoundArchivePlayer::~SoundArchivePlayer ( )
virtual

Member Function Documentation

◆ CreateGroupAddressTable()

bool nw4hbm::snd::SoundArchivePlayer::CreateGroupAddressTable ( const SoundArchive * arc,
void ** buffer,
void * end )
private

◆ CreatePlayerHeap()

detail::PlayerHeap * nw4hbm::snd::SoundArchivePlayer::CreatePlayerHeap ( void * buffer,
u32 bufferSize )
private

◆ detail_ConvertLabelStringToSoundId()

virtual u32 nw4hbm::snd::SoundArchivePlayer::detail_ConvertLabelStringToSoundId ( const char * label)
inlinevirtual

◆ detail_GetFileAddress()

const void * nw4hbm::snd::SoundArchivePlayer::detail_GetFileAddress ( u32 id) const

◆ detail_GetFileWaveDataAddress()

const void * nw4hbm::snd::SoundArchivePlayer::detail_GetFileWaveDataAddress ( u32 id) const

◆ detail_SetupSound()

virtual StartResult nw4hbm::snd::SoundArchivePlayer::detail_SetupSound ( SoundHandle * handle,
u32 id,
detail::BasicSound::AmbientArgInfo * ambientArgInfoInfo,
detail::ExternalSoundPlayer * extPlayer,
bool hold,
const StartInfo * startInfo )
virtual

◆ GetFreeSeqSoundCount()

u32 nw4hbm::snd::SoundArchivePlayer::GetFreeSeqSoundCount ( ) const
inline

◆ GetFreeStrmSoundCount()

u32 nw4hbm::snd::SoundArchivePlayer::GetFreeStrmSoundCount ( ) const
inline

◆ GetFreeWaveSoundCount()

u32 nw4hbm::snd::SoundArchivePlayer::GetFreeWaveSoundCount ( ) const
inline

◆ GetGroupAddress()

const void * nw4hbm::snd::SoundArchivePlayer::GetGroupAddress ( u32 groupId) const

◆ GetGroupWaveDataAddress()

const void * nw4hbm::snd::SoundArchivePlayer::GetGroupWaveDataAddress ( u32 groupId) const

◆ GetRequiredMemSize()

u32 nw4hbm::snd::SoundArchivePlayer::GetRequiredMemSize ( const SoundArchive * arc)

◆ GetRequiredStrmBufferSize()

u32 nw4hbm::snd::SoundArchivePlayer::GetRequiredStrmBufferSize ( const SoundArchive * arc)

◆ GetSoundArchive()

const SoundArchive & nw4hbm::snd::SoundArchivePlayer::GetSoundArchive ( ) const

◆ GetSoundPlayer() [1/2]

SoundPlayer & nw4hbm::snd::SoundArchivePlayer::GetSoundPlayer ( int playerId)
inline

◆ GetSoundPlayer() [2/2]

SoundPlayer & nw4hbm::snd::SoundArchivePlayer::GetSoundPlayer ( u32 playerId)

◆ GetSoundPlayerCount()

u32 nw4hbm::snd::SoundArchivePlayer::GetSoundPlayerCount ( ) const
inline

◆ InvalidateData()

virtual void nw4hbm::snd::SoundArchivePlayer::InvalidateData ( const void * start,
const void * end )
virtual

◆ InvalidateWaveData()

virtual void nw4hbm::snd::SoundArchivePlayer::InvalidateWaveData ( const void * start,
const void * end )
virtual

◆ IsAvailable()

bool nw4hbm::snd::SoundArchivePlayer::IsAvailable ( ) const

◆ LoadGroup() [1/4]

bool nw4hbm::snd::SoundArchivePlayer::LoadGroup ( const char * label,
SoundMemoryAllocatable * allocatable,
u32 loadBlockSize )

◆ LoadGroup() [2/4]

bool nw4hbm::snd::SoundArchivePlayer::LoadGroup ( int id,
SoundMemoryAllocatable * allocatable,
u32 loadBlockSize )
inline

◆ LoadGroup() [3/4]

bool nw4hbm::snd::SoundArchivePlayer::LoadGroup ( u32 id,
SoundMemoryAllocatable * allocatable,
u32 loadBlockSize )

◆ LoadGroup() [4/4]

bool nw4hbm::snd::SoundArchivePlayer::LoadGroup ( u32 id,
SoundMemoryAllocatable * allocatable,
unsigned int loadBlockSize )
inline

◆ PrepareSeqImpl()

StartResult nw4hbm::snd::SoundArchivePlayer::PrepareSeqImpl ( detail::SeqSound * sound,
const SoundArchive::SoundInfo * soundInfo,
const SoundArchive::SeqSoundInfo * seqSoundInfo,
int voices )
private

◆ PrepareStrmImpl()

StartResult nw4hbm::snd::SoundArchivePlayer::PrepareStrmImpl ( detail::StrmSound * sound,
const SoundArchive::SoundInfo * soundInfo,
const SoundArchive::StrmSoundInfo * strmSoundInfo,
SoundStartable::StartInfo::StartOffsetType startOffsetType,
int startOffset,
int voices )
private

◆ PrepareWaveSoundImpl()

StartResult nw4hbm::snd::SoundArchivePlayer::PrepareWaveSoundImpl ( detail::WaveSound * sound,
const SoundArchive::SoundInfo * soundInfo,
const SoundArchive::WaveSoundInfo * waveSoundInfo,
int voices )
private

◆ SetGroupAddress()

void nw4hbm::snd::SoundArchivePlayer::SetGroupAddress ( u32 groupId,
const void * addr )

◆ SetGroupWaveDataAddress()

void nw4hbm::snd::SoundArchivePlayer::SetGroupWaveDataAddress ( u32 groupId,
const void * addr )

◆ Setup()

bool nw4hbm::snd::SoundArchivePlayer::Setup ( const SoundArchive * arc,
void * buffer,
u32 mramBufferSize,
void * strmBuffer,
u32 strmBufferSize )

◆ SetupMram()

bool nw4hbm::snd::SoundArchivePlayer::SetupMram ( const SoundArchive * arc,
void * buffer,
u32 size )
private

◆ SetupSeqSound()

bool nw4hbm::snd::SoundArchivePlayer::SetupSeqSound ( const SoundArchive * arc,
int sounds,
void ** buffer,
void * end )
private

◆ SetupSeqTrack()

bool nw4hbm::snd::SoundArchivePlayer::SetupSeqTrack ( const SoundArchive * arc,
int tracks,
void ** buffer,
void * end )
private

◆ SetupSoundPlayer()

bool nw4hbm::snd::SoundArchivePlayer::SetupSoundPlayer ( const SoundArchive * arc,
void ** buffer,
void * end )
private

◆ SetupStrmBuffer()

bool nw4hbm::snd::SoundArchivePlayer::SetupStrmBuffer ( const SoundArchive * arc,
void * buffer,
u32 bufferSize )
private

◆ SetupStrmSound()

bool nw4hbm::snd::SoundArchivePlayer::SetupStrmSound ( const SoundArchive * arc,
int sounds,
void ** buffer,
void * end )
private

◆ SetupWaveSound()

bool nw4hbm::snd::SoundArchivePlayer::SetupWaveSound ( const SoundArchive * arc,
int sounds,
void ** buffer,
void * end )
private

◆ Shutdown()

void nw4hbm::snd::SoundArchivePlayer::Shutdown ( )

◆ Update()

void nw4hbm::snd::SoundArchivePlayer::Update ( )

Friends And Related Symbol Documentation

◆ SoundArchivePlayer::SeqNoteOnCallback

friend class SoundArchivePlayer::SeqNoteOnCallback
friend

Member Data Documentation

◆ mFileManager

SoundArchivePlayer_FileManager* nw4hbm::snd::SoundArchivePlayer::mFileManager
private

◆ mGroupTable

GroupTable* nw4hbm::snd::SoundArchivePlayer::mGroupTable
private

◆ mMmlParser

detail::MmlParser nw4hbm::snd::SoundArchivePlayer::mMmlParser
private

◆ mMmlSeqTrackAllocator

detail::MmlSeqTrackAllocator nw4hbm::snd::SoundArchivePlayer::mMmlSeqTrackAllocator
private

◆ mSeqCallback

SeqNoteOnCallback nw4hbm::snd::SoundArchivePlayer::mSeqCallback
private

◆ mSeqLoadCallback

SeqLoadCallback nw4hbm::snd::SoundArchivePlayer::mSeqLoadCallback
private

◆ mSeqSoundInstanceManager

detail::SoundInstanceManager<detail::SeqSound> nw4hbm::snd::SoundArchivePlayer::mSeqSoundInstanceManager
private

◆ mSeqTrackAllocator

detail::SeqTrackAllocator* nw4hbm::snd::SoundArchivePlayer::mSeqTrackAllocator
private

◆ mSetupBufferAddress

void* nw4hbm::snd::SoundArchivePlayer::mSetupBufferAddress
private

◆ mSetupBufferSize

u32 nw4hbm::snd::SoundArchivePlayer::mSetupBufferSize
private

◆ mSoundArchive

const SoundArchive* nw4hbm::snd::SoundArchivePlayer::mSoundArchive
private

◆ mSoundPlayerCount

u32 nw4hbm::snd::SoundArchivePlayer::mSoundPlayerCount
private

◆ mSoundPlayers

SoundPlayer* nw4hbm::snd::SoundArchivePlayer::mSoundPlayers
private

◆ mStrmBufferPool

detail::StrmBufferPool nw4hbm::snd::SoundArchivePlayer::mStrmBufferPool
private

◆ mStrmCallback

StrmCallback nw4hbm::snd::SoundArchivePlayer::mStrmCallback
private

◆ mStrmSoundInstanceManager

detail::SoundInstanceManager<detail::StrmSound> nw4hbm::snd::SoundArchivePlayer::mStrmSoundInstanceManager
private

◆ mWaveSoundInstanceManager

detail::SoundInstanceManager<detail::WaveSound> nw4hbm::snd::SoundArchivePlayer::mWaveSoundInstanceManager
private

◆ mWsdCallback

WsdCallback nw4hbm::snd::SoundArchivePlayer::mWsdCallback
private

The documentation for this class was generated from the following files: