Mercurial > hg > svcore
diff data/fft/FFTapi.h @ 226:a867be73b638
* Add non-fftw3 fft alternative
author | Chris Cannam |
---|---|
date | Fri, 09 Feb 2007 11:32:34 +0000 |
parents | |
children | 7c53640bb9ba |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/fft/FFTapi.h Fri Feb 09 11:32:34 2007 +0000 @@ -0,0 +1,53 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sonic Visualiser + An audio file viewer and annotation editor. + Centre for Digital Music, Queen Mary, University of London. + This file copyright 2006 Chris Cannam and QMUL. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef _FFT_API_H_ +#define _FFT_API_H_ + +#ifdef HAVE_FFTW3F + +#include <fftw3.h> + +#define fftf_complex fftwf_complex +#define fftf_malloc fftwf_malloc +#define fftf_free fftwf_free +#define fftf_plan fftwf_plan +#define fftf_plan_dft_r2c_1d fftwf_plan_dft_r2c_1d +#define fftf_plan_dft_c2r_1d fftwf_plan_dft_c2r_1d +#define fftf_execute fftwf_execute +#define fftf_destroy_plan fftwf_destroy_plan + +#else + +// Provide a fallback FFT implementation if FFTW3f is not available. + +typedef float fftf_complex[2]; +#define fftf_malloc malloc +#define fftf_free free + +struct fftf_plan_; +typedef fftf_plan_ *fftf_plan; + +fftf_plan fftf_plan_dft_r2c_1d(int n, float *in, fftf_complex *out, unsigned); +fftf_plan fftf_plan_dft_c2r_1d(int n, fftf_complex *in, float *out, unsigned); +void fftf_execute(const fftf_plan p); +void fftf_destroy_plan(fftf_plan p); + +#define FFTW_ESTIMATE 0 + +#endif + +#endif +