Files
GUI/src/screensaver/ScreenSaverWindow.h
2022-08-18 17:09:16 +08:00

55 lines
1.1 KiB
C++

#ifndef SCREENSAVERWINDOW_H
#define SCREENSAVERWINDOW_H
#include <QWidget>
#include <QMediaPlayer>
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<MultiMediaData> mMultiMediaList;
QLabel* mPhotoWidget;
QTimer* mPhotoTimer;
int mCurrentPlayIndex;
bool mIsPlaying;
};
#endif // SCREENSAVERWINDOW_H