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