NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
snd_FxChorus.h
1#ifndef NW4R_SND_FX_CHORUS_H
2#define NW4R_SND_FX_CHORUS_H
3#include "nw4r/snd/snd_AxfxImpl.h"
4#include "nw4r/snd/snd_FxBase.h"
5#include "nw4r/types_nw4r.h"
6#include <revolution/AXFX.h> // IWYU pragma: export
7
8namespace nw4r {
9namespace snd {
10
11class FxChorus : public FxBase {
12public:
13 struct ChorusParam {
14 f32 delayTime; // at 0x0
15 f32 depth; // at 0x4
16 f32 rate; // at 0x8
17 };
18
19public:
20 FxChorus();
21
22 virtual ~FxChorus() {
23 Shutdown();
24 ReleaseWorkBuffer();
25 } // at 0x8
26
27 virtual bool StartUp(); // at 0xC
28 virtual void Shutdown(); // at 0x10
29
30 virtual void UpdateBuffer(
31 int channels, void **ppBuffer, ulong size, SampleFormat format, f32 sampleRate,
32 OutputMode mode
33 ); // at 0x14
34
35 virtual bool AssignWorkBuffer(void *pBuffer, ulong size); // at 0x18
36 virtual void ReleaseWorkBuffer(); // at 0x1C
37
38 ulong GetRequiredMemSize();
39 bool SetParam(const ChorusParam &rParam);
40
41private:
42 detail::AxfxImpl mImpl; // at 0xC
43 ChorusParam mParam; // at 0x18
44 AXFX_CHORUS mAxfxParam; // at 0x24
45};
46
47} // namespace snd
48} // namespace nw4r
49
50#endif