CLAM::FFT_base Class Reference

Abstract base class for FFT classes. More...

#include <FFT_base.hxx>

List of all members.

Public Member Functions

 FFT_base ()
virtual ~FFT_base ()
const ProcessingConfigGetConfig () const
 Configuration access:.
virtual bool Do (void)=0
 Supervised-mode Do function.
virtual bool Do (const Audio &in, Spectrum &out)=0
 Standard FFT Do function, with storage class references as arguments.
bool SetPrototypes (const Audio &in, const Spectrum &out)
 FFT non-supervised mode SetPrototypes function.
bool SetPrototypes ()
 Standard supervised-mode SetPrototypes function.
bool UnsetPrototypes ()
 Standard UnsetPrototypes function.
void CheckTypes (const Audio &in, const Spectrum &out) const
virtual bool MayDisableExecution () const
virtual bool DisableExecution ()
virtual bool EnableExecution ()
virtual void ToComplex (Spectrum &out)=0
virtual void ToOther (Spectrum &out)

Protected Types

enum  FFTState { sComplex, sComplexSync, sOther }

Protected Member Functions

void ChangeSize (int n)
int GetSize ()
virtual bool ConcreteConfigure (const ProcessingConfig &)=0
 Configuration method interface.

Protected Attributes

Spectrum mComplexSpectrum
 Auxiliary spectrum used if output spectrum does not have complex array.
FFTConfig mConfig
 FFT Configuration.
int mSize
 FFT size.
FFTState mState
 I/O Prototype state of the FFT object.
FFTState mBackupState
 When the object enters "Disabled" mode, it stores the previoius state here.
AudioInPort mInput
OutPort< SpectrummOutput
TDatafftbuffer
 Internal output buffer.

Static Protected Attributes

static SpecTypeFlags mComplexflags
 Auxiliary flags structure, used to add the complex attribute.


Detailed Description

Abstract base class for FFT classes.

Definition at line 43 of file FFT_base.hxx.


Member Enumeration Documentation

enum CLAM::FFT_base::FFTState [protected]

Enumerator:
sComplex 
sComplexSync 
sOther 

Definition at line 60 of file FFT_base.hxx.


Constructor & Destructor Documentation

CLAM::FFT_base::FFT_base (  ) 

Definition at line 45 of file FFT.cxx.

CLAM::FFT_base::~FFT_base (  )  [virtual]

Definition at line 53 of file FFT.cxx.

References fftbuffer.


Member Function Documentation

void CLAM::FFT_base::ChangeSize ( int  n  )  [protected]

Definition at line 58 of file FFT.cxx.

References CLAM_ASSERT.

void CLAM::FFT_base::CheckTypes ( const Audio in,
const Spectrum out 
) const

bool CLAM::FFT_base::ConcreteConfigure ( const ProcessingConfig  )  [protected, pure virtual]

Configuration method interface.

The Processing base class forces all the concrete classes derived from it to implement this method, which must actually perform the specific configuration tasks.

Note that the user can not call this method directly. He will use Configure instead. The argument is expected to be an object of the necesary concrete configuration class.

Parameters:
Reference to the configuration object.
Returns:
false if the object is not yet fully configured. (For example, if some important configuration attribute such as number of ports was set to zero in the config object)
true if the processing object is left in a consistent state, and can be executed.
Exceptions:
This method must throw a bad_cast exception if the argument is not an object of the expected configuration class.

Reimplemented from CLAM::Processing.

Implemented in CLAM::FFT_fftw3.

Definition at line 110 of file FFT.cxx.

References CLAM::SpecTypeFlags::bComplex, CLAM::SpecTypeFlags::bMagPhase, CLAM_ASSERT, CLAM::Spectrum::Configure(), CLAM::Processing::CopyAsConcreteConfig(), fftbuffer, mComplexflags, mComplexSpectrum, mConfig, mInput, mSize, mState, CLAM::InPort< Token >::SetHop(), CLAM::InPort< Token >::SetSize(), and sOther.

