Qt 5.9 | Qt Multimedia | Spectrum Example | fftreal_wrapper.h Example File

Qt 5.9.4 Reference Documentation

# 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