uiacceltk/hitchcock/ServerCore/Src/alfappui.cpp
changeset 14 83d2d132aa58
parent 13 8f67d927ea57
child 19 f5bac0badc7e
--- a/uiacceltk/hitchcock/ServerCore/Src/alfappui.cpp	Fri Mar 19 09:43:21 2010 +0200
+++ b/uiacceltk/hitchcock/ServerCore/Src/alfappui.cpp	Fri Apr 16 15:56:24 2010 +0300
@@ -36,6 +36,8 @@
 #include <uiacceltk/HuiTextVisual.h>
 #include <uiacceltk/HuiGradientBrush.h>
 #include <apgwgnam.h>
+#include <akntransitionutils.h>
+#include "alfeffectutils.h"
 
 #ifdef ALF_USE_CANVAS
 #include <uiacceltk/HuiCanvasVisual.h>
@@ -466,8 +468,10 @@
                 if(iWindowGc->Construct() == KErrNone)
                     {
                     iWindowGc->Activate(*iWindow);
+                    iWindow->BeginRedraw();
                     iWindowGc->SetBrushColor(0xffffffff);
                     iWindowGc->Clear();
+                    iWindow->EndRedraw();
                     iWindowGc->Deactivate();
                     }                
                 }
@@ -518,7 +522,7 @@
 #endif
             
 			// This is a workaround for possibly missing command buffers at layout switch
-            iWsSession.ClearAllRedrawStores(); 
+            // iWsSession.ClearAllRedrawStores(); 
             
             __ALFLOGSTRING2("ALF EventWin: Size(%d,%d)", iWindow->Size().iWidth, iWindow->Size().iHeight );
             //and fall through
@@ -641,8 +645,6 @@
     CHuiDisplay* iMainDisplay;
     CHuiDisplay* iTVDisplay;
     CAlfEventBridge* iEventAo;
-    RAlfTfxClient iDsServer;
-    TBool iDsActivated;
     };
 
 // ======== MEMBER FUNCTIONS ========
@@ -980,7 +982,7 @@
         {
         if (iData->iMainDisplay) // TBD: multiple display support once again...
             {
-            iData->iMainDisplay->SetClearBackgroundL(CHuiDisplay::EClearNone);
+            TRAP_IGNORE(iData->iMainDisplay->SetClearBackgroundL(CHuiDisplay::EClearNone));
             }
         }
     }
@@ -1406,26 +1408,6 @@
 //
 void CAlfAppUi::NotifyLowMemory(TInt aAmountOfFreeMemRequested)
     {
-    if (!iData->iDsActivated)            
-        {
-        if (iData->iDsServer.Open() == KErrNone)
-            {
-            iData->iDsActivated = ETrue;            
-            }
-        }
-    
-    if (iData->iDsActivated )
-        {
-        if (!aAmountOfFreeMemRequested)
-            {
-            iData->iDsServer.SendSynch(KAlfCompositionGoodOnGraphicsMemory, TIpcArgs());
-            }
-        else
-            {          
-            iData->iDsServer.SendSynch(KAlfCompositionLowOnGraphicsMemory, TIpcArgs());
-            }
-        }
-
 /*
 	// Toggle between normal & low memory levels
     if (!aAmountOfFreeMemRequested)
@@ -1458,8 +1440,55 @@
     return iData->iBridgeObj->ForceSwRendering( aEnabled );
     }
     
+// ---------------------------------------------------------------------------
+// GetSizeAndRotation
+// ---------------------------------------------------------------------------
+//
+TInt CAlfAppUi::GetSizeAndRotation(TSize& aSize, TInt& aRotation)
+    {
+    return iData->iBridgeObj->GetSizeAndRotation(aSize, aRotation);
+    }
+    
+// ---------------------------------------------------------------------------
+// ReadPixels
+// ---------------------------------------------------------------------------
+//
+TInt CAlfAppUi::ReadPixels(CFbsBitmap* aBitmap)
+    {
+    return iData->iBridgeObj->ReadPixels(aBitmap);
+    }
+    
 void CAlfAppUi::SetAlfAppWindowGroup( TInt aID )
     {
     iData->iBridgeObj->SetWindowGroupAsAlfApp( aID );
     }
+
+CAlfAppSrvSessionBase* CAlfAppUi::SrvSessionForControlGroup(CHuiControlGroup& aGroup)
+    {
+    return iData->iServer->SrvSessionForControlGroup(aGroup);
+    }
+
+void CAlfAppUi::DoBlankScreen(const RMessage2& aMessage)
+    {
+    __ALFLOGSTRING("CAlfAppUi::DoBlankScreen >>");
+    TSecureId capServerId(0x10207218);    
+    TSecurityPolicy policy(capServerId);
+    if (!policy.CheckPolicy(aMessage))
+        {
+        User::Leave(KErrPermissionDenied);    
+        }
+    
+//	if (iData->iBridgeObj->LayoutSwitchEffectCoordinator())
+//		{
+//		iData->iBridgeObj->LayoutSwitchEffectCoordinator()->EnableSafeCounter(EFalse); // let capserver rule  
+//		}
+  
+    TBool pause = aMessage.Int0();
+    
+    iData->iBridgeObj->LayoutSwitchEffectCoordinator()->Blank(pause);
+    
+    __ALFLOGSTRING("CAlfAppUi::DoBlankScreen <<");
+    // let the session complete message  
+    }
+
 // end of file