3BandGate.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 _ThreeBandGate_
00025 #define _ThreeBandGate_
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 ThreeBandGate: public FrameTransformationTmpl<Spectrum>
00037 {
00038 InPort<Spectrum> mIn;
00039 OutPort<Spectrum> mOut;
00040
00041 FloatInControl mLowCutoffFreqCtl;
00042 FloatInControl mHighCutoffFreqCtl;
00043 FloatInControl mLowThresholdCtl;
00044 FloatInControl mMidThresholdCtl;
00045 FloatInControl mHighThresholdCtl;
00046 public:
00047 const char* GetClassName() const
00048 {
00049 return "ThreeBandGate";
00050 }
00051
00052 ThreeBandGate()
00053 :
00054 mIn("In Spectrum", this),
00055 mOut("Out Spectrum", this) ,
00056 mLowCutoffFreqCtl("LowCutoff", this),
00057 mHighCutoffFreqCtl("HighCutoff", this),
00058 mLowThresholdCtl("LowThreshold", this),
00059 mMidThresholdCtl("MidThreshold", this),
00060 mHighThresholdCtl("HighThreshold", this)
00061 {
00062 Configure( FrameTransformationConfig() );
00063 }
00064
00065 ~ThreeBandGate() {}
00066
00067 virtual bool InitControls()
00068 {
00069 mLowCutoffFreqCtl.DoControl(1000);
00070 mHighCutoffFreqCtl.DoControl(5000);
00071 mLowThresholdCtl.DoControl(-60);
00072 mMidThresholdCtl.DoControl(-60);
00073 mHighThresholdCtl.DoControl(-60);
00074
00075 return true;
00076 }
00077
00078 bool Do(const Frame& in, Frame& out)
00079 {
00080 return Do(in.GetSpectrum(),
00081 out.GetSpectrum());
00082 }
00083
00084 bool Do(const Spectrum& in, Spectrum& out);
00085
00086 bool Do()
00087 {
00088 bool result = Do(mIn.GetData(), mOut.GetData());
00089 mIn.Consume();
00090 mOut.Produce();
00091 return result;
00092 }
00093 };
00094 };
00095
00096 #endif // _ThreeBandGate_