#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include "Config.h" #include "ZMQServer.h" class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(const QStringList& fontFamily, QWidget* parent = nullptr); ~MainWindow(); static MainWindow& Get(); QString GetTownName(int32_t town) const; QString GetPlaceName(int32_t town, int32_t place) const; QString GetTitleName(int32_t town, int32_t place) const; QString GetImageName(int32_t town, int32_t place, int32_t image) const; Scope GetScope(int32_t town, int32_t place) const; void SetScope(int32_t town, int32_t place, const Scope& scope); const QStringList& GetDefaultFontFamily() const { return m_fontFamily; } void Adjust(); void SaveConfig(); const QRect& GetTextRect() const { return m_textRect; } const QSize& GetImageShowSize() const { return m_imageSize; } int GetDelayRetore()const { return m_delayRestore; } int GetCrilceDelay()const { return m_delayCricle; } void PlayWav(); void SetNetStatus(int connected); //void show(); protected: void OnMessage(const QString& cmd); void closeEvent(class QCloseEvent* event) override; void keyPressEvent(QKeyEvent* event) override; bool eventFilter(QObject* obj, QEvent* event) override; void CreateMovieWidget(const QRect& movieRect); void PlayMovie(); void ScreenChange(QScreen* screen); private: QWidget* m_projectWidget{ nullptr }; class DisplayMovieGLWidget* m_glWidget{ nullptr }; //class TcpClient* m_tcpClient{ nullptr }; QUdpSocket m_udpSocket; ZMQServer zmqServer_; Config m_config; QVector m_cmdReceivers; QStringList m_fontFamily; QRect m_mainScreen{ 0, 0, 5760, 3240 }; QRect m_projectScreen{ 5760, 0, 1920, 1080 }; QRect m_textRect{ 3040, 640, 500, 400 }; QSize m_imageSize{ 1960, 1200}; class TokenRequest* m_tokenRequest{ nullptr }; QString m_moviePath; class MediaPlayer* m_mediaPlayer; bool m_playing{ false }; QString m_wavName; irrklang::ISoundEngine* m_soundEngine{ nullptr }; int m_delayRestore{ 20 }; int m_delayCricle{ 40 }; QTimer m_updateTimer; }; #endif // MAINWINDOW_H