camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp
branchRCL_3
changeset 16 d486e5e3cc9a
parent 11 792dfc98fb3b
child 20 38fb6f7eacd5
--- a/camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp	Mon Mar 15 12:39:00 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp	Wed Mar 31 21:06:44 2010 +0300
@@ -61,6 +61,7 @@
 #endif
 #include "camconfiguration.h"
 #include "CameraUiConfigManager.h"
+#include "camstartuplogo.h"
 
 
 // CONSTANTS
@@ -107,6 +108,8 @@
   delete iZoomTimer;
   delete iVfGridDrawer;
 
+  delete iStartupLogo;
+
   if ( iController.UiConfigManagerPtr() && 
        iController.UiConfigManagerPtr()->IsAutoFocusSupported() )
       {
@@ -294,7 +297,12 @@
   iController.SetViewfinderWindowHandle( &Window() );
   appUi->SetViewFinderInTransit(EFalse);
   iController.StartIdleTimer();
-  
+
+  if (appUi->StartupLogoController())
+    {
+    TRAP_IGNORE(iStartupLogo = CCamStartupLogo::NewL(*appUi->StartupLogoController(), aRect));
+    }
+
   PRINT( _L("Camera <= CCamPreCaptureContainerBase::BaseConstructL ") );
   }
 
@@ -1164,6 +1172,39 @@
           else
             {
             PRINT_FRQ( _L("Camera <> CCamPreCaptureContainerBase: iBitmapGc == NULL"));
+            //in DSA case draw snapshot already here if available
+            const CFbsBitmap* snapshot = iController.SnapshotImage();
+            if (snapshot)
+              {
+              TSize snapshotSize = snapshot->SizeInPixels();
+              TRect bmCropRect( snapshotSize );
+        
+              // Get the required snapshot layout rect
+              TRect vfRect( ViewFinderFrameRect() ); 
+
+              RWindow window = Window();
+              window.Invalidate( Rect() );
+              window.BeginRedraw( Rect() ); 
+              gc.BitBlt( vfRect.iTl, snapshot, bmCropRect );
+              
+              TBool lateOperation = ( ECamCapturing == iController.CurrentOperation() 
+                                     || ECamCompleting == iController.CurrentOperation() );
+
+              if( iProcessingText &&
+                  iController.ActiveCamera() != ECamActiveCameraSecondary && 
+                  lateOperation )
+                {  
+                gc.SetBrushColor( KRgbWhite );
+                gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+                iProcessingTextLayout.DrawText( gc, *iProcessingText, ETrue, KRgbBlack ); 
+                }
+              
+              if( iBatteryPaneController )
+                {
+                iBatteryPaneController->Draw( gc );
+                }
+              window.EndRedraw();
+              }   
             }
           }
         DeactivateGc();