mirror of
https://github.com/zeldaret/ss
synced 2026-08-12 20:02:26 -04:00
f7884242c7
Co-authored-by: kiwi515 <49212064+kiwi515@users.noreply.github.com>
76 lines
1.9 KiB
C++
76 lines
1.9 KiB
C++
#ifndef NW4R_SND_DVD_SOUND_ARCHIVE_H
|
|
#define NW4R_SND_DVD_SOUND_ARCHIVE_H
|
|
|
|
/*******************************************************************************
|
|
* headers
|
|
*/
|
|
|
|
#include "common.h"
|
|
|
|
// WARNING: DO NOT REORDER these #include directives, data pooling depends on it
|
|
|
|
// clang-format off
|
|
#include "nw4r/ut/ut_FileStream.h" // This needs to be
|
|
#include "nw4r/snd/snd_SoundArchive.h" // before this
|
|
#include "nw4r/snd/snd_SoundArchiveFile.h" // before this
|
|
#include "rvl/DVD/dvd.h"
|
|
// clang-format on
|
|
|
|
/*******************************************************************************
|
|
* classes and functions
|
|
*/
|
|
|
|
namespace nw4r { namespace snd
|
|
{
|
|
class DvdSoundArchive : public SoundArchive
|
|
{
|
|
public:
|
|
class DvdFileStream;
|
|
DvdSoundArchive();
|
|
virtual ~DvdSoundArchive(); // at 0x8
|
|
|
|
virtual const void *detail_GetFileAddress(u32 /* id */) const {
|
|
return NULL;
|
|
} // at 0xC
|
|
|
|
virtual const void *detail_GetWaveDataFileAddress(u32 /* id */) const {
|
|
return NULL;
|
|
} // at 0x10
|
|
|
|
virtual int detail_GetRequiredStreamBufferSize() const; // at 0x14
|
|
|
|
virtual ut::FileStream *OpenStream(void *pBuffer, int size, u32 offset,
|
|
u32 length) const; // at 0x18
|
|
|
|
virtual ut::FileStream *OpenExtStream(
|
|
void *pBuffer, int size, const char *pExtPath, u32 offset,
|
|
u32 length
|
|
) const; // at 0x1C
|
|
|
|
bool Open(s32 entrynum);
|
|
bool Open(const char *pPath);
|
|
|
|
void Close();
|
|
|
|
bool LoadHeader(void *pBuffer, u32 size);
|
|
bool LoadLabelStringData(void *pBuffer, u32 size);
|
|
|
|
u32 GetHeaderSize() const {
|
|
return mFileReader.GetInfoChunkSize();
|
|
}
|
|
u32 GetLabelStringDataSize() const {
|
|
return mFileReader.GetLabelStringChunkSize();
|
|
}
|
|
|
|
private:
|
|
bool LoadFileHeader();
|
|
|
|
private:
|
|
detail::SoundArchiveFileReader mFileReader; // at 0x108
|
|
DVDFileInfo mFileInfo; // at 0x14C
|
|
bool mOpen; // at 0x188
|
|
};
|
|
}} // namespace nw4r::snd
|
|
|
|
#endif // NW4R_SND_DVD_SOUND_ARCHIVE_H
|