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