mirror of
https://github.com/zeldaret/ss
synced 2026-07-11 14:48:32 -04:00
45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
#ifndef D_SND_FILE_MGR_H
|
|
#define D_SND_FILE_MGR_H
|
|
|
|
#include "nw4r/snd/snd_DisposeCallbackManager.h"
|
|
#include "nw4r/snd/snd_SoundArchive.h"
|
|
#include "nw4r/snd/snd_SoundArchivePlayer.h"
|
|
#include "nw4r/snd/snd_SoundHeap.h"
|
|
|
|
class dSndFileManager : public nw4r::snd::SoundArchivePlayer_FileManager, public nw4r::snd::detail::DisposeCallback {
|
|
private:
|
|
struct dSndFileManagerGlob {
|
|
u32 numFiles;
|
|
const void **pData;
|
|
const void **pWaveData;
|
|
};
|
|
|
|
static dSndFileManagerGlob sGlob;
|
|
|
|
public:
|
|
dSndFileManager() {
|
|
mpGlob = &sGlob;
|
|
}
|
|
static dSndFileManager *create(nw4r::snd::SoundArchive *pArchive, nw4r::snd::SoundHeap *pHeap);
|
|
|
|
virtual void const *GetFileAddress(u32) override;
|
|
virtual void const *GetFileWaveDataAddress(u32) override;
|
|
|
|
virtual void InvalidateData(void const *pStart, void const *pEnd) override;
|
|
virtual void InvalidateWaveData(void const *pStart, void const *pEnd) override;
|
|
|
|
virtual ~dSndFileManager() {}
|
|
|
|
static bool loadFileForSound(const nw4r::snd::SoundArchive &pArchive, u32 soundId, nw4r::snd::SoundHeap *pHeap);
|
|
static bool isLoadedFileForSound(nw4r::snd::SoundArchivePlayer *pPlayer, u32 soundId);
|
|
static bool isLoadedFileAndWaveForBank(nw4r::snd::SoundArchivePlayer *pPlayer, u32 soundId);
|
|
static bool isLoadedFileAndWaveForSound(nw4r::snd::SoundArchivePlayer *pPlayer, u32 soundId);
|
|
|
|
private:
|
|
static void clearGlob();
|
|
|
|
/* 0x10 */ dSndFileManagerGlob *mpGlob;
|
|
};
|
|
|
|
#endif
|