blob: 1d2433faeb21766f2ef6f36cb1ec65b99f43b263 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#ifndef AUDIOEFFECTDISTORTION_H
#define AUDIOEFFECTDISTORTION_H
#include "servers/audio/audio_effect.h"
class AudioEffectDistortion;
class AudioEffectDistortionInstance : public AudioEffectInstance {
GDCLASS(AudioEffectDistortionInstance,AudioEffectInstance)
friend class AudioEffectDistortion;
Ref<AudioEffectDistortion> base;
float h[2];
public:
virtual void process(const AudioFrame *p_src_frames,AudioFrame *p_dst_frames,int p_frame_count);
};
class AudioEffectDistortion : public AudioEffect {
GDCLASS(AudioEffectDistortion,AudioEffect)
public:
enum Mode {
MODE_CLIP,
MODE_ATAN,
MODE_LOFI,
MODE_OVERDRIVE,
MODE_WAVESHAPE,
};
friend class AudioEffectDistortionInstance;
Mode mode;
float pre_gain;
float post_gain;
float keep_hf_hz;
float drive;
protected:
static void _bind_methods();
public:
Ref<AudioEffectInstance> instance();
void set_mode(Mode p_mode);
Mode get_mode() const;
void set_pre_gain(float pre_gain);
float get_pre_gain() const;
void set_keep_hf_hz(float keep_hf_hz);
float get_keep_hf_hz() const;
void set_drive(float drive);
float get_drive() const;
void set_post_gain(float post_gain);
float get_post_gain() const;
AudioEffectDistortion();
};
VARIANT_ENUM_CAST( AudioEffectDistortion::Mode )
#endif // AUDIOEFFECTDISTORTION_H
|