1#pragma once
2
3#include <prim/seadSafeString.h>
4
5namespace al {
6
7class BgmChangeableParams {
8public:
9 BgmChangeableParams();
10
11 void operator=(const BgmChangeableParams&);
12
13 void calcPitch(f32);
14
15private:
16 f32 mVolume = 1.0;
17 f32 mPitch = 0;
18 f32 mLpfFreq = 0;
19 f32 mBiquadFilter = 0;
20 f32 mVar = 0;
21 f32 mAuxBusSend = 0;
22 f32 mTrackVolume0 = 1.0;
23 f32 mTrackVolume1 = 0;
24 f32 mTrackVolume2 = 0;
25 f32 mTrackVolume3 = 0;
26 f32 mTrackVolume4 = 0;
27 f32 mTrackVolume5 = 0;
28};
29
30struct BgmUserInfo;
31class ByamlIter;
32class SafeString;
33template <typename T>
34class AudioInfoListWithParts;
35class BgmActionInfo;
36class BgmSourceInfo;
37
38struct BgmUserInfo {
39 static BgmUserInfo* createInfo(const ByamlIter&, const sead::SafeString&);
40
41 BgmUserInfo();
42
43 static s32 compareInfo(const BgmUserInfo*, const BgmUserInfo*);
44 static s32 compareInfoByKey(const BgmUserInfo*, const char*);
45
46 const char* name = nullptr;
47 AudioInfoListWithParts<BgmActionInfo>* bgmActionInfoList = nullptr;
48 AudioInfoListWithParts<BgmSourceInfo>* bgmSourceInfoList = nullptr;
49};
50} // namespace al
51