Sayonara Player
GUI_SpectrogramPainter.h
1 #ifndef GUI_SPECTROGRAMPAINTER_H
2 #define GUI_SPECTROGRAMPAINTER_H
3 
4 #include "Gui/Plugins/PlayerPluginBase.h"
5 
6 #include <QList>
7 #include <QWidget>
8 
9 class PlayManager;
10 
12  public PlayerPlugin::Base
13 {
14  Q_OBJECT
16 
17 public:
18  explicit GUI_SpectrogramPainter(PlayManager* playManager, QWidget* parent = nullptr);
19  ~GUI_SpectrogramPainter() override;
20 
21  QString name() const override;
22  QString displayName() const override;
23  bool isUiInitialized() const override;
24 
25 private slots:
26  void reset();
27  void spectrumChanged(const QList<float>& spectrum, MilliSeconds ms);
28  void finished();
29 
30  void playstateChanged(PlayState state);
31  void trackChanged(const MetaData& md);
32 
33 protected:
34  void retranslate() override;
35  void initUi() override;
36 
37  void paintEvent(QPaintEvent* e) override;
38  void mousePressEvent(QMouseEvent* e) override;
39  void mouseMoveEvent(QMouseEvent* e) override;
40 
41  void showEvent(QShowEvent* e) override;
42  void closeEvent(QCloseEvent* e) override;
43 
44 private:
45  void drawBuffer(int percent_step);
46  QString calcTooltip(float yPercent);
47 
48  void showFullsize();
49  void positionClicked(QPoint position);
50 
51  void startAudioDataProvider(const MetaData& md);
52  void stopAudioDataProvider();
53 
54  QSize minimumSizeHint() const override;
55 };
56 
57 #endif // GUI_SPECTROGRAMPAINTER_H
PlayerPlugin::Base
Definition: PlayerPluginBase.h:40
GUI_SpectrogramPainter::name
QString name() const override
must be overwritten
QList
Definition: EngineUtils.h:33
PlayManager
Global handler for current playback state (Singleton)
Definition: PlayManager.h:36
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:13
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.