Sayonara Player
GUI_SpectrogramPainter.h
1 #ifndef GUI_SPECTROGRAMPAINTER_H
2 #define GUI_SPECTROGRAMPAINTER_H
3 
4 #include "Components/PlayManager/PlayState.h"
5 #include "Gui/Plugins/PlayerPluginBase.h"
6 
7 #include <QList>
8 #include <QWidget>
9 
11  public PlayerPlugin::Base
12 {
13  Q_OBJECT
15 
16 public:
17  explicit GUI_SpectrogramPainter(QWidget* parent = nullptr);
18  ~GUI_SpectrogramPainter() override;
19 
20  QString name() const override;
21  QString displayName() const override;
22  bool isUiInitialized() const override;
23 
24 private slots:
25  void reset();
26  void spectrumChanged(const QList<float>& spectrum, MilliSeconds ms);
27  void finished();
28 
29  void playstateChanged(PlayState state);
30  void trackChanged(const MetaData& md);
31 
32 protected:
33  void retranslate() override;
34  void initUi() override;
35 
36  void paintEvent(QPaintEvent* e) override;
37  void mousePressEvent(QMouseEvent* e) override;
38  void mouseMoveEvent(QMouseEvent* e) override;
39 
40  void showEvent(QShowEvent* e) override;
41  void closeEvent(QCloseEvent* e) override;
42 
43 private:
44  void drawBuffer(int percent_step);
45  QString calcTooltip(float yPercent);
46 
47  void showFullsize();
48  void positionClicked(QPoint position);
49 
50  void startAudioDataProvider(const MetaData& md);
51  void stopAudioDataProvider();
52 
53  QSize minimumSizeHint() const override;
54 };
55 
56 #endif // GUI_SPECTROGRAMPAINTER_H
PlayState
PlayState
The PlayState enum.
Definition: PlayState.h:29
PlayerPlugin::Base
Definition: PlayerPluginBase.h:40
GUI_SpectrogramPainter::name
QString name() const override
must be overwritten
QList
Definition: EngineUtils.h:33
GUI_SpectrogramPainter::displayName
QString displayName() const override
must be overwritten
GUI_SpectrogramPainter::isUiInitialized
bool isUiInitialized() const override
Check if ui already was initialized.
GUI_SpectrogramPainter
Definition: GUI_SpectrogramPainter.h:12
MetaData
The MetaData class.
Definition: MetaData.h:47
GUI_SpectrogramPainter::initUi
void initUi() override
GUI will be initialized on first show up. Please use this to make Sayonara starting fast.