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 39 of file FFT.cxx.

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

Definition at line 47 of file FFT.cxx.


Member Function Documentation

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

Definition at line 52 of file FFT.cxx.

References fftbuffer.

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

Definition at line 60 of file FFT.cxx.

Referenced by CLAM::FFT_ooura::Do().

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 104 of file FFT.cxx.

Referenced by CLAM::FFT_numrec::FFT_numrec().

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 
)

FFT non-supervised mode SetPrototypes function.

Definition at line 83 of file FFT.cxx.

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

Definition at line 143 of file FFT.cxx.

References mState, and sOther.

bool CLAM::FFT_base::UnsetPrototypes (  ) 

Standard UnsetPrototypes function.

Definition at line 137 of file FFT.cxx.


Member Data Documentation

Internal output buffer.

Definition at line 81 of file FFT_base.hxx.

Referenced by ChangeSize(), and CLAM::FFT_ooura::Do().

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 CLAM::FFT_ooura::Do().

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

Definition at line 51 of file FFT_base.hxx.

FFT Configuration.

Definition at line 54 of file FFT_base.hxx.

Referenced by GetConfig().

Definition at line 77 of file FFT_base.hxx.

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

Definition at line 78 of file FFT_base.hxx.

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

FFT size.

Definition at line 56 of file FFT_base.hxx.

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

I/O Prototype state of the FFT object.

Definition at line 67 of file FFT_base.hxx.

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


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.3