1#pragma once
2
3#include <basis/seadTypes.h>
4#include <prim/seadSafeString.h>
5
6namespace sead {
7class ArchiveRes;
8class Heap;
9} // namespace sead
10
11namespace al {
12class IAudioResourceLoader;
13class Resource;
14
15bool isExistFile(const sead::SafeString& fileName);
16bool isExistDirectory(const sead::SafeString& fileName);
17bool isExistArchive(const sead::SafeString& fileName);
18bool isExistArchive(const sead::SafeString& fileName, const char* ext);
19u32 getFileSize(const sead::SafeString& fileName);
20u32 calcFileAlignment(const sead::SafeString& fileName);
21u32 calcBufferSizeAlignment(const sead::SafeString& fileName);
22u8* loadFile(const sead::SafeString& fileName, s32 size);
23bool tryLoadFileToBuffer(const sead::SafeString& fileName, u8*, u32 bufferSize, s32 size);
24sead::ArchiveRes* loadArchive(const sead::SafeString& fileName);
25sead::ArchiveRes* loadArchiveWithExt(const sead::SafeString& fileName, const char* ext);
26bool tryRequestLoadArchive(const sead::SafeString& fileName, sead::Heap* heap);
27
28// TODO: Replace unknown with a proper name
29void loadSoundItem(u32 soundEntryId, u32 unknown, IAudioResourceLoader* resLoader);
30
31bool tryRequestLoadSoundItem(u32 soundEntryId);
32bool tryRequestPreLoadFile(const Resource* res, s32, sead::Heap* heap,
33 IAudioResourceLoader* resLoader);
34bool tryRequestPreLoadFile(const Resource* res, const sead::SafeString& fileName, sead::Heap* heap,
35 IAudioResourceLoader* resLoader);
36void waitLoadDoneAllFile();
37void clearFileLoaderEntry();
38void makeLocalizedArchivePath(sead::BufferedSafeString* outPath, const sead::SafeString& fileName);
39void makeLocalizedArchivePathByCountryCode(sead::BufferedSafeString* outPath,
40 const sead::SafeString& fileName);
41void setFileLoaderThreadPriority(s32 priority);
42} // namespace al
43