3BandCompressor.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 _ThreeBandCompressor_
00025 #define _ThreeBandCompressor_
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 ThreeBandCompressor: public FrameTransformationTmpl<Spectrum>
00037 {
00038 InPort<Spectrum> mIn;
00039 OutPort<Spectrum> mOut;
00040
00041 InControl mLowCutoffFreqCtl;
00042 InControl mHighCutoffFreqCtl;
00043 InControl mLowThresholdCtl;
00044 InControl mMidThresholdCtl;
00045 InControl mHighThresholdCtl;
00046 public:
00047 const char* GetClassName() const
00048 {
00049 return "ThreeBandCompressor";
00050 }
00051
00052 ThreeBandCompressor()
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 ~ThreeBandCompressor() {}
00066
00067 virtual bool InitControls()
00068 {
00069 mLowCutoffFreqCtl.DoControl(1000);
00070 mHighCutoffFreqCtl.DoControl(5000);
00071
00072 mLowThresholdCtl.DoControl(0);
00073 mMidThresholdCtl.DoControl(0);
00074 mHighThresholdCtl.DoControl(0);
00075
00076 return true;
00077 }
00078
00079
00080 bool Do(const Frame& in, Frame& out)
00081 {
00082 return Do(in.GetSpectrum(),
00083 out.GetSpectrum());
00084 }
00085
00086 bool Do(const Spectrum& in, Spectrum& out);
00087
00088 bool Do()
00089 {
00090 bool result = Do(mIn.GetData(), mOut.GetData());
00091 mIn.Consume();
00092 mOut.Produce();
00093 return result;
00094 }
00095 };
00096 };
00097
00098 #endif // _ThreeBandCompressor_