audio_effect_gl.h 834 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <QImage>
  3. #include <QKeyEvent>
  4. // #include <QtOpenGLWidgets>
  5. #include <QOpenGLWidget>
  6. #include "audio_effect_helper.h"
  7. #include "audio_play_thread.h"
  8. class AudioEffectGL : public QOpenGLWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit AudioEffectGL(QWidget* parent = nullptr);
  13. virtual ~AudioEffectGL(){};
  14. public:
  15. void paint_data(const AudioData& data);
  16. void paint_clear()
  17. {
  18. m_data.len = 0;
  19. repaint();
  20. };
  21. void set_draw_fmt(const BarHelper::VisualFormat& fmt) { m_helper.set_draw_fmt(fmt); }
  22. signals:
  23. void hiden(bool bSend = false);
  24. protected:
  25. void paintEvent(QPaintEvent* event) override;
  26. void keyPressEvent(QKeyEvent* event) override;
  27. void closeEvent(QCloseEvent* event) override;
  28. private:
  29. QImage m_img;
  30. BarHelper m_helper;
  31. AudioData m_data;
  32. };