mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h
branchRCL_3
changeset 8 bc06d8566074
parent 7 94dbab0a2133
child 12 b74061f7f3d2
--- a/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h	Fri Mar 12 15:50:33 2010 +0200
+++ b/mmlibs/mmfw/src/Client/Video/mediaclientvideodisplaybody.h	Mon Mar 15 12:46:07 2010 +0200
@@ -17,6 +17,7 @@
 #define MEDIACLIENTVIDEODISPLAYBODY_H
 
 #include "mediaclientextdisplayhandler.h"
+#include "mediaclientwseventobserver.h"
 #include <graphics/surface.h>
 #include <graphics/surfaceconfiguration.h>
 #include <mmf/common/mmfvideosurfacecustomcommands.h>
@@ -24,13 +25,15 @@
 #include <mmf/plugin/mmfmediaclientextdisplayinterface.h>
 
 class MMMFSurfaceEventHandler;
+class CMediaClientPolicyServerClient;
 
 /**
 @internalTechnology
 @released
 
 */
-NONSHARABLE_CLASS(CMediaClientVideoDisplayBody) : public CBase, public MExtDisplayConnectionProviderCallback
+NONSHARABLE_CLASS(CMediaClientVideoDisplayBody) : public CBase, public MExtDisplayConnectionProviderCallback,
+public MMediaClientWsEventObserverCallback
 	{
 private:
 	NONSHARABLE_CLASS(TWindowData)
@@ -143,8 +146,6 @@
 	TInt SetBackgroundSurface(TWindowData& aWindowData, const TRect& aCropRegion);
 	TBool HasWindows() const;
 	
-    void MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected);
-
     void UpdateCropRegionL(const TRect& aCropRegion, TInt aPos);
     void CreateExtDisplayPluginL();
     void RemoveExtDisplayPlugin();
@@ -152,6 +153,15 @@
     void RemoveExtDisplayHandler();
     void SetWindowArrayPtr2Client();
     void SetWindowArrayPtr2Ext();
+    void SwitchSurface();
+    void UpdateFocus();
+
+    // MExtDisplayConnectionProviderCallback
+    void MedcpcExtDisplayNotifyConnected(TBool aExtDisplayConnected);
+
+    // MMediaClientWsEventObserverCallback
+    void MmcweoFocusWindowGroupChanged();
+    TBool MmcweoIgnoreProcess(TSecureId aId);
     
 private:
 
@@ -164,14 +174,19 @@
 	RArray<TWindowData> iClientWindows;
 	RArray<TWindowData> iExtDisplayWindows;
 	RArray<TWindowData>* iWindowsArrayPtr;
+	TBool iSwitchedToExternalDisplay;
 	
 	TRect iCropRegion;
 	TBool iClientRequestedExtDisplaySwitching;
 	CExtDisplayConnectionProviderInterface* iExtDisplayConnectionProvider;
 	CMediaClientExtDisplayHandler* iExtDisplayHandler;
+	CMediaClientWsEventObserver* iWsEventObserver;
+	TBool iClientWindowIsInFocus;
     TBool iExtDisplayConnected;
     TBool iExtDisplaySwitchingSupported;
 	
+    CMediaClientPolicyServerClient* iServerClient;
+    
 	friend class CVideoPlayerUtility::CBody;	
 	friend class CTestStepUnitMMFVidClient;
 	};