summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h')
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
index 83a609d32c..5a53a07131 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
@@ -43,6 +43,7 @@
#define QGSTREAMERPLAYERCONTROL_H
#include <QtCore/qobject.h>
+#include <QtCore/qstack.h>
#include <qmediaplayercontrol.h>
#include <qmediaplayer.h>
@@ -64,6 +65,7 @@ class PlayerResourcePolicy;
class QGstreamerPlayerControl : public QMediaPlayerControl
{
Q_OBJECT
+ Q_PROPERTY(bool mediaDownloadEnabled READ isMediaDownloadEnabled WRITE setMediaDownloadEnabled)
public:
QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent = 0);
@@ -94,6 +96,9 @@ public:
const QIODevice *mediaStream() const;
void setMedia(const QMediaContent&, QIODevice *);
+ bool isMediaDownloadEnabled() const;
+ void setMediaDownloadEnabled(bool enabled);
+
public Q_SLOTS:
void setPosition(qint64 pos);
@@ -108,7 +113,8 @@ private Q_SLOTS:
void writeFifo();
void fifoReadyWrite(int socket);
- void updateState(QMediaPlayer::State);
+ void updateSessionState(QMediaPlayer::State state);
+ void updateMediaStatus();
void processEOS();
void setBufferProgress(int progress);
void applyPendingSeek(bool isSeekable);
@@ -123,11 +129,16 @@ private:
void closeFifo();
void playOrPause(QMediaPlayer::State state);
+ void pushState();
+ void popAndNotifyState();
+
bool m_ownStream;
QGstreamerPlayerSession *m_session;
QMediaPlayer::State m_state;
QMediaPlayer::MediaStatus m_mediaStatus;
- bool m_blockStatusChangedSignal;
+ QStack<QMediaPlayer::State> m_stateStack;
+ QStack<QMediaPlayer::MediaStatus> m_mediaStatusStack;
+
int m_bufferProgress;
bool m_seekToStartPending;
qint64 m_pendingSeekPosition;