Abstract base class for FFT classes. More...
#include <FFT_base.hxx>
Public Member Functions | |
FFT_base () | |
virtual | ~FFT_base () |
const ProcessingConfig & | GetConfig () 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< Spectrum > | mOutput |
TData * | fftbuffer |
Internal output buffer. | |
Static Protected Attributes | |
static SpecTypeFlags | mComplexflags |
Auxiliary flags structure, used to add the complex attribute. |
Abstract base class for FFT classes.
Definition at line 43 of file FFT_base.hxx.
enum CLAM::FFT_base::FFTState [protected] |
Definition at line 60 of file FFT_base.hxx.
void CLAM::FFT_base::ChangeSize | ( | int | n | ) | [protected] |
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.
Reference | to the configuration object. |
true if the processing object is left in a consistent state, and can be executed.
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.
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.
virtual void CLAM::FFT_base::ToComplex | ( | Spectrum & | out | ) | [pure virtual] |
void CLAM::FFT_base::ToOther | ( | Spectrum & | out | ) | [virtual] |
bool CLAM::FFT_base::UnsetPrototypes | ( | ) |
TData* CLAM::FFT_base::fftbuffer [protected] |
Internal output buffer.
Definition at line 81 of file FFT_base.hxx.
Referenced by ChangeSize(), and CLAM::FFT_ooura::Do().
FFTState CLAM::FFT_base::mBackupState [protected] |
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.
SpecTypeFlags CLAM::FFT_base::mComplexflags [static, protected] |
Auxiliary flags structure, used to add the complex attribute.
Definition at line 48 of file FFT_base.hxx.
Referenced by CLAM::FFT_ooura::Do().
Spectrum CLAM::FFT_base::mComplexSpectrum [protected] |
Auxiliary spectrum used if output spectrum does not have complex array.
Definition at line 51 of file FFT_base.hxx.
FFTConfig CLAM::FFT_base::mConfig [protected] |
AudioInPort CLAM::FFT_base::mInput [protected] |
Definition at line 77 of file FFT_base.hxx.
Referenced by CLAM::FFT_ooura::Do(), and CLAM::FFT_fftw3::Do().
OutPort<Spectrum> CLAM::FFT_base::mOutput [protected] |
Definition at line 78 of file FFT_base.hxx.
Referenced by CLAM::FFT_ooura::Do(), and CLAM::FFT_fftw3::Do().
int CLAM::FFT_base::mSize [protected] |
FFT size.
Definition at line 56 of file FFT_base.hxx.
Referenced by CLAM::FFT_ooura::Do(), CLAM::FFT_numrec::FFT_numrec(), and GetSize().
FFTState CLAM::FFT_base::mState [protected] |
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().