MediaPlayerPrivateQt.h [plain text]
#ifndef MediaPlayerPrivateQt_h
#define MediaPlayerPrivateQt_h
#include "MediaPlayerPrivate.h"
#include <QMediaPlayer>
#include <QObject>
QT_BEGIN_NAMESPACE
class QMediaPlayerControl;
class QGraphicsVideoItem;
class QGraphicsScene;
QT_END_NAMESPACE
namespace WebCore {
class MediaPlayerPrivate : public QObject, public MediaPlayerPrivateInterface {
Q_OBJECT
public:
static MediaPlayerPrivateInterface* create(MediaPlayer* player);
~MediaPlayerPrivate();
static void registerMediaEngine(MediaEngineRegistrar);
static void getSupportedTypes(HashSet<String>&);
static MediaPlayer::SupportsType supportsType(const String&, const String&);
static bool isAvailable() { return true; }
bool hasVideo() const;
bool hasAudio() const;
void load(const String &url);
void cancelLoad();
void play();
void pause();
bool paused() const;
bool seeking() const;
float duration() const;
float currentTime() const;
void seek(float);
void setRate(float);
void setVolume(float);
bool supportsMuting() const;
void setMuted(bool);
MediaPlayer::NetworkState networkState() const;
MediaPlayer::ReadyState readyState() const;
PassRefPtr<TimeRanges> buffered() const;
float maxTimeSeekable() const;
unsigned bytesLoaded() const;
unsigned totalBytes() const;
void setVisible(bool);
IntSize naturalSize() const;
void setSize(const IntSize&);
void paint(GraphicsContext*, const IntRect&);
bool supportsFullscreen() const { return false; }
#if USE(ACCELERATED_COMPOSITING)
virtual bool supportsAcceleratedRendering() const { return true; }
virtual void acceleratedRenderingStateChanged();
virtual PlatformLayer* platformLayer() const;
#endif
private slots:
void mediaStatusChanged(QMediaPlayer::MediaStatus);
void handleError(QMediaPlayer::Error);
void stateChanged(QMediaPlayer::State);
void nativeSizeChanged(const QSizeF&);
void queuedSeekTimeout();
void seekTimeout();
void positionChanged(qint64);
void durationChanged(qint64);
void volumeChanged(int);
void mutedChanged(bool);
void repaint();
private:
void updateStates();
private:
MediaPlayerPrivate(MediaPlayer*);
MediaPlayer* m_player;
QMediaPlayer* m_mediaPlayer;
QMediaPlayerControl* m_mediaPlayerControl;
QGraphicsVideoItem* m_videoItem;
QGraphicsScene* m_videoScene;
mutable MediaPlayer::NetworkState m_networkState;
mutable MediaPlayer::ReadyState m_readyState;
IntSize m_currentSize;
bool m_isVisible;
bool m_isSeeking;
bool m_composited;
qint64 m_queuedSeek;
};
}
#endif // MediaPlayerPrivateQt_h