55 lines
1.1 KiB
C++
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
|