#ifndef SCREENSAVERWINDOW_H #define SCREENSAVERWINDOW_H #include #include class QMediaPlayer; class QVideoWidget; class QLabel; class ScreenSaverWindow : public QWidget { Q_OBJECT enum MultiMediaType { Video,Photo }; struct MultiMediaData { MultiMediaData(const QString& aMediaPath, MultiMediaType aMediaType) { MediaPath = aMediaPath; MediaType = aMediaType; }; QString MediaPath; MultiMediaType MediaType; }; public: explicit ScreenSaverWindow(QWidget *aParent = nullptr); void play(); void stop(bool aIsStopLocker = false); void startLocker(); protected: void mousePressEvent(QMouseEvent* aEvent); private: void initializeMultimediaList(); void handleVideoStatusChanged(QMediaPlayer::MediaStatus aStatus); void playMultimedia(); private: QMediaPlayer* mMediaPlayer; QVideoWidget* mVideoWidget; QList mMultiMediaList; QLabel* mPhotoWidget; QTimer* mPhotoTimer; int mCurrentPlayIndex; bool mIsPlaying; }; #endif // SCREENSAVERWINDOW_H