--- 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;
};