#pragma once #include #include "samplereader.h" class SoundView : public QGraphicsView { Q_OBJECT public: explicit SoundView(QWidget* parent = nullptr); ~SoundView(); void loadFile(const std::string& file); void redraw(); void paintEvent(QPaintEvent*) override; void resizeEvent(QResizeEvent*) override; public slots: void updatePosition(unsigned long newpos); void updateStartPosition(unsigned long newpos); void updateEndPosition(unsigned long newpos); private: void drawCursor(uint64_t pos, QPen pen); QGraphicsScene scene; SampleReader* samples = nullptr; std::string file; uint64_t currentPosition = 0; uint64_t startPos = 0; uint64_t endPos = 0; };