#pragma once #include #include #include #include #include #include #include class PlayerController; class AudioEffectGL; class OpenGLVideoWidget; class PlayWidget : public QWidget { Q_OBJECT public: explicit PlayWidget(QWidget* parent = nullptr); private: std::unique_ptr m_videoWidget; QSlider* m_sliderProgress; QLabel* m_labelTime; QPushButton* m_btnPlayPause; QComboBox* m_comboSpeed; QSlider* m_sliderVolume; QLabel* m_labelVolume; std::unique_ptr m_audioEffect; PlayerController* m_playerController = nullptr; void setupUi(); void setupConnections(); void setPlayerController(PlayerController* controller); private slots: void onPlayPauseClicked(); void onProgressChanged(int value); void onSpeedChanged(int index); void onVolumeChanged(int value); };