]> git.sur5r.net Git - minitube/blob - lib/media/src/media.h
New upstream version 3.8
[minitube] / lib / media / src / media.h
1 #ifndef MEDIA_H
2 #define MEDIA_H
3
4 #include <QtCore>
5 #ifndef MEDIA_AUDIOONLY
6 #include <QtWidgets>
7 #endif
8
9 class Media : public QObject {
10     Q_OBJECT
11
12 public:
13     enum State {
14         StoppedState,
15         LoadingState,
16         BufferingState,
17         PlayingState,
18         PausedState,
19         ErrorState
20     };
21     Q_ENUM(State)
22
23     Media(QObject *parent = nullptr) : QObject(parent) {
24         qRegisterMetaType<Media::State>("Media::State");
25     }
26     virtual void setAudioOnly(bool value) = 0;
27 #ifndef MEDIA_AUDIOONLY
28     virtual void setRenderer(const QString &name) = 0;
29     virtual QWidget *videoWidget() = 0;
30     virtual void playSeparateAudioAndVideo(const QString &video, const QString &audio) = 0;
31     virtual void snapshot() = 0;
32 #endif
33     virtual void init() = 0;
34
35     virtual Media::State state() const = 0;
36
37     virtual void play(const QString &file) = 0;
38     virtual void play() = 0;
39     virtual void pause() = 0;
40     virtual void stop() = 0;
41     virtual void seek(qint64 ms) = 0;
42     virtual void relativeSeek(qint64 ms) = 0;
43     virtual QString file() const = 0;
44
45     virtual void setBufferMilliseconds(qint64 value) = 0;
46     virtual void setUserAgent(const QString &value) = 0;
47
48     virtual void enqueue(const QString &file) = 0;
49     virtual void clearQueue() = 0;
50     virtual bool hasQueue() const = 0;
51
52     virtual qint64 position() const = 0;
53     virtual qint64 duration() const = 0;
54     virtual qint64 remainingTime() const = 0;
55
56     virtual qreal volume() const = 0;
57     virtual void setVolume(qreal value) = 0;
58
59     virtual bool volumeMuted() const = 0;
60     virtual void setVolumeMuted(bool value) = 0;
61
62     virtual QString errorString() const = 0;
63
64 signals:
65     void error(const QString &message);
66     void sourceChanged();
67     void bufferStatus(qreal value);
68     void loaded();
69     void started();
70     void stopped();
71     void paused(bool p);
72     void stateChanged(Media::State state);
73     void positionChanged(qint64 ms);
74     void aboutToFinish();
75     void finished();
76     void volumeChanged(qreal value);
77     void volumeMutedChanged(bool value);
78 #ifndef MEDIA_AUDIOONLY
79     void snapshotReady(const QImage &image);
80 #endif
81 };
82
83 #endif // MEDIA_H