waveformview: implemented basic waveformview display

This commit is contained in:
itsmattkc
2020-03-14 01:22:03 +11:00
parent f0e6f9a5f9
commit 73d693f2d5
6 changed files with 176 additions and 51 deletions
+26 -2
View File
@@ -1,16 +1,40 @@
#ifndef WAVEFORMVIEW_H
#define WAVEFORMVIEW_H
#include "widget/timebased/timebased.h"
#include <QWidget>
class WaveformView : public TimeBasedWidget
#include "audio/sumsamples.h"
#include "render/audioparams.h"
#include "render/backend/audiorenderbackend.h"
#include "widget/timelinewidget/timelinescaledobject.h"
class WaveformView : public TimelineScaledWidget
{
Q_OBJECT
public:
WaveformView(QWidget* parent = nullptr);
//void SetData(const QString& file, const AudioRenderingParams& params);
void SetBackend(AudioRenderBackend* backend);
static void DrawWaveform(QPainter* painter, const QRect &rect, const double &scale, const SampleSummer::Sum *samples, int nb_samples, int channels);
public slots:
void SetScroll(int scroll);
protected:
virtual void paintEvent(QPaintEvent* event) override;
virtual void ScaleChangedEvent(const double& s) override;
private:
int GetSampleIndexFromPixel(int x) const;
AudioRenderBackend* backend_;
int scroll_;
};
#endif // WAVEFORMVIEW_H