#define ABSTRACTAUDIOSCOPEWIDGET_H
-#include <QtCore>
#include <QWidget>
#include <stdint.h>
-#include "abstractscopewidget.h"
+#include "../abstractscopewidget.h"
-class QMenu;
-class Monitor;
class Render;
+/**
+ \brief Abstract class for scopes analyzing audio samples.
+ */
class AbstractAudioScopeWidget : public AbstractScopeWidget
{
Q_OBJECT
public:
- AbstractAudioScopeWidget(bool trackMouse = false, QWidget *parent = 0);
+ explicit AbstractAudioScopeWidget(bool trackMouse = false, QWidget *parent = 0);
virtual ~AbstractAudioScopeWidget();
+public slots:
+ void slotReceiveAudio(const QVector<int16_t> &sampleData, int freq, int num_channels, int num_samples);
+
protected:
/** @brief This is just a wrapper function, subclasses can use renderAudioScope. */
virtual QImage renderScope(uint accelerationFactor);
when calculation has finished, to allow multi-threading.
accelerationFactor hints how much faster than usual the calculation should be accomplished, if possible. */
virtual QImage renderAudioScope(uint accelerationFactor,
- const QVector<int16_t> audioFrame, const int freq, const int num_channels, const int num_samples,
- const int newData) = 0;
+ const QVector<int16_t> &audioFrame, const int freq, const int num_channels, const int num_samples,
+ const int newData) = 0;
int m_freq;
int m_nChannels;
QVector<int16_t> m_audioFrame;
QAtomicInt m_newData;
-private slots:
- void slotReceiveAudio(const QVector<int16_t>& sampleData, int freq, int num_channels, int num_samples);
-
};
#endif // ABSTRACTAUDIOSCOPEWIDGET_H