NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
snd_FxReverbStdDpl2.h
1#ifndef NW4R_SND_FX_REVERB_STD_DPL2_H
2#define NW4R_SND_FX_REVERB_STD_DPL2_H
3
4#include "nw4r/snd/snd_AxfxImpl.h"
5#include "nw4r/snd/snd_FxBase.h"
6#include "nw4r/types_nw4r.h"
7
8#include <revolution/AXFX.h> // IWYU pragma: export
9
10namespace nw4r {
11namespace snd {
12
13namespace detail {
14struct FxReverbStdParam {
15 f32 field_0x00;
16 f32 field_0x04;
17 f32 field_0x08;
18 f32 field_0x0C;
19 f32 field_0x10;
20 int field_0x14;
21 f32 field_0x18;
22 int field_0x1C;
23 f32 field_0x20;
24 f32 field_0x24;
25
26 FxReverbStdParam()
27 : field_0x00(0.02f),
28 field_0x04(3.0f),
29 field_0x08(0.6f),
30 field_0x0C(0.4f),
31 field_0x10(1.0f),
32 field_0x14(5),
33 field_0x18(0.02f),
34 field_0x1C(0),
35 field_0x20(0.0f),
36 field_0x24(1.0f) {}
37};
38} // namespace detail
39
40class FxReverbStdDpl2 : public FxBase {
41public:
42public:
43 FxReverbStdDpl2();
44
45 virtual ~FxReverbStdDpl2() {
46 Shutdown();
47 ReleaseWorkBuffer();
48 } // at 0x8
49
50 virtual bool StartUp() override; // at 0xC
51 virtual void Shutdown() override; // at 0x10
52
53 virtual void UpdateBuffer(
54 int channels, void **ppBuffer, ulong size, SampleFormat format, f32 sampleRate,
55 OutputMode mode
56 ) override; // at 0x14
57
58 virtual bool AssignWorkBuffer(void *pBuffer, ulong size); // at 0x18
59 virtual void ReleaseWorkBuffer(); // at 0x1C
60
61 ulong GetRequiredMemSize();
62 bool SetParam(const detail::FxReverbStdParam &rParam);
63
64 void OnChangeOutputMode() override;
65
66private:
67 u8 mIsActive;
68 int mOutputMode; // at 0x10
69 detail::AxfxImpl mImpl; // at 0x14
70 detail::FxReverbStdParam mParam; // at 0x1C
71 AXFX_REVERBSTD_EXP mAxfxParam; // at 0x44
72 AXFX_REVERBSTD_EXP_DPL2 mAxfxParamDpl; // at 0x12C
73};
74
75} // namespace snd
76} // namespace nw4r
77
78#endif