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
+