CLAM::FFT_base Class Reference

#include <FFT_base.hxx>

Inheritance diagram for CLAM::FFT_base:

CLAM::Processing CLAM::FFT_fftw3 CLAM::FFT_numrec CLAM::FFT_ooura

List of all members.


Detailed Description

Abstract base class for FFT classes.

Definition at line 43 of file FFT_base.hxx.


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.

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.

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

Definition at line 85 of file FFT_base.hxx.

References mSize.

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.

Referenced by CLAM::FFT_fftw3::ConcreteConfigure().

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.

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::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.

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

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

Standard supervised-mode SetPrototypes function.

Definition at line 115 of file FFT_base.hxx.

bool CLAM::FFT_base::UnsetPrototypes (  ) 

Standard UnsetPrototypes function.

Definition at line 152 of file FFT.cxx.

References mState, and sOther.

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

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.

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

Definition at line 129 of file FFT_base.hxx.

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

Definition at line 131 of file FFT_base.hxx.

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

Referenced by ToOther().

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


Member Data Documentation

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().

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().

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.

Definition at line 78 of file FFT_base.hxx.

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

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().


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

Generated on Tue Aug 12 22:33:48 2008 for CLAM by  doxygen 1.5.5