--- a/camerauis/cameraapp/generic/src/CamContainerBase.cpp Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,944 +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: Base class for all camera application containers*
-*/
-
-
-
-// INCLUDE FILES
-#include <eikmenub.h>
-#include <aknview.h>
-#include <avkon.hrh>
-#include <AknsFrameBackgroundControlContext.h>
-#include <AknsDrawUtils.h>
-#include <AknUtils.h>
-// System includes for changing the orientation.
-#include <eikenv.h>
-#include <eikappui.h>
-
-#include <activepalette2ui.h>
-#include <cameraapp.rsg>
-#include <vgacamsettings.rsg>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <StringLoader.h>
-
-#include "CamContainerBase.h"
-#include "CamAppController.h"
-#include "CamLogger.h"
-#include "CamUtility.h"
-#include "CamAppUi.h"
-#include "CamNaviCounterControl.h"
-#include "CamNaviProgressBarControl.h"
-#include "CamZoomPane.h"
-#include "camactivepalettehandler.h"
-#include "CameraUiConfigManager.h"
-#include "CamViewBase.h"
-#include "cambackupcontainer.h"
-
- static const TInt KCamBurstCounterLength = 2;
- _LIT(KCamBurstCounterFormat, "%02d");
-
-// ================= STATIC MEMBER VARIABLES ================
-
-MActivePalette2UI* CCamContainerBase::iActivePalette = NULL;
-
-// ================= MEMBER FUNCTIONS =======================
-
-// Destructor
-CCamContainerBase::~CCamContainerBase()
- {
- PRINT( _L("Camera => ~CCamContainerBase") );
- delete iBgContext;
-
-
- iPrimaryZoomInKeys.Close();
- iPrimaryZoomOutKeys.Close();
- iSecondaryZoomInKeys.Close();
- iSecondaryZoomOutKeys.Close();
-
- iPrimaryCameraCaptureKeys.Close();
- iSecondaryCameraCaptureKeys.Close();
-
- iPrimaryCameraAFKeys.Close();
-
- delete iProcessingText;
- delete iBurstProcessingText;
- if(iBackupContainer)
- {
- delete iBackupContainer;
- iBackupContainer = NULL;
- }
-
- PRINT( _L("Camera <= ~CCamContainerBase") );
- }
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::CCamContainerBase
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CCamContainerBase::CCamContainerBase( CCamAppController& aController,
- CAknView& aView )
- : iView( aView ),
- iController( aController )
- {
- }
-
-// ---------------------------------------------------------
-// CCamContainerBase::BaseConstructL
-// Symbian OS 2nd phase constructor
-// ---------------------------------------------------------
-//
-void CCamContainerBase::BaseConstructL( const TRect& aRect )
- {
- CreateWindowL();
- Window().SetBackgroundColor( KRgbBlack );
- SetRect( aRect );
- EnableDragEvents();
-
- CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( iEikonEnv->EikAppUi() );
- iCamOrientation = appUi->CamOrientation();
-
- // set up the skin background context
- CreateBackgroundContextL();
-
- iBackupContainer = CCamBackupContainer::NewL(iController,iView,*this);
-
- // zoom keys
- iPrimaryZoomInKeys.Reset();
- iPrimaryZoomOutKeys.Reset();
- iSecondaryZoomInKeys.Reset();
- iSecondaryZoomOutKeys.Reset();
-
- // capture keys
- iPrimaryCameraCaptureKeys.Reset();
- iSecondaryCameraCaptureKeys.Reset();
-
- // AF keys
- iPrimaryCameraAFKeys.Reset();
-
- if ( iController.UiConfigManagerPtr() )
- {
- // Reading the zoom keys for primary and secondary camera
- iController.UiConfigManagerPtr()->
- SupportedPrimaryCameraZoomInKeysL( iPrimaryZoomInKeys );
- iController.UiConfigManagerPtr()->
- SupportedPrimaryCameraZoomOutKeysL( iPrimaryZoomOutKeys );
-
- // secondary camera zoom-in/out keys
- iController.UiConfigManagerPtr()->
- SupportedSecondaryCameraZoomInKeysL( iSecondaryZoomInKeys );
- iController.UiConfigManagerPtr()->
- SupportedSecondaryCameraZoomOutKeysL( iSecondaryZoomOutKeys );
-
- // Reading the capture keys for primary and secondary camera
- iController.UiConfigManagerPtr()->
- SupportedPrimaryCameraCaptureKeyL( iPrimaryCameraCaptureKeys );
-
- iController.UiConfigManagerPtr()->
- SupportedSecondaryCameraCaptureKeyL( iSecondaryCameraCaptureKeys );
-
- // Reading AF or half capture key press Keys
- iController.UiConfigManagerPtr()->SupportedPrimaryCameraAutoFocusKeyL(
- iPrimaryCameraAFKeys );
- }
- if ( iPrimaryZoomInKeys.Count() <= 0 || iPrimaryZoomOutKeys.Count() <= 0 ||
- iSecondaryZoomInKeys.Count() <= 0 || iSecondaryZoomOutKeys.Count() <= 0 ||
- iPrimaryCameraCaptureKeys.Count() <= 0 || iSecondaryCameraCaptureKeys.Count() <= 0 ||
- iPrimaryCameraAFKeys.Count() <= 0
- )
- {
- // Leave here, if there are no configured items so that we dont panic
- //in any container classes derived from this base class
- User::Leave( KErrNotSupported );
- }
- }
-
-
-// ---------------------------------------------------------
-// CCamContainerBase::IsCaptureKeyL
-// Whether or not this key is considered to be a capture key
-// in the current context
-// ---------------------------------------------------------
-//
-TBool CCamContainerBase::IsCaptureKeyL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- PRINT1( _L( "Camera => CCamContainerBase::IsCaptureKey event type (%d)" ), aType );
-
- // Find out if this key is a capture key
- TBool isCaptureKey( EFalse) ;
-
- // Repeat events are not classed as capture keys
- if ( aKeyEvent.iRepeats != 0 )
- {
- PRINT( _L( "IsCaptureKey returning false (repeat)" ) );
- return isCaptureKey;
- }
-
- CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
- if ( appUi && appUi->AppInBackground( ETrue ) )
- {
- PRINT( _L("IsCaptureKey returning false (AppInBackground() = true") );
- return isCaptureKey;
- }
-
- if ( ECamActiveCameraPrimary == iController.ActiveCamera() )
- {
- isCaptureKey = IsPrimaryCameraCaptureKey( aKeyEvent );
- }
- else // secondary camera
- {
- isCaptureKey = IsSecondaryCameraCaptureKey( aKeyEvent );
- }
-
- // Each product defines which key/s are treated as capture keys.
- // Different keys can be mapped for each active camera.
- // Look for capture event or key up event (note that capture
- // event is on the EEventKey for navi-key select press)
- if ( isCaptureKey )
- {
- if ( aType == EEventKeyDown || aType == EEventKey || aType == EEventKeyUp || aType == EEventKeyUp )
- {
- if ( isCaptureKey &&
- ( iController.UiConfigManagerPtr()->IsKeyLockWatcherSupported() && iController.IsKeyLockOn() ) )
- {
- isCaptureKey = !iController.IsKeyLockOn();
- }
- }
- else
- {
- // key types doesnt match so dont consider as capture key press.
- isCaptureKey = EFalse;
- }
- }
- PRINT1( _L( "IsCaptureKey returning %d" ), isCaptureKey );
- return isCaptureKey;
- }
-
-// ---------------------------------------------------------
-// CCamContainerBase::IsShutterKeyL
-// Whether or not this key is considered to be a shutter key
-// in the current context
-// ---------------------------------------------------------
-//
-TBool CCamContainerBase::IsShutterKeyL( const TKeyEvent& aKeyEvent, TEventCode /* aType */ )
- {
- PRINT1( _L( "Camera => CCamContainerBase::IsShutterKeyL scancode (%d)" ), aKeyEvent.iScanCode );
-
- if ( iController.UiConfigManagerPtr()
- && iController.UiConfigManagerPtr()->IsAutoFocusSupported() )
- {
-#ifndef __WINS__
- if ( aKeyEvent.iScanCode == iPrimaryCameraAFKeys[0] )
-#else
- if ( aKeyEvent.iScanCode == EProductKeyCaptureHalf )
-#endif
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-
-//
-// CCamZoomPane::CheckForZoomKey
-//
-TBool CCamContainerBase::CheckForZoomKey( const TKeyEvent& aKeyEvent )
- {
- return CheckInZoomKeyArray( aKeyEvent );
- }
-
-
-//
-//
-//
-TBool CCamContainerBase::CheckInZoomKeyArray( const TKeyEvent& aKeyEvent )
- {
- TCamActiveCamera camera = iController.ActiveCamera();
- TBool zoomKeyFound ( EFalse );
-
- if ( camera == ECamActiveCameraPrimary )
- {
- zoomKeyFound = ( KErrNotFound !=
- iPrimaryZoomInKeys.Find( aKeyEvent.iScanCode ) );
- if ( !zoomKeyFound )
- {
- // Its not zoom-in key, check if its zoom out key
- zoomKeyFound = ( KErrNotFound !=
- iPrimaryZoomOutKeys.Find( aKeyEvent.iScanCode ) );
- }
- }
- else if ( camera == ECamActiveCameraSecondary )
- {
- zoomKeyFound = ( KErrNotFound !=
- iSecondaryZoomInKeys.Find( aKeyEvent.iScanCode ) );
- if ( !zoomKeyFound )
- {
- // Its not zoom-in key, check if its zoom out key
- zoomKeyFound = ( KErrNotFound !=
- iSecondaryZoomOutKeys.Find( aKeyEvent.iScanCode ) );
- }
- }
- else
- {
- // when we reach here, it means we have no zoom keys set, we return back.
- }
- return zoomKeyFound;
- }
-
-
-// ---------------------------------------------------------
-// CCamContainerBase::IsZoomKeyL
-// Whether or not this key is considered to be a shutter key
-// in the current context
-// ---------------------------------------------------------
-//
-TBool CCamContainerBase::IsZoomKeyL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- PRINT1( _L( "Camera => CCamContainerBase::IsZoomKeyL event type (%d)" ), aType );
-
- CCamZoomPane* zoom = static_cast<CCamAppUiBase*>( iEikonEnv->EikAppUi() )->ZoomPane();
-
- //
- if( !ZoomAvailable() )
- {
- return EFalse;
- }
-
- PRINT( _L( "Camera => CCamContainerBase::IsZoomKeyL " ) );
-
- // It's a possible zoom key if it's an up OR down event, OR
- // if it's a key event AND we're currently zooming
- if ( aType == EEventKeyUp || aType == EEventKeyDown || aType == EEventUser ||
- ( aType == EEventKey &&
- zoom &&
- zoom->IsCurrentlyZooming() ) )
- {
- PRINT( _L( "Camera => CCamContainerBase::IsZoomKeyL A" ) )
- return CheckForZoomKey( aKeyEvent );
- }
-
- PRINT( _L( "Camera => CCamContainerBase::IsZoomKeyL no" ) )
- return EFalse;
- }
-
-
-//
-// CCamContainerBase::ZoomAvailable()
-//
-TBool CCamContainerBase::ZoomAvailable()
- {
- PRINT( _L("Camera => CCamContainerBase::ZoomAvailable"))
-
- // Ignore any zoom keys that come when either capturing a burst or still
- if ( iController.SequenceCaptureInProgress()
- || ( ECamControllerImage == iController.CurrentMode()
- && ECamCapturing == iController.CurrentOperation() )
- || ECamCompleting == iController.CurrentOperation() )
- {
- PRINT( _L("Camera => CCamContainerBase::ZoomAvailable A false"))
- return EFalse;
- }
- PRINT( _L("Camera => CCamContainerBase::ZoomAvailable yes"))
- return ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// Window
-// ---------------------------------------------------------------------------
-//
-RWindow&
-CCamContainerBase::Window() const
- {
- return CCoeControl::Window();
- }
-
-
-// ----------------------------------------------------
-// CCamContainerBase::OfferKeyEventL
-// Handles this application view's command keys. Forwards other
-// keys to child control(s).
-// ----------------------------------------------------
-//
-TKeyResponse
-CCamContainerBase::OfferKeyEventL( const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- PRINT1( _L("Camera => CCamContainerBase::OfferKeyEventL scan code (%d)"), aKeyEvent.iScanCode )
- // if the cancel softkey is pressed
- if ( aKeyEvent.iScanCode == EStdKeyDevice1 )
- {
- iView.HandleCommandL( EAknSoftkeyCancel );
- }
- // or if the select (OK) key is pressed
- //
- // (Note: intentionally ignoring repeat key presses here - this is a
- // work-around as the framework is passing navi-key select repeats
- // which we have to ignore)
- else if ( aType == EEventKey &&
- aKeyEvent.iCode == EKeyOK &&
- aKeyEvent.iRepeats == 0 )
- {
- iView.HandleCommandL( EAknSoftkeySelect );
- return EKeyWasConsumed; // indicate key press was processed
- }
- // stop video or sequence if get applications key press (short or long)
- // in touch also send key stops
- else if( aKeyEvent.iCode == EKeyApplication ||
- ( iController.IsTouchScreenSupported() &&
- aKeyEvent.iScanCode == EStdKeyYes ) )
- {
- if ( ECamControllerVideo == iController.CurrentMode() )
- {
- TCamCaptureOperation operation = iController.CurrentOperation();
- if( ECamCapturing == operation
- || ECamPaused == operation )
- {
- // Stop video
- iController.StopVideoRecording();
- }
- }
- else if ( iController.SequenceCaptureInProgress() )
- {
- // Stop sequence capture
- iController.StopSequenceCaptureL();
- }
- else
- {
- // empty statement to remove Lint error, MISRA required rule 60
- }
- }
- else
- {
- // empty statement to remove Lint error, MISRA required rule 60
- }
-
- return EKeyWasNotConsumed; // indicate key press was not processed
- }
-
-// ----------------------------------------------------
-// CCamContainerBase::HandleForegroundEventL
-// Called to notify of change of app fore/background state
-// ----------------------------------------------------
-//
-void CCamContainerBase::HandleForegroundEventL( TBool /*aForeground*/ )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::MopSupplyObject
-// Gets an object whose type is encapsulated by the specified TTypeUid object
-// Supplies the skin context to child controls using the MObjectProvider chain
-// ---------------------------------------------------------------------------
-//
-TTypeUid::Ptr CCamContainerBase::MopSupplyObject( TTypeUid aId )
- {
- if ( aId.iUid == MAknsControlContext::ETypeId )
- {
- return MAknsControlContext::SupplyMopObject( aId, iBgContext );
- }
- return CCoeControl::MopSupplyObject( aId );
- }
-
-// ----------------------------------------------------
-// CCamContainerBase::HandleResourceChange
-// Change Client Rect and redraw when resolution changes
-// ----------------------------------------------------
-//
-void CCamContainerBase::HandleResourceChange( TInt aType )
- {
- PRINT( _L("Camera => CCamContainerBase::HandleResourceChange" ))
-
- CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->EikAppUi() );
- if ( KEikDynamicLayoutVariantSwitch == aType )
- {
- TCamOrientation orientation = appUi->CamOrientation();
-
- if( iCamOrientation != orientation )
- {
- iCamOrientation = orientation;
- if( orientation == ECamOrientationCamcorder || orientation == ECamOrientationCamcorderLeft )
- {
- PRINT( _L("Camera => CCamContainerBase::HandleResourceChange camcorder" ))
- SetRect( appUi->ApplicationRect() );
- }
- else
- {
- PRINT( _L("Camera => CCamContainerBase::HandleResourceChange not camcorder" ))
- SetRect( appUi->ClientRect() );
- }
- }
- }
-
- CCoeControl::HandleResourceChange( aType );
- if ( iController.IsTouchScreenSupported() )
- {
- // Update toolbar because HandleResourceChange might reload the default version
- // Only update toolbaricons if in precaptureview.
- if( appUi->CurrentViewState() != ECamViewStatePostCapture )
- {
- TRAP_IGNORE( static_cast<CCamViewBase&>( iView ).UpdateToolbarIconsL() );
- }
- }
- }
-
-
-// virtual
-void
-CCamContainerBase::HandleAppEvent( const TCamAppEvent& /*aEvent*/ )
- {
- // No action
- }
-
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::SetPreviousViewId
-// Sets the ID of the previous view
-// ---------------------------------------------------------------------------
-//
-void CCamContainerBase::SetPreviousViewId( TCamAppViewIds aId )
- {
- iPrevViewId = aId;
- }
-
-
-// ---------------------------------------------------------
-// CCamContainerBase::SetupNaviPanesL
-// Set up navi-pane and progress bar if required
-// ---------------------------------------------------------
-//
-void CCamContainerBase::SetupNaviPanesL( TCamActiveNaviPane aNaviPane )
- {
- PRINT( _L("Camera => CCamContainerBase::SetupNaviPanesL" ))
- TRect rect( Rect() );
-
- if( aNaviPane == ECamPaneCounter )
- {
- iNaviCounterControl =
- static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() )->NaviCounterControl();
- iNaviCounterControl->SetMopParent( this );
- iNaviCounterControl->SetContainerWindowL( *this );
- iNaviCounterControl->SetRect( Rect() );
- iNaviCounterControl->MakeVisible( ETrue );
- if ( iNaviProgressBarControl )
- {
- iNaviProgressBarControl->MakeVisible( EFalse );
- }
-
- iPaneInUse = ECamPaneCounter;
- }
- else if( aNaviPane == ECamPaneProgress )
- {
- PRINT( _L("Camera => CCamContainerBase::SetupNaviPanesL progress" ))
- iNaviProgressBarControl =
- static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() )->NaviProgressBarControl();
- iNaviProgressBarControl->SetMopParent( this );
- iNaviProgressBarControl->SetContainerWindowL( *this );
- iNaviProgressBarControl->SetRect( Rect() );
- iNaviProgressBarControl->MakeVisible( ETrue );
- if ( iNaviCounterControl )
- {
- iNaviCounterControl->MakeVisible( EFalse );
- }
-
- iPaneInUse = ECamPaneProgress;
- }
- else
- {
- iPaneInUse = ECamPaneUndefined;
- }
- PRINT( _L("Camera <= CCamContainerBase::SetupNaviPanesL" ))
- }
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::ShowZoomPaneWithTimer
-// Makes Zoom Pane visible for the period of the pane timer.
-// ---------------------------------------------------------------------------
-//
-void CCamContainerBase::ShowZoomPaneWithTimer()
- {
- // No implementation: only meaningful in pre-capture modes
- PRINT(_L("Camera => CCamContainerBase::ShowZoomPaneWithTimer() - No implementation!"));
- }
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::CreateActivePaletteL
-// Creates the Active Palette control
-// ---------------------------------------------------------------------------
-//
-void CCamContainerBase::CreateActivePaletteL()
- {
- CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
- appUi->APHandler()->CreateActivePaletteL( *this, this );
- iActivePalette = appUi->ActivePalette();
- }
-
-// ---------------------------------------------------------------------------
-// CCamContainerBase::DestroyActivePaletteL
-// Destroys the Active Palette control
-// ---------------------------------------------------------------------------
-//
-void CCamContainerBase::DestroyActivePalette()
- {
- CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
- appUi->APHandler()->DestroyActivePalette();
- iActivePalette = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::Redraw
-// -----------------------------------------------------------------------------
-void CCamContainerBase::Redraw(const TRect& /*aArea*/)
- {
- // Do nothing by default; may be overridden
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::PrepareProcessingTextL
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::PrepareProcessingTextL( TBool aStillMode )
- {
- TAknLayoutRect vidProgressPane;
-
- TInt cba = AknLayoutUtils::CbaLocation() ==
- AknLayoutUtils::EAknCbaLocationLeft?
- AknLayoutUtils::EAknCbaLocationLeft : 0;
-
- if ( CamUtility::IsNhdDevice() )
- {
- vidProgressPane.LayoutRect( Rect(),
- AknLayoutScalable_Apps::vid4_progress_pane(
- Layout_Meta_Data::IsLandscapeOrientation() ) );
-
- iProcessingTextLayout.LayoutText( vidProgressPane.Rect(),
- AknLayoutScalable_Apps::vid4_progress_pane_t3());
- }
- else
- {
- vidProgressPane.LayoutRect( Rect(),
- AknLayoutScalable_Apps::vid6_indi_pane( cba ) );
-
- iProcessingTextLayout.LayoutText( vidProgressPane.Rect(),
- AknLayoutScalable_Apps::vid6_indi_pane_t4( 2 ));
- }
-
- // Delete old text
- if( iProcessingText )
- {
- delete iProcessingText;
- iProcessingText = NULL;
- }
- if( aStillMode )
- {
- iProcessingText = StringLoader::LoadL( R_QTN_PROCESSING_IMAGE_TEXT );
- }
-/*
- else
- {
- iProcessingText = StringLoader::LoadL( R_QTN_PROCESSING_VIDEO_TEXT );
- }
-*/
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::DismissProcessingTextL
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::DismissProcessingText()
- {
- delete iProcessingText;
- iProcessingText = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::PrepareBurstProcessingTextL
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::PrepareBurstProcessingTextL()
- {
- PRINT( _L("Camera => CCamContainerBase::PrepareBurstProcessingTextL" ))
- TAknLayoutRect vidProgressPane;
-
- TInt cba = AknLayoutUtils::CbaLocation() ==
- AknLayoutUtils::EAknCbaLocationLeft?
- AknLayoutUtils::EAknCbaLocationLeft : 0;
-
-
- if ( CamUtility::IsNhdDevice() )
- {
- vidProgressPane.LayoutRect(
- Rect(),
- AknLayoutScalable_Apps::vid4_progress_pane(
- Layout_Meta_Data::IsLandscapeOrientation() ) );
-
- iBurstProcessingTextLayout.LayoutText(
- vidProgressPane.Rect(),
- AknLayoutScalable_Apps::vid4_progress_pane_t3() );
- }
- else
- {
-
- vidProgressPane.LayoutRect(
- Rect(),
- AknLayoutScalable_Apps::vid6_indi_pane( cba ) );
-
- iBurstProcessingTextLayout.LayoutText(
- vidProgressPane.Rect(),
- AknLayoutScalable_Apps::vid6_indi_pane_t4( 2 ) );
-
- }
-
- // Delete old text
- if( iBurstProcessingText )
- {
- delete iBurstProcessingText;
- iBurstProcessingText = NULL;
- }
- iBurstProcessingText = StringLoader::LoadL(
- R_QTN_PROCESSING_IMAGE_TEXT );
- PRINT( _L("Camera <= CCamContainerBase::PrepareBurstProcessingTextL" ))
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::UpdateBurstProcessingTextL
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::UpdateBurstProcessingTextL( TInt aHandled, TInt aTotal )
- {
- PRINT( _L("Camera => CCamContainerBase::UpdateBurstProcessingTextL" ))
-
- // Delete old text
- if( iBurstProcessingText )
- {
- delete iBurstProcessingText;
- iBurstProcessingText = NULL;
- }
- CDesCArrayFlat* values
- = new (ELeave) CDesCArrayFlat( 2 );
-
- CleanupStack::PushL( values );
-
- TBuf<KCamBurstCounterLength> handled;
- TBuf<KCamBurstCounterLength> total;
- handled.Format( KCamBurstCounterFormat, aHandled );
- total.Format( KCamBurstCounterFormat, aTotal );
-
- values->AppendL( handled );
- values->AppendL( total );
-
-#ifndef __WINS__
- iBurstProcessingText = StringLoader::LoadL(
- R_QTN_PROCESSING_BURST_IMAGE_TEXT, *values );
-#endif
-
- CleanupStack::PopAndDestroy( values );
- PRINT( _L("Camera <= CCamContainerBase::UpdateBurstProcessingTextL" ))
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::DismissBurstProcessingText
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::DismissBurstProcessingText()
- {
- delete iBurstProcessingText;
- iBurstProcessingText = NULL;
- }
-
-// ----------------------------------------------------
-// CCamContainerBase::CheckForFileName
-//
-// ----------------------------------------------------
-//
-void CCamContainerBase::CheckForFileName( TBool aDoCheck )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::CreateBackgroundContextL
-// -----------------------------------------------------------------------------
-//
-void CCamContainerBase::CreateBackgroundContextL()
- {
- if( iCamOrientation == ECamOrientationCamcorder ||
- iCamOrientation == ECamOrientationCamcorderLeft )
- {
- iBgContext = CAknsBasicBackgroundControlContext::NewL(
- KAknsIIDQsnBgScreen, Rect(), EFalse );
- }
- else
- {
- iBgContext = CAknsBasicBackgroundControlContext::NewL(
- KAknsIIDQsnBgAreaMain, Rect(), EFalse );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::ViewFinderFrameRect
-// -----------------------------------------------------------------------------
-//
-TRect
-CCamContainerBase::ViewFinderFrameRect(TCamCameraMode aTargetMode) const
- {
- PRINT( _L("Camera => CCamContainerBase::ViewFinderFrameRect") );
- const TCamAppViewIds viewId = static_cast<TCamAppViewIds>( iView.Id().iUid );
-
- TCamCameraMode cameraMode = (aTargetMode != ECamControllerIdle)
- ? aTargetMode
- : iController.CurrentMode();
-
- // In post capture view both target and current mode can be in idle mode, which
- // would cause the use of invalid viewfinder layouts
- if ( viewId == ECamViewIdVideoPostCapture && cameraMode == ECamControllerIdle )
- {
- cameraMode = ECamControllerVideo;
- }
- else if ( viewId == ECamViewIdStillPostCapture && cameraMode == ECamControllerIdle )
- {
- cameraMode = ECamControllerImage;
- }
-
- const TInt resolution = (cameraMode == ECamControllerVideo)
- ? iController.GetCurrentVideoResolution()
- : iController.GetCurrentImageResolution();
-
- TRect rect = CamUtility::ViewfinderLayout( cameraMode, resolution );
- PRINT( _L("Camera <= CCamContainerBase::ViewFinderFrameRect") );
- return rect;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::IsPrimaryCameraCaptureKey
-// -----------------------------------------------------------------------------
-//
-TBool CCamContainerBase::IsPrimaryCameraCaptureKey( const TKeyEvent& aKeyEvent ) const
- {
- TBool isCapturekey( KErrNotFound != iPrimaryCameraCaptureKeys.Find( aKeyEvent.iScanCode ) );
- CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
- if ( appUi
- && ( !appUi->IsToolBarVisible() || !appUi->DrawPreCaptureCourtesyUI() )
- && ( aKeyEvent.iScanCode == EStdKeyDevice3
- || aKeyEvent.iScanCode == EStdKeyEnter
- || aKeyEvent.iScanCode == EStdKeyNkpEnter ) )
- {
- isCapturekey = ETrue;
- }
- return isCapturekey;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::IsSecondaryCameraCaptureKey
-// -----------------------------------------------------------------------------
-//
-TBool CCamContainerBase::IsSecondaryCameraCaptureKey( const TKeyEvent& aKeyEvent ) const
- {
- TBool isCapturekey( KErrNotFound != iSecondaryCameraCaptureKeys.Find( aKeyEvent.iScanCode ) );
- CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
- if ( appUi
- && !appUi->IsToolBarVisible()
- && ( aKeyEvent.iScanCode == EStdKeyDevice3
- || aKeyEvent.iScanCode == EStdKeyEnter
- || aKeyEvent.iScanCode == EStdKeyNkpEnter ))
- {
- isCapturekey = ETrue;
- }
- return isCapturekey;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::CountComponentControls
-// -----------------------------------------------------------------------------
-//
-TInt CCamContainerBase::CountComponentControls() const
- {
- TInt index = 0;
- if(iBackupContainer)
- index++;
- return index;
- }
-
-// -----------------------------------------------------------------------------
-// CCamContainerBase::ComponentControl
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CCamContainerBase::ComponentControl(TInt aIndex) const
- {
- CCoeControl* control = NULL;
- switch(aIndex)
- {
- case 0:
- {
- control = iBackupContainer;
- }
- break;
- default:
- break;
- }
- return control;
- }
-
-// ---------------------------------------------------------
-// CCamCaptureSetupContainer::ReserveAndStartVF
-// ---------------------------------------------------------
-//
-void CCamContainerBase::ReserveAndStartVF()
- {
- PRINT ( _L("Camera => CCamContainerBase::ReserveAndStartVF") );
- TCamCameraMode mode = iController.CurrentMode();
- if(iController.IsAppUiAvailable())
- {
- TVwsViewId currentViewId;
- CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->AppUi() );
- appUi->GetActiveViewId( currentViewId );
- switch ( currentViewId.iViewUid.iUid )
- {
- case ECamViewIdPhotoUserSceneSetup:
- case ECamViewIdStillPreCapture:
- {
- mode = ECamControllerImage;
- }
- break;
- case ECamViewIdVideoPreCapture:
- {
- mode = ECamControllerVideo;
- }
- break;
- default:
- {
- //Assume imagemode if view cannot be determined.
- if(mode==ECamControllerIdle)
- {
- mode = ECamControllerImage;
- }
- }
- break;
- }
- }
- //Don't reserve camera and start viewfinder if shutting down.
- if(mode!=ECamControllerShutdown)
- {
- iController.EnterViewfinderMode( mode );
- iController.StartIdleTimer();
- }
- PRINT ( _L("Camera <= CCamContainerBase::ReserveAndStartVF") );
- }
-
-// End of File