src/3rdparty/phonon/mmf/mmf_videoplayer.h
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/src/3rdparty/phonon/mmf/mmf_videoplayer.h	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/3rdparty/phonon/mmf/mmf_videoplayer.h	Tue Feb 02 00:43:10 2010 +0200
@@ -23,7 +23,6 @@
 
 #include "abstractmediaplayer.h"
 #include "videooutput.h"
-#include "videooutputobserver.h"
 
 QT_BEGIN_NAMESPACE
 
@@ -40,7 +39,6 @@
  */
 class VideoPlayer : public AbstractMediaPlayer
                   , public MVideoPlayerUtilityObserver
-                  , public VideoOutputObserver
 {
     Q_OBJECT
 
@@ -70,8 +68,12 @@
     virtual void MvpuoPlayComplete(TInt aError);
     virtual void MvpuoEvent(const TMMFEvent &aEvent);
 
-    // VideoOutputObserver
-    virtual void videoOutputRegionChanged();
+public Q_SLOTS:
+    void videoWindowChanged();
+    void aspectRatioChanged();
+    void scaleModeChanged();
+    void suspendDirectScreenAccess();
+    void resumeDirectScreenAccess();
 
 private:
     void construct();
@@ -81,10 +83,20 @@
     // AbstractPlayer
     virtual void videoOutputChanged();
 
-    // Returns true if handles have changed
-    bool getNativeWindowSystemHandles();
+    void getVideoWindow();
+    void initVideoOutput();
+
+    void updateVideoRect();
 
-    void updateMmfOutput();
+    void applyPendingChanges();
+    void applyVideoWindowChange();
+
+    void startDirectScreenAccess();
+    bool stopDirectScreenAccess();
+
+    // AbstractMediaPlayer
+    virtual int numberOfMetaDataEntries() const;
+    virtual QPair<QString, QString> metaDataEntry(int index) const;
 
 private:
     QScopedPointer<CVideoPlayerUtility> m_player;
@@ -93,12 +105,19 @@
     RWsSession&                         m_wsSession;
     CWsScreenDevice&                    m_screenDevice;
     RWindowBase*                        m_window;
-    TRect                               m_rect;
+
+    /* Extent of the video display - will be clipped to m_windowRect */
+    TRect                               m_videoRect;
 
-    QSize                               m_frameSize;
+    TReal32                             m_scaleWidth;
+    TReal32                             m_scaleHeight;
+
+    QSize                               m_videoFrameSize;
     qint64                              m_totalTime;
 
-    bool                                m_mmfOutputChangePending;
+    bool                                m_pendingChanges;
+    bool                                m_dsaActive;
+    bool                                m_dsaWasActive;
 
 };