BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsebiquadfilter.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_BIQUAD_FILTER_H__
3 #define __BSE_BIQUAD_FILTER_H__
4 
5 #include <bse/bsesource.hh>
6 #include <bse/gslfilter.hh>
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif /* __cplusplus */
11 
12 
13 /* --- type macros --- */
14 #define BSE_TYPE_BIQUAD_FILTER (BSE_TYPE_ID (BseBiquadFilter))
15 #define BSE_BIQUAD_FILTER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilter))
16 #define BSE_BIQUAD_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilterClass))
17 #define BSE_IS_BIQUAD_FILTER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_BIQUAD_FILTER))
18 #define BSE_IS_BIQUAD_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_BIQUAD_FILTER))
19 #define BSE_BIQUAD_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_BIQUAD_FILTER, BseBiquadFilterClass))
20 
21 
22 /* --- enums --- */
23 typedef enum
24 {
25  BSE_BIQUAD_FILTER_RESONANT_LOWPASS = GSL_BIQUAD_RESONANT_LOWPASS,
26  BSE_BIQUAD_FILTER_RESONANT_HIGHPASS = GSL_BIQUAD_RESONANT_HIGHPASS,
27 } BseBiquadFilterType;
28 typedef enum /* skip */
29 {
30  BSE_BIQUAD_FILTER_NORM_PASSBAND = GSL_BIQUAD_NORMALIZE_PASSBAND,
31  BSE_BIQUAD_FILTER_NORM_RESONANCE_GAIN = GSL_BIQUAD_NORMALIZE_RESONANCE_GAIN,
32  BSE_BIQUAD_FILTER_NORM_PEAK_GAIN = GSL_BIQUAD_NORMALIZE_PEAK_GAIN
33 } BseBiquadFilterNorm;
34 /* --- BseBiquadFilter source --- */
35 struct BseBiquadFilter;
38  BseBiquadFilterType filter_type;
39  guint type_change : 1;
40  guint exponential_fm : 1;
41  gfloat freq;
42  gfloat fm_strength;
43  gfloat fm_n_octaves;
44  BseBiquadFilterNorm norm_type;
45  gfloat gain;
46  gfloat gain_strength;
47 };
49 {};
50 
51 /* --- channels --- */
52 enum
53 {
54  BSE_BIQUAD_FILTER_ICHANNEL_AUDIO,
55  BSE_BIQUAD_FILTER_ICHANNEL_FREQ,
56  BSE_BIQUAD_FILTER_ICHANNEL_FREQ_MOD,
57  BSE_BIQUAD_FILTER_ICHANNEL_GAIN_MOD,
58  BSE_BIQUAD_FILTER_N_ICHANNELS
59 };
60 enum
61 {
62  BSE_BIQUAD_FILTER_OCHANNEL_AUDIO,
63  BSE_BIQUAD_FILTER_N_OCHANNELS
64 };
65 
66 
67 #ifdef __cplusplus
68 }
69 #endif /* __cplusplus */
70 
71 #endif /* __BSE_BIQUAD_FILTER_H__ */
Definition: bsesource.hh:84
Definition: bsebiquadfilter.hh:37
Definition: bsesource.hh:92
Definition: bsebiquadfilter.hh:48