MainWindow.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QtCharts/QChartView>
  5. #include <QtCharts/QLineSeries>
  6. #include <QtCharts/QChart>
  7. #include <QtCharts/QDateTimeAxis>
  8. #include <QtCharts/QValueAxis>
  9. #include <QLabel>
  10. #include "AudioReader/ReadAudioFileThread.h"
  11. QT_CHARTS_USE_NAMESPACE
  12. namespace Ui {
  13. class MainWindow;
  14. }
  15. class MainWindow : public QMainWindow, public AudioPlayerCallBack
  16. {
  17. Q_OBJECT
  18. public:
  19. explicit MainWindow(QWidget *parent = nullptr);
  20. ~MainWindow();
  21. private:
  22. Ui::MainWindow *ui;
  23. ReadAudioFileThread *mReadAudioFileThread;
  24. QLabel *mShowProgressLabel; //显示进度用的
  25. ///显示左声道波形图的图表
  26. QChartView *mChartView_Left;
  27. ///显示右声道波形图的图表
  28. QChartView *mChartView_Right;
  29. ///当前播放的数据
  30. QChartView *mCurrentChartView_Left;
  31. QChartView *mCurrentChartView_Right;
  32. QList<std::list<float>> mLeftChannelDbValueList;
  33. QList<std::list<float>> mRightChannelDbValueList;
  34. ///以下为回调函数,用于接受ReadAudioFileThread类传给界面的数据
  35. protected:
  36. ///获取到音频波形图数据
  37. void onGetPcmWaveValues(const std::list<float> &leftChannelValues, const std::list<float> &rightChannelValues) override;
  38. ///当前播放的一帧音频数据
  39. void onGetPcmFrame(PCMFramePtr pcmFramePtr) override;
  40. void onUpdatePlayingValue(const float &leftChannel,
  41. const float &rightChannel,
  42. const std::list<float> &leftChannelDbValues,
  43. const std::list<float> &rightChannelDbValues,
  44. const float &progress) override;
  45. void onUpdatePlayingTime(const uint32_t &totalTime, const uint32_t &currentTime) override;
  46. };
  47. #endif // MAINWINDOW_H