Files
ss/include/d/snd/d_snd_file_mgr.h
T
2025-09-13 10:59:37 +02:00

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