1#pragma once
2
3#include <basis/seadTypes.h>
4#include <container/seadBuffer.h>
5
6#include "Project/FileEntryBase.h"
7
8namespace sead {
9class ArchiveRes;
10class FileDevice;
11} // namespace sead
12
13namespace al {
14class IAudioResourceLoader {
15public:
16 // TODO: placeholder functions
17 virtual void func_0();
18 virtual void func_8();
19 // TODO: unknown parameter name
20 virtual bool tryLoad(u32 entryId, u32 unknown);
21};
22
23class SoundItemEntry : public FileEntryBase {
24public:
25 SoundItemEntry();
26 void load() override;
27 // TODO: unknown parameter name
28 void setLoadRequestInfo(u32 itemId, u32 unknown, IAudioResourceLoader* resourceLoader);
29 bool isLoadSuccess() const;
30 u32 getSoundItemId() const;
31 void clear();
32
33 IAudioResourceLoader* getAudioResourceLoader() const { return mResourceLoader; }
34
35private:
36 s32 mItemId = -1;
37 s32 _bc = -1;
38 IAudioResourceLoader* mResourceLoader = nullptr;
39 volatile bool mIsLoadSuccess = false;
40};
41
42} // namespace al
43