camerauis/cameraapp/generic/src/CamNaviProgressBarModel.cpp
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/cameraapp/generic/src/CamNaviProgressBarModel.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,787 +0,0 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Control for displaying elapse/remaining record time
-*                in Navi Pane
-*
-*  Copyright (c) 2007-2008 Nokia.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-
-*
-*
-*/
-
-
-// INCLUDE FILES
-#include <eiklabel.h>
-#include <eikenv.h>
-#include <eikapp.h>		// For CEikApplication
-#include <AknsUtils.h>
-#include <AknsDrawUtils.h>
-#include <aknconsts.h>
-#include <StringLoader.h> // StringLoader
-#include <e32base.h>
-#include <barsread.h>    // TResourceReader
-#include <AknBidiTextUtils.h>
-#include <cameraapp.mbg>
-#include <AknLayoutFont.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <cameraapp.rsg>
-#include <vgacamsettings.rsg>
-#include <avkon.mbg>
-
-#include "CamNaviProgressBarModel.h"
-#include "CamAppUi.h"
-#include "CamLogger.h"
-#include "CamUtility.h"
-#include "CamDecorator.h"
-#include "CamObserverHandler.h"
-#include "camcameraevents.h"
-#include "camcameracontrollertypes.h"
-#include "camtextitem.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CamNaviProgressBarModelTraces.h"
-#endif
-
-
-// CONSTANTS
-const TInt  KFlashInterval       = 200000;
-const TUint KCameraEventInterest = ECamCameraEventClassVideoTimes;
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::NewL
-// Factory construction function
-// ---------------------------------------------------------
-//
-CCamNaviProgressBarModel* CCamNaviProgressBarModel::NewL( CCamAppController& aController )
-    {
-    CCamNaviProgressBarModel* self = new( ELeave ) CCamNaviProgressBarModel( aController );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::~CCamNaviProgressBarModel
-// Destructor
-// ---------------------------------------------------------
-//
-CCamNaviProgressBarModel::~CCamNaviProgressBarModel()
-  {
-  PRINT( _L("Camera => ~CCamNaviProgressBarModel") );
-
-  delete iElapsedTimeTextItem;
-  delete iRemainingTimeTextItem;
-
-  UnloadResourceData();
-
-  iController.RemoveControllerObserver( this );
-  iController.RemoveCameraObserver( this );
-  
-  delete iTimeFormat;
-  delete iObserverHandler;
-  
-  if ( iFlashingTimer && iFlashingTimer->IsActive() )
-    {
-    iFlashingTimer->Cancel();
-    }
-  delete iFlashingTimer;
-  PRINT( _L("Camera <= ~CCamNaviProgressBarModel") );
-  }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::CCamNaviProgressBarModel
-// C++ constructor
-// ---------------------------------------------------------
-//
-CCamNaviProgressBarModel::CCamNaviProgressBarModel(
-    CCamAppController& aController )
-: iController( aController )
-    {
-    }
-    
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::DrawProgressBar
-// Draw Navi-progress
-// ---------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel::DrawProgressBar(       CBitmapContext& aGc, 
-                                           const CCoeControl*    aControl ) const
-	{
-	DrawProgBar( aGc, aControl );
-	}
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::ConstructL
-// Symbian OS 2nd phase constructor
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::ConstructL()
-    {
-    OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, CCAMNAVIPROGRESSBARMODEL_CONSTRUCTL, "e_CCamNaviProgressBarModel_ConstructL 1" );
-    iController.AddControllerObserverL( this ); 
-    iController.AddCameraObserverL( this, KCameraEventInterest ); 
-
-    LoadResourceDataL();
-
-    iObserverHandler = CCamObserverHandler::NewL();
-
-    iFlashingTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-    OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMNAVIPROGRESSBARMODEL_CONSTRUCTL, "e_CCamNaviProgressBarModel_ConstructL 0" );
-    }
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::LoadResourceDataL()
-// Reads in all information needed from resources
-// -----------------------------------------------------------------------------
-//
-void CCamNaviProgressBarModel::LoadResourceDataL()
-    {
-    OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, CCAMNAVIPROGRESSBARMODEL_LOADRESOURCEDATAL, "e_CCamNaviProgressBarModel_LoadResourceDataL 1" );
-    // Create component bitmaps
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    TFileName resFileName;
-    CamUtility::ResourceFileName( resFileName );
-    TPtrC resname = resFileName;
-
-    AknsUtils::CreateIconL(
-        skin,
-        KAknsIIDQgnGrafMup2BarProgress,
-        iProgressBarBitmap,
-        iProgressBarMask,
-        resname, 
-        EMbmCameraappQgn_graf_mup2_bar_progress,
-        EMbmCameraappQgn_graf_mup2_bar_progress_mask );
-
-    AknsUtils::CreateIconL(
-        skin,
-        KAknsIIDQgnGrafMup2BarFrame,
-        iProgressBarFrame, 
-        resname, 
-        EMbmCameraappQgn_graf_mup2_bar_frame );
-
-    delete iElapsedTimeTextItem;
-    iElapsedTimeTextItem = NULL;
-    CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );  
-    iElapsedTimeTextItem = CCamTextItem::NewL();
-
-    delete iRemainingTimeTextItem;
-    iRemainingTimeTextItem = NULL;
-    iRemainingTimeTextItem = CCamTextItem::NewL();
-
-    iCamOrientation = appUi->CamOrientation();
-
-    if ( CamUtility::IsNhdDevice() )
-        {
-        TouchLayoutL();
-        }
-    else
-        {
-        if ( ECamOrientationPortrait == appUi->CamOrientation() )
-            {
-            NonTouchLayoutSecondaryL();
-            }
-        else
-            {
-            NonTouchLayoutL();
-            }
-        }
-
-    // Read the time format resource
-    // We have to free the memory first if it has been
-    // allocated already
-    if ( iTimeFormat )
-    	{
-    	delete iTimeFormat;
-    	iTimeFormat = NULL;
-    	}
-    if ( ECamOrientationPortrait == appUi->CamOrientation() )
-    	{
-    	iTimeFormat = CEikonEnv::Static()->AllocReadResourceL( R_QTN_TIME_DURAT_MIN_SEC_WITH_ZERO );
-    	}
-    else 
-    	{
-    	iTimeFormat = CEikonEnv::Static()->AllocReadResourceL( R_QTN_TIME_DURAT_LONG );
-    	}
-
-    TBool progressBarVisible = ETrue;
-
-    if ( progressBarVisible )
-        {
-        iDecorator = CCamDecorator::NewL( iController, 
-                ROID(R_CAM_VIDEO_CAP_LIMIT_RECORDING_ICON_ID), this );
-        }
-    else
-        {
-        iDecorator = CCamDecorator::NewL( iController, 
-                ROID(R_CAM_VIDEO_CAP_UNLIMIT_RECORDING_ICON_ID), this );
-        }
-    
-    AknIconUtils::SetSize(
-        iProgressBarBitmap,
-        iProgressBarRect.Rect().Size(),
-        EAspectRatioNotPreserved );
-
-    // Progress bar area background
-    AknIconUtils::SetSize(
-        iProgressBarFrame,
-        iProgressBarRect.Rect().Size(),
-        EAspectRatioNotPreserved);
-
-    // Create component bitmaps
-    TSize size;    
-    if ( CamUtility::IsNhdDevice() )
-        {
-        size =  iProgressIconRect.Rect().Size();
-        }
-    else
-        {
-        size =  iVidStorageIconRect.Rect().Size();
-        }
-    TCamOrientation orientation = appUi->CamOrientation();
-    AknIconUtils::CreateIconL( iPhoneIcon, 
-                               iPhoneIconMask, 
-                               resname, 
-                               EMbmCameraappQgn_indi_cam4_memory_phone, 
-                               EMbmCameraappQgn_indi_cam4_memory_phone_mask );
-    AknIconUtils::SetSize( iPhoneIcon, size );
-
-    AknIconUtils::CreateIconL( iMMCIcon, 
-                               iMMCIconMask, 
-                               resname, 
-                               EMbmCameraappQgn_indi_cam4_memory_mmc, 
-                               EMbmCameraappQgn_indi_cam4_memory_mmc_mask );
-    AknIconUtils::SetSize( iMMCIcon, size );
-
-    AknIconUtils::CreateIconL( iMassStorageIcon, 
-                               iMassStorageIconMask, 
-                               resname, 
-                               EMbmCameraappQgn_indi_cam4_memory_mass,  
-                               EMbmCameraappQgn_indi_cam4_memory_mass_mask );
-
-                               
-    AknIconUtils::SetSize( iMassStorageIcon, size );
-    OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMNAVIPROGRESSBARMODEL_LOADRESOURCEDATAL, "e_CCamNaviProgressBarModel_LoadResourceDataL 0" );
-    }
-    
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::UnloadResourceData()
-// Frees all dynamic resources allocated in LoadResourceDataL
-// -----------------------------------------------------------------------------
-//
-void CCamNaviProgressBarModel::UnloadResourceData()
-    {
-    delete iDecorator;
-    iDecorator = NULL;
-    
-    delete iPhoneIcon;
-    iPhoneIcon = NULL;
-    delete iPhoneIconMask;
-    iPhoneIconMask = NULL;
-    delete iMMCIcon;
-    iMMCIcon = NULL;
-    delete iMMCIconMask;
-    iMMCIconMask = NULL;
-    delete iMassStorageIcon;
-    iMassStorageIcon = NULL;
-    delete iMassStorageIconMask;
-    iMassStorageIconMask = NULL;
-    delete iProgressBarBitmap;
-    iProgressBarBitmap = NULL;
-    delete iProgressBarMask;
-    iProgressBarMask = NULL;
-    delete iProgressBarFrame;
-    iProgressBarFrame = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::ReloadResourceDataL()
-// Refreshes all resource-based information stored in the class
-// -----------------------------------------------------------------------------
-//
-void CCamNaviProgressBarModel::ReloadResourceDataL()
-    {
-    UnloadResourceData();
-    LoadResourceDataL();
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::DrawProgBar
-// Draw the control
-// ---------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel::DrawProgBar(       CBitmapContext& aGc, 
-                                       const CCoeControl*    /*aControl*/ ) const
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    iDecorator->Draw( aGc, iExtent );
-
-    CFbsBitmap* icon = NULL;
-    CFbsBitmap* mask = NULL;
-    if ( iStorageLocation == ECamMediaStoragePhone )
-        {
-        icon = iPhoneIcon;
-        mask = iPhoneIconMask;
-        }
-    else if ( iStorageLocation == ECamMediaStorageMassStorage )
-        {
-        icon = iMassStorageIcon;
-        mask = iMassStorageIconMask;
-        }
-    else
-        {
-        icon = iMMCIcon;
-        mask = iMMCIconMask;
-        }
-
-    DrawElapsedTimeText( aGc );
-    DrawRemainingTimeText( aGc, skin );
-    if ( CamUtility::IsNhdDevice() )
-        {
-        aGc.BitBltMasked( iProgressIconRect.Rect().iTl,
-            icon, icon->SizeInPixels(), mask, ETrue );
-        }
-    else
-        {
-        aGc.BitBltMasked( iVidStorageIconRect.Rect().iTl,
-            icon, icon->SizeInPixels(), mask, ETrue );
-        }
-    
-    DrawProgressBar( aGc );
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::HandleControllerEventL
-// Handle an event from CCamAppController.
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::HandleControllerEventL(
-    TCamControllerEvent aEvent, TInt /* aError */ )
-    {
-    PRINT( _L("Camera => CCamNaviProgressBarModel::HandleControllerEventL"))
-
-    switch( aEvent )
-      {
-      // ---------------------------------------------------
-      /* Get it from CCameraController now.
-      // if this is a record counter update event
-      case ECamEventCounterUpdated:
-        {
-        PRINT( _L("Camera => CCamNaviProgressBarModel::HandleControllerEventL update"))
-        iRecordTimeElapsed   = iController.RecordTimeElapsed();
-        iRecordTimeRemaining = iController.RecordTimeRemaining();
-        FormatTimeL();
-        BroadcastEvent( ECamObserverEventNaviModelUpdated );
-
-        // See if we need to start blinking the elapsed time      
-        TTime time( iRecordTimeElapsed.Int64() );
-        TDateTime recordTime = time.DateTime();
-
-        if ( recordTime.Minute() != 0  && 
-            recordTime.Second() == 0 &&
-            !iFlashingTimer->IsActive() )
-            {
-            iFlashingTimer->Start( KFlashInterval,
-                                   KFlashInterval,
-                                   TCallBack( FlashCallBack, this ) );  
-            }
-        break;
-        }
-      */
-      // ---------------------------------------------------
-      case ECamEventEngineStateChanged:
-        {
-// <CAMERAAPP_CAPI_V2_MIGRATION/>
-//        if ( iController.EngineState() == ECamEngineVideoCapturePrepared )
-        if ( ECamCameraPreparedVideo == iController.CameraState() )
-          {
-          iRecordTimeRemaining = iController.RecordTimeRemaining();
-          FormatTimeL();
-          BroadcastEvent( ECamObserverEventNaviModelUpdated );
-          }
-        else
-          {
-          // empty statement to remove Lint error
-          }
-        break;
-        }
-      // ---------------------------------------------------
-      case ECamEventOperationStateChanged:
-        {
-        if ( ECamControllerVideo == iController.CurrentMode()
-          && ECamCapturing       == iController.CurrentOperation() )
-          {
-          // get the current media storage
-          iStorageLocation = static_cast< TCamMediaStorage > 
-              ( iController.IntegerSettingValue( ECamSettingItemVideoMediaStorage ) );
-          }
-        else
-          {
-          // empty statement to remove Lint error
-          }
-        break;
-        }
-      // ---------------------------------------------------
-      case ECamEventRecordComplete:
-        {
-        // reset elapsed recording time
-        iController.RecordTimeElapsed( iRecordTimeElapsed );
-        iRecordTimeElapsed = static_cast<TInt64>(0);
-        iFlashingTimer->Cancel();
-        iFlash = EFalse;
-        break;
-        }
-      // ---------------------------------------------------
-      default:
-        {
-    		break;
-        }
-      // ---------------------------------------------------
-      }
-    PRINT( _L("Camera <= CCamNaviProgressBarModel::HandleControllerEventL"))
-    }
-
-// -----------------------------------------------------------------------------
-// HandleCameraEventL
-//
-// -----------------------------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel
-::HandleCameraEventL( TInt              /*aStatus*/, 
-                      TCamCameraEventId aEventId, 
-                      TAny*             aEventData /*= NULL*/ )
-  {
-  PRINT( _L("Camera => CCamNaviProgressBarModel::HandleCameraEventL") );
-  switch( aEventId )
-    {
-    // ---------------------------------------------------
-    case ECamCameraEventVideoTimes:
-      {
-      TCamVideoRecordingTimes* times = 
-        static_cast<TCamVideoRecordingTimes*>( aEventData );
-      if( times )
-        {
-        iRecordTimeElapsed   = times->iTimeElapsed;
-        iRecordTimeRemaining = times->iTimeRemaining;
-        
-        // If the time we have is greater than the maximum allowed, return the
-        // maximum
-        TTimeIntervalMicroSeconds maxRecordingLength( static_cast<TInt64>(KMaxRecordingLength) );        
-        
-        if( iRecordTimeRemaining > maxRecordingLength )
-          {
-          iRecordTimeRemaining = maxRecordingLength;  
-          }
-        
-        FormatTimeL();
-        BroadcastEvent( ECamObserverEventNaviModelUpdated );
-  
-        // See if we need to start blinking the elapsed time      
-        TTime time( iRecordTimeElapsed.Int64() );
-        TDateTime recordTime = time.DateTime();
-  
-        if (  recordTime.Minute() != 0  
-          &&  recordTime.Second() == 0 
-          &&  !iFlashingTimer->IsActive() )
-          {
-          iFlashingTimer->Start( KFlashInterval,
-                                 KFlashInterval,
-                                 TCallBack( FlashCallBack, this ) );  
-          }
-        }
-      break;
-      }
-    // ---------------------------------------------------
-    default:
-      break;
-    // ---------------------------------------------------
-    }
-  PRINT( _L("Camera <= CCamNaviProgressBarModel::HandleCameraEventL") );
-  }
-
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::FormatTimeL 
-// Formats the elapsed/remaining record time 
-// -----------------------------------------------------------------------------
-//
-void CCamNaviProgressBarModel::FormatTimeL()
-    {
-    TTime time( iRecordTimeElapsed.Int64() );
-    time.FormatL( iElapsedTimeText, *iTimeFormat );
-
-    time = iRecordTimeRemaining.Int64();
-    time.FormatL( iRemainingTimeText, *iTimeFormat );
-    
-    if ( iElapsedTimeTextItem )
-        {
-        iElapsedTimeTextItem->SetTextL( iElapsedTimeText );
-        }
-
-    if ( iRemainingTimeTextItem )
-        {
-        iRemainingTimeTextItem->SetTextL( iRemainingTimeText );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::DrawElapsedTimeText
-// Draws the elapsed record time to the navi pane 
-// -----------------------------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel::DrawElapsedTimeText( CBitmapContext& aGc ) const
-    {
-    if ( !iFlash && iElapsedTimeTextItem )
-        {
-        iElapsedTimeTextItem->Draw( aGc );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::DrawRemainingTimeText
-// Draws the remaining record time to the navi pane 
-// -----------------------------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel::DrawRemainingTimeText( CBitmapContext&    aGc, 
-                                                 MAknsSkinInstance* /*aSkin*/ ) const
-    {
-    if ( iRemainingTimeTextItem )
-        {
-        iRemainingTimeTextItem->Draw( aGc );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CCamNaviProgressBarModel::DrawProgressBar
-// Draws the progress bar to the navi pane 
-// -----------------------------------------------------------------------------
-//
-void 
-CCamNaviProgressBarModel::DrawProgressBar( CBitmapContext& aGc ) const
-    {
-    PRINT( _L("Camera => CCamNaviProgressBarModel::DrawProgressBar"))
-
-    // Draw frame
-    TRect rect = iProgressBarRect.Rect();
-
-    aGc.BitBlt( rect.iTl, iProgressBarFrame );
-    
-    // Draw the progress bar
-
-    // Define the area of bitmap that is to be drawn 
-    TRect srcRect( 0, 0, 0, iProgressBarBitmap->SizeInPixels().iHeight );
-    TInt newWidth = rect.Width();
-
-    // If remaining record time is zero, do not try to perform the percentage
-    // calculation, the progress bar will be full
-    if ( iRecordTimeRemaining.Int64() > 0 )
-        {
-        newWidth = static_cast<TInt>(( iRecordTimeElapsed.Int64() * rect.Width() ) 
-                      / ( iRecordTimeElapsed.Int64() + iRecordTimeRemaining.Int64() ));
-        }
-    else
-        {
-        // empty statement to remove Lint error.
-        }
-
-    srcRect.SetWidth( newWidth );
-
-    aGc.BitBltMasked( rect.iTl, iProgressBarBitmap, srcRect, iProgressBarMask, ETrue );
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::SetExtentL
-// Sets the extent
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::SetExtentL( const TRect& aExtent )
-  {
-  iExtent = aExtent;
-  }
-    
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::RegisterObserverL
-// Registers an observer
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::RegisterObserverL(MCamObserver* aObserver)
-    {
-    iObserverHandler->RegisterObserverL(aObserver);
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::DeregisterObserver
-// Deregisters an observer
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::DeregisterObserver(MCamObserver* aObserver)
-    {
-    iObserverHandler->DeregisterObserver(aObserver);
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::BroadcastEvent
-// Broadcasts an event to all observers
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::BroadcastEvent(TCamObserverEvent aEvent)
-    {
-    iObserverHandler->BroadcastEvent(aEvent);
-    }
-    
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::HandleObservedEvent
-// Handles observed events
-// ---------------------------------------------------------
-//
-void CCamNaviProgressBarModel::HandleObservedEvent(TCamObserverEvent aEvent)
-    {
-    if( aEvent == ECamObserverEventRecordingIconUpdated )
-        {
-        BroadcastEvent(ECamObserverEventNaviModelUpdated);
-        }
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::DoCancel
-// Called when the flashing timer elapses
-// ---------------------------------------------------------
-//
-TInt CCamNaviProgressBarModel::FlashCallBack( TAny* aAny )
-    {
-    CCamNaviProgressBarModel* self = static_cast<CCamNaviProgressBarModel*>( aAny );
-    TTime time( self->iRecordTimeElapsed.Int64() );
-    TDateTime recordTime = time.DateTime();
-    if ( recordTime.Second() != 0 )
-        {
-        self->iFlashingTimer->Cancel();
-        self->iFlash = EFalse;
-        }
-    else
-        {
-        self->iFlash = !self->iFlash;
-        self->BroadcastEvent( ECamObserverEventNaviModelUpdated );
-        }
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::TouchLayoutL
-// ---------------------------------------------------------
-void CCamNaviProgressBarModel::TouchLayoutL()
-    {
-    TInt variant = 0; // portrait
-    TInt iconVariant = 1;
-    if ( Layout_Meta_Data::IsLandscapeOrientation() )
-        {
-        variant = 1; // landscape
-        iconVariant = 0;
-        }
-
-    TAknLayoutRect progressPaneLayout;
-    progressPaneLayout.LayoutRect( iExtent,
-            AknLayoutScalable_Apps::vid4_progress_pane( variant ) );
-    
-    TRect progressPaneRect = progressPaneLayout.Rect();
-    iElapsedTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid4_progress_pane_t1( iconVariant ) );
-    iRemainingTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid4_progress_pane_t2( iconVariant ) );
-    iProgressIconRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::vid4_progress_pane_g4( iconVariant ) );
-
-    // Progress bar
-    iProgressBarRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::wait_bar_pane_cp07( iconVariant ) );
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::NonTouchLayoutL
-// Read nontouch layout for primary camera
-// ---------------------------------------------------------
-void CCamNaviProgressBarModel::NonTouchLayoutL()  
-    {
-    TInt variant = 0; // Magic: layout Opt1
-    
-    TInt cba =  1; // Magic: layout Opt1 
-        
-    TAknLayoutRect progressPaneLayout;
-    
-    progressPaneLayout.LayoutRect( iExtent,
-        AknLayoutScalable_Apps::vid6_indi_pane( variant ) );  
-    TRect progressPaneRect = progressPaneLayout.Rect();
-
-    iVidStorageIconRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::vid6_indi_pane_g3( cba ) );
-    iElapsedTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid6_indi_pane_t2( cba ) );
-    iRemainingTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid6_indi_pane_t3( cba ) );
-    iProgressIconRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::wait_bar_pane_cp08( 0 ) ); 
-
-    // Progress bar
-    iProgressBarRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::wait_bar_pane_cp08( 0 ) );       
-    }
-
-// ---------------------------------------------------------
-// CCamNaviProgressBarModel::NonTouchLayoutSecondaryL
-// Read nontouch layout for secondary camera
-// ---------------------------------------------------------
-void CCamNaviProgressBarModel::NonTouchLayoutSecondaryL()
-    {
-    TRect screenRect;
-    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, screenRect );
-    iExtent = screenRect;
-    // Magic numbers used for layout variation
-    TAknLayoutRect progressPaneLayout;
-    progressPaneLayout.LayoutRect( iExtent,
-             AknLayoutScalable_Apps::vid6_indi_pane( 3 ) );  
-
-    iVidStorageIconRect.LayoutRect( progressPaneLayout.Rect(),
-            AknLayoutScalable_Apps::vid6_indi_pane_g3( 3 ) );
-    
-    TRect progressPaneRect = progressPaneLayout.Rect();
-    iElapsedTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid6_indi_pane_t2( 2 ) );
-    iRemainingTimeTextItem->SetLayoutL( progressPaneRect,
-        AknLayoutScalable_Apps::vid6_indi_pane_t3( 2 ) );
-    iProgressIconRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::wait_bar_pane_cp08( 1 ) );
-
-    // Progress bar
-    iProgressBarRect.LayoutRect( progressPaneRect,
-        AknLayoutScalable_Apps::wait_bar_pane_cp08( 1 ) );
-    }
-
-// End of File