audio_effect_gl.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <QApplication>
  2. #include <QDebug>
  3. #include <QPainter>
  4. #include "audio_effect_gl.h"
  5. AudioEffectGL::AudioEffectGL(QWidget* parent) : QOpenGLWidget(parent)
  6. {
  7. auto flags = windowFlags();
  8. flags |= Qt::Window;
  9. flags |= Qt::WindowStaysOnTopHint;
  10. flags &= (~Qt::WindowContextHelpButtonHint);
  11. // flags &= (~Qt::WindowMinMaxButtonsHint);
  12. setWindowFlags(flags);
  13. int width = 480;
  14. int height = 280;
  15. // setFixedSize(width, height);
  16. setMinimumWidth(width);
  17. setMinimumHeight(height);
  18. setWindowTitle("Audio visualization");
  19. setAutoFillBackground(true);
  20. m_img = QImage(":/images/res/bkground.png");
  21. }
  22. void AudioEffectGL::closeEvent(QCloseEvent* event)
  23. {
  24. hide();
  25. emit hiden();
  26. event->accept();
  27. }
  28. void AudioEffectGL::paintEvent(QPaintEvent* event)
  29. {
  30. QPainter painter;
  31. painter.begin(this);
  32. painter.setRenderHint(QPainter::Antialiasing);
  33. #if 0
  34. painter.drawImage(rect(), m_img);
  35. #else
  36. m_helper.paint(&painter, event, m_data);
  37. #endif
  38. painter.end();
  39. }
  40. void AudioEffectGL::keyPressEvent(QKeyEvent* event)
  41. {
  42. if (event->key() == Qt::Key_Escape)
  43. {
  44. hide();
  45. event->accept();
  46. }
  47. else
  48. {
  49. QOpenGLWidget::keyPressEvent(event);
  50. }
  51. }
  52. void AudioEffectGL::paint_data(const AudioData& data)
  53. {
  54. m_data = data;
  55. // qDebug() << "p=" << &data << "datalen:" << data.len;
  56. repaint();
  57. }