fftreal_wrapper.h Example File

multimedia/spectrum/3rdparty/fftreal/fftreal_wrapper.h

  /***************************************************************************
  **
  ** 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