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 #include "aflibAudio.h"
00036
00037
00045 class aflibAudioBWFilter: public aflibAudio {
00046
00047 public:
00048
00049 enum AFLIB_BWFILTER_MODE
00050 {
00051 LOW_PASS,
00052 HIGH_PASS,
00053 BAND_PASS,
00054 BAND_REJECT
00055 };
00056
00057
00058 aflibAudioBWFilter(
00059 aflibAudio& audio,
00060 aflibAudioBWFilter::AFLIB_BWFILTER_MODE mode,
00061 double freq,
00062 double bw);
00063
00064 ~aflibAudioBWFilter();
00065
00066 void
00067 setParameters(
00068 aflibAudioBWFilter::AFLIB_BWFILTER_MODE mode,
00069 double freq,
00070 double bw);
00071
00072 void
00073 setInputConfig(const aflibConfig& cfg);
00074
00075 aflibStatus
00076 compute_segment(
00077 list<aflibData *>& data,
00078 long long position = -1) ;
00079
00081 const char *
00082 getName() const { return "aflibAudioBWFilter";};
00083
00084 bool
00085 isDataSizeSupported(aflib_data_size size);
00086
00087 private:
00088
00089 aflibAudioBWFilter();
00090
00091 aflibAudioBWFilter(const aflibAudioBWFilter& op);
00092
00093 const aflibAudioBWFilter&
00094 operator=(const aflibAudioBWFilter& op);
00095
00096 void
00097 allocateMemory();
00098
00099 aflibAudioBWFilter::AFLIB_BWFILTER_MODE _mode;
00100 double _freq;
00101 double _bw;
00102 double _C, _D;
00103 double _a[3], _b[2];
00104 double *_buf_x0;
00105 double *_buf_x1;
00106 double *_buf_y0;
00107 double *_buf_y1;
00108 int _chan;
00109
00110 };
00111
00112
00113 #endif