SMSTranspose.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 #ifndef _SMSTranspose_
00024 #define _SMSTranspose_
00025
00026 #include <CLAM/InPort.hxx>
00027 #include <CLAM/OutPort.hxx>
00028 #include <CLAM/InControl.hxx>
00029 #include <CLAM/SpectralPeakArray.hxx>
00030 #include <CLAM/Frame.hxx>
00031 #include <CLAM/SegmentTransformationConfig.hxx>
00032 #include <CLAM/FrameTransformation.hxx>
00033 #include <CLAM/FrameTransformationConfig.hxx>
00034
00035 namespace CLAM{
00036
00037 class SMSTranspose: public FrameTransformation
00038 {
00039 InPort<SpectralPeakArray> mIn;
00040 OutPort<SpectralPeakArray> mOut;
00041
00042 FloatInControl mControl;
00043 public:
00044 const char* GetClassName() const
00045 {
00046 return "SMSTranspose";
00047 }
00048
00049 SMSTranspose()
00050 :
00051 mIn("In SpectralPeaks", this),
00052 mOut("Out SpectralPeaks", this),
00053 mControl("Transpose amount", this)
00054 {
00055 Configure( FrameTransformationConfig() );
00056 }
00057
00058 ~SMSTranspose() {}
00059
00060 bool ConcreteConfigure( const ProcessingConfig& config )
00061 {
00062 mControl.SetBounds(-36,36);
00063 mControl.DoControl(0);
00064 return true;
00065 }
00066
00067 bool Do(const Frame& in, Frame& out)
00068 {
00069 return Do(in.GetSpectralPeakArray(),
00070 out.GetSpectralPeakArray());
00071 }
00072
00073 bool Do(const SpectralPeakArray& in, SpectralPeakArray& out);
00074
00075 bool Do()
00076 {
00077 bool result = Do(mIn.GetData(), mOut.GetData());
00078 mIn.Consume();
00079 mOut.Produce();
00080 return result;
00081 }
00082
00083 };
00084 };
00085
00086 #endif // _SMSTranspose_
00087