1#pragma once
2
3#include <math/seadMatrix.h>
4#include <math/seadVector.h>
5#include <prim/seadSafeString.h>
6
7namespace al {
8class IUseAudioKeeper;
9class ISeModifier;
10class MeInfo;
11class SePlayParamList;
12class AudioDirector;
13
14void startSe(const IUseAudioKeeper*, const sead::SafeString&);
15bool verifySeKeeperNull(const IUseAudioKeeper*, const sead::SafeString&);
16bool tryStartSe(const IUseAudioKeeper*, const sead::SafeString&);
17void holdSe(const IUseAudioKeeper*, const sead::SafeString&);
18bool tryHoldSe(const IUseAudioKeeper*, const sead::SafeString&);
19void startSeWithParam(const IUseAudioKeeper*, const sead::SafeString&, f32, const char*);
20bool tryStartSeWithParam(const IUseAudioKeeper*, const sead::SafeString&, f32, const char*);
21void holdSeWithParam(const IUseAudioKeeper*, const sead::SafeString&, f32, const char*);
22bool tryHoldSeWithParam(const IUseAudioKeeper*, const sead::SafeString&, f32, const char*);
23void startSeWithMeInfo(const IUseAudioKeeper*, const sead::SafeString&, const MeInfo*);
24void holdSeWithMeInfo(const IUseAudioKeeper*, const sead::SafeString&, const MeInfo*);
25void startSeWithManualControl(const IUseAudioKeeper*, const sead::SafeString&,
26 const SePlayParamList*, const char*, const sead::Vector3f*);
27bool tryStartSeWithManualControl(const IUseAudioKeeper*, const sead::SafeString&,
28 const SePlayParamList*, const char*, const sead::Vector3f*);
29void holdSeWithManualControl(const IUseAudioKeeper*, const sead::SafeString&,
30 const SePlayParamList*, const char*, const sead::Vector3f*);
31bool tryHoldSeWithManualControl(const IUseAudioKeeper*, const sead::SafeString&,
32 const SePlayParamList*, const char*, const sead::Vector3f*);
33void stopSe(const IUseAudioKeeper*, const sead::SafeString&, s32, const char*);
34void stopSeWithoutFreezed(const IUseAudioKeeper*, const sead::SafeString&, s32, const char*);
35bool tryStopSe(const IUseAudioKeeper*, const sead::SafeString&, s32, const char*);
36void tryStopAllSeFromUser(const IUseAudioKeeper*, s32, const char*);
37void stopAllSeFromUser(const IUseAudioKeeper*, s32, const char*);
38bool isPlayingAnySe(const IUseAudioKeeper*, const char*);
39bool checkIsPlayingSe(const IUseAudioKeeper*, const sead::SafeString&, const char*);
40void setLifeTimeForHoldCall(const IUseAudioKeeper*, const char*, s32, const char*);
41void setSeSourceVolume(const IUseAudioKeeper*, f32);
42void setSeKeeperPlayNamePrefix(const IUseAudioKeeper*, const char*);
43void resetSeKeeperPlayNamePrefix(const IUseAudioKeeper*);
44bool isExistSeKeeper(const IUseAudioKeeper*);
45void forceActivateSeKeeper(IUseAudioKeeper*);
46void validateSeKeeper(IUseAudioKeeper*);
47void invalidateSeKeeper(IUseAudioKeeper*);
48void setSeEmitterPoseMtxPtr(const IUseAudioKeeper*, const sead::Matrix34f*, const char*);
49void setSeEmitterPosePosPtr(const IUseAudioKeeper*, const sead::Vector3f*, const char*);
50void tryUpdateSeMaterialCode(IUseAudioKeeper*, const char*);
51
52void updateSeMaterialWater(IUseAudioKeeper*, bool);
53void updateSeMaterialWet(IUseAudioKeeper*, bool);
54void updateSeMaterialBeyondWall(IUseAudioKeeper*, bool);
55void updateSeMaterialPuddle(IUseAudioKeeper*, bool);
56void resetSeMaterialName(const IUseAudioKeeper*);
57void setSeModifier(const IUseAudioKeeper*, ISeModifier*);
58void setSeUserSyncParamPtr(const IUseAudioKeeper*, const f32*, const char*);
59void setSeUserSyncParamPtrInt(const IUseAudioKeeper*, const s32*, const char*);
60void setSeOutputFromController(SePlayParamList*, s32, bool);
61void setSeOutputTvDrcRemoteAll(SePlayParamList*);
62} // namespace al
63
64namespace alSeFunction {
65void stopAllSe(const al::AudioDirector*, u32);
66}
67