1// qmediaplayer.sip generated by MetaSIP
2//
3// This file is part of the QtMultimedia Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QGraphicsVideoItem /External/;
24class QVideoWidget /External/;
25
26class QMediaPlayer : QMediaObject
27{
28%TypeHeaderCode
29#include <qmediaplayer.h>
30%End
31
32public:
33    enum State
34    {
35        StoppedState,
36        PlayingState,
37        PausedState,
38    };
39
40    enum MediaStatus
41    {
42        UnknownMediaStatus,
43        NoMedia,
44        LoadingMedia,
45        LoadedMedia,
46        StalledMedia,
47        BufferingMedia,
48        BufferedMedia,
49        EndOfMedia,
50        InvalidMedia,
51    };
52
53    enum Flag
54    {
55        LowLatency,
56        StreamPlayback,
57        VideoSurface,
58    };
59
60    typedef QFlags<QMediaPlayer::Flag> Flags;
61
62    enum Error
63    {
64        NoError,
65        ResourceError,
66        FormatError,
67        NetworkError,
68        AccessDeniedError,
69        ServiceMissingError,
70    };
71
72    QMediaPlayer(QObject *parent /TransferThis/ = 0, QMediaPlayer::Flags flags = QMediaPlayer::Flags());
73    virtual ~QMediaPlayer();
74    static QMultimedia::SupportEstimate hasSupport(const QString &mimeType, const QStringList &codecs = QStringList(), QMediaPlayer::Flags flags = QMediaPlayer::Flags());
75    static QStringList supportedMimeTypes(QMediaPlayer::Flags flags = QMediaPlayer::Flags());
76    void setVideoOutput(QVideoWidget *);
77    void setVideoOutput(QGraphicsVideoItem *);
78    void setVideoOutput(QAbstractVideoSurface *surface);
79%If (Qt_5_15_0 -)
80    void setVideoOutput(const QVector<QAbstractVideoSurface *> &surfaces);
81%End
82    QMediaContent media() const;
83    const QIODevice *mediaStream() const;
84    QMediaPlaylist *playlist() const;
85    QMediaContent currentMedia() const;
86    QMediaPlayer::State state() const;
87    QMediaPlayer::MediaStatus mediaStatus() const;
88    qint64 duration() const;
89    qint64 position() const;
90    int volume() const;
91    bool isMuted() const;
92    bool isAudioAvailable() const;
93    bool isVideoAvailable() const;
94    int bufferStatus() const;
95    bool isSeekable() const;
96    qreal playbackRate() const;
97    QMediaPlayer::Error error() const;
98    QString errorString() const;
99    QNetworkConfiguration currentNetworkConfiguration() const;
100    virtual QMultimedia::AvailabilityStatus availability() const;
101
102public slots:
103    void play();
104    void pause();
105    void stop();
106    void setPosition(qint64 position);
107    void setVolume(int volume);
108    void setMuted(bool muted);
109    void setPlaybackRate(qreal rate);
110    void setMedia(const QMediaContent &media, QIODevice *stream = 0);
111    void setPlaylist(QMediaPlaylist *playlist);
112    void setNetworkConfigurations(const QList<QNetworkConfiguration> &configurations);
113
114signals:
115    void mediaChanged(const QMediaContent &media);
116    void currentMediaChanged(const QMediaContent &media);
117    void stateChanged(QMediaPlayer::State newState);
118    void mediaStatusChanged(QMediaPlayer::MediaStatus status);
119    void durationChanged(qint64 duration);
120    void positionChanged(qint64 position);
121    void volumeChanged(int volume);
122    void mutedChanged(bool muted);
123    void audioAvailableChanged(bool available);
124    void videoAvailableChanged(bool videoAvailable);
125    void bufferStatusChanged(int percentFilled);
126    void seekableChanged(bool seekable);
127    void playbackRateChanged(qreal rate);
128    void error(QMediaPlayer::Error error);
129    void networkConfigurationChanged(const QNetworkConfiguration &configuration);
130
131public:
132    virtual bool bind(QObject *);
133    virtual void unbind(QObject *);
134%If (Qt_5_6_0 -)
135    QAudio::Role audioRole() const;
136%End
137%If (Qt_5_6_0 -)
138    void setAudioRole(QAudio::Role audioRole);
139%End
140%If (Qt_5_6_0 -)
141    QList<QAudio::Role> supportedAudioRoles() const;
142%End
143
144signals:
145%If (Qt_5_6_0 -)
146    void audioRoleChanged(QAudio::Role role);
147%End
148
149public:
150%If (Qt_5_11_0 -)
151    QString customAudioRole() const;
152%End
153%If (Qt_5_11_0 -)
154    void setCustomAudioRole(const QString &audioRole);
155%End
156%If (Qt_5_11_0 -)
157    QStringList supportedCustomAudioRoles() const;
158%End
159
160signals:
161%If (Qt_5_11_0 -)
162    void customAudioRoleChanged(const QString &role);
163%End
164};
165