blob: 2da3147acd9b530099c46681e5cd9ede2515c324 [file] [log] [blame]
/***************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as
** published by the Free Software Foundation, either version 2.1. This
** program is distributed in the hope that it will be useful, but WITHOUT
** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
** for more details. You should have received a copy of the GNU General
** Public License along with this program. If not, see
** <http://www.gnu.org/licenses/>.
**
***************************************************************************/
#ifndef FFTREAL_WRAPPER_H
#define FFTREAL_WRAPPER_H
#include <QtCore/QtGlobal>
#if defined(FFTREAL_LIBRARY)
# define FFTREAL_EXPORT Q_DECL_EXPORT
#else
# define FFTREAL_EXPORT Q_DECL_IMPORT
#endif
class FFTRealWrapperPrivate;
// Each pass of the FFT processes 2^X samples, where X is the
// number below.
static const int FFTLengthPowerOfTwo = 12;
/**
* Wrapper around the FFTRealFixLen template provided by the FFTReal
* library
*
* This class instantiates a single instance of FFTRealFixLen, using
* FFTLengthPowerOfTwo as the template parameter. It then exposes
* FFTRealFixLen<FFTLengthPowerOfTwo>::do_fft via the calculateFFT
* function, thereby allowing an application to dynamically link
* against the FFTReal implementation.
*
* See http://ldesoras.free.fr/prod.html
*/
class FFTREAL_EXPORT FFTRealWrapper
{
public:
FFTRealWrapper();
~FFTRealWrapper();
typedef float DataType;
void calculateFFT(DataType in[], const DataType out[]);
private:
FFTRealWrapperPrivate* m_private;
};
#endif // FFTREAL_WRAPPER_H