00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _AFLIBAUDIOBWFILTER_H_
00033 #define _AFLIBAUDIOBWFILTER_H_
00034
00035 #ifdef HAVE_CONFIG_H
00036 #include <config.h>
00037 #endif
00038
00039 #include "aflibAudio.h"
00040
00041
00049 class aflibAudioBWFilter: public aflibAudio {
00050
00051 public:
00052
00053 enum AFLIB_BWFILTER_MODE
00054 {
00055 LOW_PASS,
00056 HIGH_PASS,
00057 BAND_PASS,
00058 BAND_REJECT
00059 };
00060
00061
00062 aflibAudioBWFilter(
00063 aflibAudio& audio,
00064 aflibAudioBWFilter::AFLIB_BWFILTER_MODE mode,
00065 double freq,
00066 double bw);
00067
00068 ~aflibAudioBWFilter();
00069
00070 void
00071 setParameters(
00072 aflibAudioBWFilter::AFLIB_BWFILTER_MODE mode,
00073 double freq,
00074 double bw);
00075
00076 void
00077 setInputConfig(const aflibConfig& cfg);
00078
00079 aflibStatus
00080 compute_segment(
00081 list<aflibData *>& data,
00082 long long position = -1) ;
00083
00085 const char *
00086 getName() const { return "aflibAudioBWFilter";};
00087
00088 bool
00089 isDataSizeSupported(aflib_data_size size);
00090
00091 private:
00092
00093 aflibAudioBWFilter();
00094
00095 aflibAudioBWFilter(const aflibAudioBWFilter& op);
00096
00097 const aflibAudioBWFilter&
00098 operator=(const aflibAudioBWFilter& op);
00099
00100 void
00101 allocateMemory();
00102
00103 aflibAudioBWFilter::AFLIB_BWFILTER_MODE _mode;
00104 double _freq;
00105 double _bw;
00106 double _C, _D;
00107 double _a[3], _b[2];
00108 double *_buf_x0;
00109 double *_buf_x1;
00110 double *_buf_y0;
00111 double *_buf_y1;
00112 int _chan;
00113
00114 };
00115
00116
00117 #endif