#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "PhotoDisplay.h" #include "qevent.h" #include "ZMQClient.h" #include "VlcMediaPlayer.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); static MainWindow& Get(); static int GetScreenIndex() { return 0; } int GetRoopPort() const { return m_roopPort; } bool GetPaperIPAndPort(QString* ip, int* port) { *ip = m_paperIp; *port = m_paperPort; return true; } void DisplayPhoto(const QString& fileName); void SendHeaderPhoto(const QString& fileName); void Tranform(const QByteArray& message); public: void slotSetOneFrame(QImage image) { videoImage_ = image; } void PlayDefualtVideo(); protected: void closeEvent(QCloseEvent* event) override; void mousePressEvent(QMouseEvent* event) override; void keyReleaseEvent(QKeyEvent* event) override; void paintEvent(QPaintEvent* event) override; void OnStop(); public: void OnPositionChanged(qint64 position); private: Ui::MainWindow *ui; PhotoDisplay* m_photoDisplay; QPixmap m_defaultImage; class NetClient* m_netClient{nullptr}; VlcMediaPlayer vlcPlayer_; QImage videoImage_; QTimer videoUpdate_; bool m_photoIng{ false }; bool m_requestImg{ false }; bool m_photoImg{ false }; bool m_trans{ false }; QString m_defualtVideo; QString m_photoVideo; QString m_photoPath; QString m_photoHeaderPath; QVector m_transMessage; QString m_printIP; int m_showImage = 51; int m_phototime = 28; int m_photoOuttime = 28; int m_aminationTime = 2; int m_roopPort = 9531; QString m_paperIp; int m_paperPort = 9532; int m_left2right = 1; class TokenRequest* m_tokenRequest{ nullptr }; QPropertyAnimation* m_animation; bool m_isConnected{ false }; bool isPhotoing{false}; ZMQClient zmqClient_; }; #endif // MAINWINDOW_H