virtual bool CLAM::FFT_base::DisableExecution (  )  [inline, virtual]

Definition at line 129 of file FFT_base.hxx.

virtual bool CLAM::FFT_base::Do ( const Audio in,
Spectrum out 
) [pure virtual]

Standard FFT Do function, with storage class references as arguments.

This method implements the old conversor routines. The resulting spectrum will be of input audio size / 2 + 1. Input audio must be a power-of-two.

Implemented in CLAM::FFT_fftw3, CLAM::FFT_numrec, and CLAM::FFT_ooura.

virtual bool CLAM::FFT_base::Do ( void   )  [pure virtual]

Supervised-mode Do function.

Implements CLAM::Processing.

Implemented in CLAM::FFT_fftw3, CLAM::FFT_numrec, and CLAM::FFT_ooura.

virtual bool CLAM::FFT_base::EnableExecution (  )  [inline, virtual]

Definition at line 131 of file FFT_base.hxx.

const ProcessingConfig& CLAM::FFT_base::GetConfig (  )  const [inline, virtual]

Configuration access:.

Reimplemented from CLAM::Processing.

Definition at line 96 of file FFT_base.hxx.

References mConfig.

int CLAM::FFT_base::GetSize (  )  [inline, protected]

Definition at line 85 of file FFT_base.hxx.

References mSize.

virtual bool CLAM::FFT_base::MayDisableExecution (  )  const [inline, virtual]

Reimplemented in CLAM::FFT_numrec, and CLAM::FFT_ooura.

Definition at line 127 of file FFT_base.hxx.

bool CLAM::FFT_base::SetPrototypes (  )  [inline]

Standard supervised-mode SetPrototypes function.

Definition at line 115 of file FFT_base.hxx.

bool CLAM::FFT_base::SetPrototypes ( const Audio in,
const Spectrum out 
)

virtual void CLAM::FFT_base::ToComplex ( Spectrum out  )  [pure virtual]

Referenced by ToOther().

void CLAM::FFT_base::ToOther ( Spectrum out  )  [virtual]

bool CLAM::FFT_base::UnsetPrototypes (  ) 

Standard UnsetPrototypes function.

Definition at line 152 of file FFT.cxx.

References mState, and sOther.


Member Data Documentation

Internal output buffer.

Definition at line 81 of file FFT_base.hxx.

Referenced by ConcreteConfigure(), CLAM::FFT_ooura::Do(), CLAM::FFT_numrec::Do(), and ~FFT_base().

When the object enters "Disabled" mode, it stores the previoius state here.

It would have been easier to use a single state variable, and a "Disabled" flag outside of the state, but this way we can implement Do()s with a single switch level, which is slightly faster.

Definition at line 75 of file FFT_base.hxx.

Auxiliary flags structure, used to add the complex attribute.

Definition at line 48 of file FFT_base.hxx.

Referenced by ConcreteConfigure(), CLAM::FFT_ooura::Do(), CLAM::FFT_numrec::Do(), CLAM::FFT_fftw3::Do(), and ToOther().

Auxiliary spectrum used if output spectrum does not have complex array.

Definition at line 51 of file FFT_base.hxx.

Referenced by ConcreteConfigure(), and ToOther().

FFT Configuration.

Definition at line 54 of file FFT_base.hxx.

Referenced by ConcreteConfigure(), and GetConfig().

Definition at line 78 of file FFT_base.hxx.

Referenced by CLAM::FFT_ooura::Do(), CLAM::FFT_numrec::Do(), and CLAM::FFT_fftw3::Do().

I/O Prototype state of the FFT object.

Definition at line 67 of file FFT_base.hxx.

Referenced by ConcreteConfigure(), CLAM::FFT_ooura::Do(), CLAM::FFT_numrec::Do(), CLAM::FFT_fftw3::Do(), SetPrototypes(), and UnsetPrototypes().


The documentation for this class was generated from the following files:

Generated on Tue Feb 22 09:53:29 2011 for CLAM-Development by  doxygen 1.5.9