HumRemover.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _HumRemover_
00025 #define _HumRemover_
00026
00027 #include "InPort.hxx"
00028 #include "OutPort.hxx"
00029 #include "InControl.hxx"
00030 #include "Frame.hxx"
00031 #include "FrameTransformation.hxx"
00032 #include "FrameTransformationConfig.hxx"
00033
00034 namespace CLAM{
00035
00036 class HumRemover: public FrameTransformationTmpl<Spectrum>
00037 {
00038 InPort<Spectrum> mIn;
00039 OutPort<Spectrum> mOut;
00040
00041 FloatInControl mBandwidthCtl;
00042 FloatInControl mHarmonicsCtl;
00043
00044 FloatInControl mAmount;
00045 public:
00046 const char* GetClassName() const
00047 {
00048 return "HumRemover";
00049 }
00050
00051 HumRemover()
00052 :
00053 mIn("In Spectrum", this),
00054 mOut("Out Spectrum", this),
00055 mBandwidthCtl("Bandwidth", this),
00056 mHarmonicsCtl("Harmonics",this),
00057 mAmount("Amount", this)
00058 {
00059 Configure( FrameTransformationConfig() );
00060 }
00061
00062 ~HumRemover() {}
00063
00064 virtual bool InitControls()
00065 {
00066 mBandwidthCtl.DoControl(20);
00067 mHarmonicsCtl.DoControl(5);
00068
00069 mAmount.DoControl(60);
00070
00071 return true;
00072 }
00073
00074 bool Do(const Frame& in, Frame& out)
00075 {
00076 return Do(in.GetSpectrum(),
00077 out.GetSpectrum());
00078 }
00079
00080 bool Do(const Spectrum& in, Spectrum& out);
00081
00082 bool Do()
00083 {
00084 bool result = Do(mIn.GetData(), mOut.GetData());
00085 mIn.Consume();
00086 mOut.Produce();
00087 return result;
00088 }
00089 };
00090 };
00091
00092 #endif // _HumRemover_