BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsefirfilter.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_FIR_FILTER_H__
3 #define __BSE_FIR_FILTER_H__
4 
5 #include <bse/bseplugin.hh>
6 #include <bse/bsesource.hh>
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif /* __cplusplus */
11 
12 
13 
14 
15 
16 /* --- object type macros --- */
17 #define BSE_TYPE_FIR_FILTER (type_id_fir_filter)
18 #define BSE_FIR_FILTER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_FIR_FILTER, BseFIRFilter))
19 #define BSE_FIR_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_FIR_FILTER, BseFIRFilterClass))
20 #define BSE_IS_FIR_FILTER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_FIR_FILTER))
21 #define BSE_IS_FIR_FILTER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_FIR_FILTER))
22 #define BSE_FIR_FILTER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_FIR_FILTER, BseFIRFilterClass))
23 
25  guint16 degree;
26  guint filter_type : 8;
27  guint lanczos_smoothing : 1;
28  guint hann_smoothing : 1;
29  gfloat cut_off_freq;
30  guint n_coeffs;
31  gfloat *coeffs;
32  guint history_pos;
33  BseSampleValue *history;
34 };
36 {};
37 
38 typedef enum
39 {
40  BSE_FIR_FILTER_ALLPASS,
41  BSE_FIR_FILTER_LOWPASS,
42  BSE_FIR_FILTER_HIGHPASS
43 } BseFIRFilterType;
44 
45 enum
46 {
47  BSE_FIR_FILTER_OCHANNEL_NONE,
48  BSE_FIR_FILTER_OCHANNEL_MONO
49 };
50 enum
51 {
52  BSE_FIR_FILTER_ICHANNEL_NONE,
53  BSE_FIR_FILTER_ICHANNEL_MONO
54 };
55 
56 
57 
58 
59 #ifdef __cplusplus
60 }
61 #endif /* __cplusplus */
62 
63 #endif /* __BSE_FIR_FILTER_H__ */
Definition: bsefirfilter.hh:35
Definition: bsefirfilter.hh:24
Definition: bsesource.hh:84
Definition: bsesource.hh:92