+++ /dev/null
-/***************************************************************************
- * Copyright (C) 2010 by Simon Andreas Eugster (simon.eu@gmail.com) *
- * This file is part of kdenlive. See www.kdenlive.org. *
- * *
- * 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. *
- ***************************************************************************/
-
-/**
- Displays a spectral power distribution of audio samples.
- The frequency distribution is calculated by means of a Fast Fourier Transformation.
- For more information see Wikipedia:FFT and the code comments.
-*/
-
-#ifndef AUDIOSPECTRUM_H
-#define AUDIOSPECTRUM_H
-
-// Enables debugging
-//#define DEBUG_AUDIOSPEC
-
-// Show overmodulation
-#define DETECT_OVERMODULATION
-
-#include <QtCore>
-#include <QVector>
-#include <QHash>
-
-#include "abstractaudioscopewidget.h"
-#include "ui_audiospectrum_ui.h"
-#include "lib/external/kiss_fft/tools/kiss_fftr.h"
-#include "lib/audio/fftTools.h"
-
-class AudioSpectrum_UI;
-class AudioSpectrum : public AbstractAudioScopeWidget {
- Q_OBJECT
-
-public:
- AudioSpectrum(QWidget *parent = 0);
- ~AudioSpectrum();
-
- // Implemented virtual methods
- QString widgetName() const;
-
-
-protected:
- ///// Implemented methods /////
- QRect scopeRect();
- QImage renderHUD(uint accelerationFactor);
- QImage renderAudioScope(uint accelerationFactor, const QVector<int16_t> audioFrame, const int freq, const int num_channels, const int num_samples, const int newData);
- QImage renderBackground(uint accelerationFactor);
- bool isHUDDependingOnInput() const;
- bool isScopeDependingOnInput() const;
- bool isBackgroundDependingOnInput() const;
- virtual void readConfig();
- void writeConfig();
-
- virtual void handleMouseDrag(const QPoint &movement, const RescaleDirection rescaleDirection, const Qt::KeyboardModifiers rescaleModifiers);
-
-private:
- Ui::AudioSpectrum_UI *ui;
-
- QAction *m_aResetHz;
- QAction *m_aTrackMouse;
- QAction *m_aShowMax;
-
- FFTTools m_fftTools;
- QVector<float> m_lastFFT;
- QSemaphore m_lastFFTLock;
-
- QVector<float> m_peaks;
- QVector<float> m_peakMap;
-
- /** Contains the plot only; m_scopeRect contains text and widgets as well */
- QRect m_innerScopeRect;
-
- /** Lower bound for the dB value to display */
- int m_dBmin;
- /** Upper bound (max: 0) */
- int m_dBmax;
-
- /** Maximum frequency (limited by the sampling rate if determined automatically).
- Stored for the painters. */
- int m_freqMax;
- /** The user has chosen a custom frequency. */
- bool m_customFreq;
-
- float colorizeFactor;
-
-#ifdef DEBUG_AUDIOSPEC
- long m_timeTotal;
- long m_showTotal;
-#endif
-
-
-private slots:
- void slotResetMaxFreq();
-
-};
-
-#endif // AUDIOSPECTRUM_H