File indexing completed on 2024-04-28 04:49:19

0001 /*
0002  * SPDX-FileCopyrightText: 2023 George Florea Bănuș <georgefb899@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #ifndef MPVPREVIEW_H
0008 #define MPVPREVIEW_H
0009 
0010 #include <MpvAbstractItem>
0011 
0012 class MpvRenderer;
0013 
0014 class MpvPreview : public MpvAbstractItem
0015 {
0016     Q_OBJECT
0017     QML_ELEMENT
0018 
0019     Q_PROPERTY(double position READ position WRITE setPosition NOTIFY positionChanged)
0020     Q_PROPERTY(double aspectRatio READ aspectRatio NOTIFY aspectRatioChanged)
0021     Q_PROPERTY(QString file READ file WRITE setFile NOTIFY fileChanged)
0022     Q_PROPERTY(bool accuratePreview READ accuratePreview WRITE setAccuratePreview NOTIFY accuratePreviewChanged)
0023     Q_PROPERTY(bool isLocalFile READ isLocalFile WRITE setIsLocalFile NOTIFY isLocalFileChanged)
0024 
0025 public:
0026     MpvPreview();
0027 
0028     double position();
0029     void setPosition(double value);
0030 
0031     double aspectRatio();
0032 
0033     QString file() const;
0034     void setFile(const QString &_file);
0035 
0036     Q_INVOKABLE void loadFile();
0037 
0038     bool accuratePreview() const;
0039     void setAccuratePreview(bool _accuratePreview);
0040 
0041     bool isLocalFile() const;
0042     void setIsLocalFile(bool _isLocalFile);
0043 
0044 Q_SIGNALS:
0045     void positionChanged();
0046     void aspectRatioChanged();
0047     void fileChanged();
0048     void accuratePreviewChanged();
0049     void isLocalFileChanged();
0050 
0051 private:
0052     double m_position{0.0};
0053     QString m_file;
0054     bool m_accuratePreview;
0055     bool m_isLocalFile{false};
0056     bool m_isReady{false};
0057 };
0058 
0059 #endif // MPVPREVIEW_H