# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270058804 -10800 # Node ID d486e5e3cc9a6b744c852c49e919a50e406a87a8 # Parent 8c55c525d5d76031882bcf2a8eb4d16ce26aa8a7 Revision: 201011 Kit: 201013 diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/build/cameraapp.mmp --- a/camerauis/cameraapp/build/cameraapp.mmp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/build/cameraapp.mmp Wed Mar 31 21:06:44 2010 +0300 @@ -191,6 +191,8 @@ SOURCE CamMemoryMonitor.cpp SOURCE cambackupcontainer.cpp SOURCE camsnapshotrotator.cpp +SOURCE camstartuplogo.cpp +SOURCE camstartuplogocontroller.cpp // Camera controller sources SOURCEPATH ../generic/src/cameracontroller diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/build/iconlist.txt --- a/camerauis/cameraapp/build/iconlist.txt Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/build/iconlist.txt Wed Mar 31 21:06:44 2010 +0300 @@ -161,4 +161,5 @@ -c8,1 qgn_indi_media_fullscreen_play.svg -c8,8 qgn_bg_lcam_vid_postcap_play.svg -c8,8 qgn_bg_lcam_vid_postcap_play_pressed.svg --c8,1 qgn_indi_mg_tb_edit.svg \ No newline at end of file +-c8,1 qgn_indi_mg_tb_edit.svg +-c8,8 qgn_menu_cams.svg diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/conf/cameraapp.confml Binary file camerauis/cameraapp/conf/cameraapp.confml has changed diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/conf/cameraapp_101FFA86.crml Binary file camerauis/cameraapp/conf/cameraapp_101FFA86.crml has changed diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/group/gscameraplugin.mmp Wed Mar 31 21:06:44 2010 +0300 @@ -57,6 +57,9 @@ SOURCE GSCamDefaultNameSettingItem.cpp SOURCE GSCamdefaultnamesettingpage.cpp +SOURCE GSCamCaptureToneSettingItem.cpp + + SOURCEPATH ../../common/src SOURCE CamVideoQualityLevel.cpp SOURCE CamStaticSettingsModel.cpp diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamCaptureToneSettingItem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamCaptureToneSettingItem.h Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2007 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: Setting item for capture tone +*/ + + +#ifndef GSCAMCAPTURETONESETTINGITEM_H_ +#define GSCAMCAPTURETONESETTINGITEM_H_ + +// INCLUDES +#include + +/** +* Setting item for capture tone selection +* @since 5.0 + */ +class CGSCamCaptureToneSettingItem : public CAknEnumeratedTextPopupSettingItem + { +public: + // Constructors and destructor + /** + * C++ constructor + * @since 5.0 + * @param aIdentifier setting page resource id + * @param aValue current name base type + */ + CGSCamCaptureToneSettingItem(TInt aIdentifier, + TInt& aValue); + + /** + * Destructor + */ + virtual ~CGSCamCaptureToneSettingItem(); + +protected:// Functions from base classes + /** + * + * Virtual method called by framework to complete the construction. + * In this fuction, if the "off" option is disabled in the cenrep, + * it is removed from the setting item list (Enumerated List) + */ + void CompleteConstructionL(); + }; + +#endif /* CGSCAMCAPTURETONESETTINGITEM_H_ */ diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamCaptureToneSettingItem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamCaptureToneSettingItem.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2007 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: Setting item for capture tone +*/ + + +// INCLUDE FILES +#include +#include "GSCamCaptureToneSettingItem.h" +#include "camuidconstants.h" +#include "CamSettings.hrh" + +// CONSTANTS + +// ============================ MEMBER FUNCTIONS =============================== +// --------------------------------------------------------------------------- +// CGSCamCaptureToneSettingItem::CGSCamCaptureToneSettingItem +// C++ constructor +// --------------------------------------------------------------------------- +// +CGSCamCaptureToneSettingItem::CGSCamCaptureToneSettingItem(TInt aIdentifier, + TInt& aValue) : + CAknEnumeratedTextPopupSettingItem(aIdentifier, aValue) + { + + } + +// --------------------------------------------------------------------------- +// CGSCamCaptureToneSettingItem::~CGSCamCaptureToneSettingItem +// Destructor. +// --------------------------------------------------------------------------- +// +CGSCamCaptureToneSettingItem::~CGSCamCaptureToneSettingItem() + { + } + +// --------------------------------------------------------------------------- +// CGSCamCaptureToneSettingItem::CGSCamCaptureToneSettingItem +// +// --------------------------------------------------------------------------- +// +void CGSCamCaptureToneSettingItem::CompleteConstructionL() + { + CAknEnumeratedTextPopupSettingItem::CompleteConstructionL(); + + // get the KCCorEnableCaptureToneOff key value from cenrep + CRepository* repository = NULL; + TInt shutterSoundEnabled = 0; //by default enabled + TRAPD(ret, repository = CRepository::NewL(KCRUidCamcorderFeatures)); + if (ret == KErrNone) + { + const TUint32 KCCorShutterSound = 0x00000007; + ret = repository->Get(KCCorShutterSound, + shutterSoundEnabled); + } + delete repository; + repository = NULL; + + if ( shutterSoundEnabled == 1 ) + { + // if enabled, delete off from the list + // if disabled, off option is shown to the user + // under capture tone selection menu + CArrayPtr + * itemArray = + static_cast(this)->EnumeratedTextArray(); + + TInt count = itemArray->Count(); + + for(TInt idx = 0; idx < count; idx++) + { + TInt value = itemArray->At( idx )->EnumerationValue(); + if(value == ECamSettToneOff) + { + itemArray->Delete(idx); + } + } + } + } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include // DriveInfo +#include #include "GSCamcorderPlugin.hrh" #include "Cam.hrh" @@ -46,6 +47,7 @@ #include "CamWaitDialog.h" #include "CamLocationSettingItem.h" #include "camconfiguration.h" +#include "GSCamCaptureToneSettingItem.h" // ========================= MEMBER FUNCTIONS ================================ @@ -201,7 +203,7 @@ case ECamSettingItemPhotoCaptureTone: { settingItem = new( ELeave ) - CAknEnumeratedTextPopupSettingItem( aIdentifier, valueId ); + CGSCamCaptureToneSettingItem( aIdentifier, valueId ); } break; @@ -227,18 +229,27 @@ // Convert the setting to a memory enum iMemVal = static_cast ( CamUtility::MapToSettingsListMemory( valueId ) ); - __ASSERT_DEBUG( iMemVal != KErrNotFound, - CamPanic( ECamPanicUnhandledCreateSettingItem ) ); - + // Get the root path of the default mass storage memory. - TInt driveInt; - TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt ); - iDrive = static_cast(driveInt); - + if(iMemVal != KErrNotFound) + { + TInt driveInt; + TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt ); + iDrive = static_cast(driveInt); + } + else + { + iDrive = static_cast(0); //Doesn't matter + } + TInt includedMedias = AknCommonDialogsDynMem::EMemoryTypeMMCExternal | + AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; settingItem = new ( ELeave ) CAknMemorySelectionSettingItemMultiDrive( aIdentifier, - iDrive ); + iDrive + ); + static_cast(settingItem) + ->SetIncludedMediasL(includedMedias); } break; @@ -329,6 +340,9 @@ { iMemVal = static_cast(CamUtility::GetDriveTypeFromDriveNumber( iDrive )); settingValue = CamUtility::MapFromSettingsListMemory( iMemVal ); + settingValue = ( (settingValue == ECamMediaStoragePhone) && + parent->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage) )? + ECamMediaStorageNone:settingValue; } else if ( editedItem->Identifier() == ECamSettingItemPhotoQuality ) { diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingContainer.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingContainer.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingContainer.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -567,20 +567,33 @@ { CFbsBitmap* icon = NULL; CFbsBitmap* mask = NULL; - if ( iStorageLocation == ECamMediaStoragePhone ) - { - icon = iPhoneIcon; - mask = iPhoneIconMask; - } - else if ( iStorageLocation == ECamMediaStorageMassStorage ) + + switch( iStorageLocation ) { - icon = iMassStorageIcon; - mask = iMassStorageIconMask; - } - else - { - icon = iMMCIcon; - mask = iMMCIconMask; + case ECamMediaStoragePhone: + { + icon = iPhoneIcon; + mask = iPhoneIconMask; + } + break; + case ECamMediaStorageMassStorage: + { + icon = iMassStorageIcon; + mask = iMassStorageIconMask; + } + break; + case ECamMediaStorageCard: + { + icon = iMMCIcon; + mask = iMMCIconMask; + } + break; + case ECamMediaStorageNone: + default: + { + //TODO: Get icons when none is available + } + break; } iLayoutIcon.DrawImage( aGc, icon, mask ); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include // DriveInfo +#include #include "GSCamcorderPlugin.hrh" #include "Cam.hrh" @@ -227,20 +228,27 @@ { // Convert the setting to a memory enum iMemVal = static_cast - ( CamUtility::MapToSettingsListMemory( - iSettings[lastItem]->iValueId ) ); - - __ASSERT_DEBUG( iMemVal != KErrNotFound, - CamPanic( ECamPanicUnhandledCreateSettingItem ) ); - - // Get the root path of the default mass storage memory. - TInt driveInt; - TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt ); - iDrive = static_cast(driveInt); - - settingItem = new ( ELeave ) - CAknMemorySelectionSettingItemMultiDrive( aIdentifier, - iDrive ); + ( CamUtility::MapToSettingsListMemory( valueId ) ); + + if(iMemVal != KErrNotFound) + { + TInt driveInt; + TInt err = DriveInfo::GetDefaultDrive( iMemVal, driveInt ); + iDrive = static_cast(driveInt); + } + else + { + iDrive = static_cast(0); //Doesn't matter + } + TInt includedMedias = AknCommonDialogsDynMem::EMemoryTypeMMCExternal | + AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; + settingItem = new ( ELeave ) + CAknMemorySelectionSettingItemMultiDrive( + aIdentifier, + iDrive + ); + static_cast(settingItem) + ->SetIncludedMediasL(includedMedias); break; } case ECamSettingItemVideoNameBaseType: @@ -343,6 +351,9 @@ { iMemVal = static_cast(CamUtility::GetDriveTypeFromDriveNumber( iDrive )); settingValue = CamUtility::MapFromSettingsListMemory( iMemVal ); + settingValue = ( (settingValue == ECamMediaStoragePhone) && + parent->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage) )? + ECamMediaStorageNone:settingValue; //__ASSERT_DEBUG( settingValue != KErrNotFound, CamPanic( ECamPanicUnknownSettingItem ) ); } else if ( editedItem->Identifier() == ECamSettingItemVideoQuality ) diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -548,7 +548,9 @@ } else { - settingValue = ECamMediaStoragePhone; + settingValue = iSettingsModel->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)? + ECamMediaStorageNone: + ECamMediaStoragePhone; } } return settingValue; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/data/CamSettings.ra --- a/camerauis/cameraapp/generic/common/data/CamSettings.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamSettings.ra Wed Mar 31 21:06:44 2010 +0300 @@ -159,7 +159,6 @@ }; } -//ME:START RESOURCE CBA R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT { flags = EEikButtonGroupAddToStack | EEikCbaFlagTransparent; @@ -182,8 +181,6 @@ } }; } -//ME:END - //---------------------------------------------------- // // R_CAM_SOFTKEYS_OPTIONS_BACK__CAPTURE @@ -2913,6 +2910,11 @@ { value = ECamSettTone4; text = qtn_lcam_set_camera_4; + }, + AVKON_ENUMERATED_TEXT + { + value = ECamSettToneOff; + text = qtn_lcam_shuttersound_off; } }; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/data/CamSettingsV2.ra --- a/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra Wed Mar 31 21:06:44 2010 +0300 @@ -157,8 +157,6 @@ }; } - -//ME:START RESOURCE CBA R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT { flags = EEikButtonGroupAddToStack | EEikCbaFlagTransparent; @@ -181,8 +179,6 @@ } }; } -//ME:END - //---------------------------------------------------- // @@ -2923,6 +2919,11 @@ { value = ECamSettTone4; text = qtn_lcam_set_camera_4; + }, + AVKON_ENUMERATED_TEXT + { + value = ECamSettToneOff; + text = qtn_lcam_shuttersound_off; } }; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/inc/CamSettings.hrh --- a/camerauis/cameraapp/generic/common/inc/CamSettings.hrh Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CamSettings.hrh Wed Mar 31 21:06:44 2010 +0300 @@ -192,7 +192,8 @@ ECamSettTone1, ECamSettTone2, ECamSettTone3, - ECamSettTone4 + ECamSettTone4, + ECamSettToneOff }; // File name base type settings diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh --- a/camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh Wed Mar 31 21:06:44 2010 +0300 @@ -86,6 +86,7 @@ //Photo and video editor support ECamSettingItemPhotoEditorSupport, // Support for photo editor ECamSettingItemVideoEditorSupport, // Support for video editor + ECamSettingItemRemovePhoneMemoryUsage, // Remove phone memory usage ECamSettingItemStaticCommonRangeMax, // Range marker for static common settings // ----------------------------------------------------- @@ -596,6 +597,7 @@ (const TUint16* const)_S16("ItemRecLocation"), (const TUint16* const)_S16("ItemPhotoEditorSupport"), (const TUint16* const)_S16("ItemVideoEditorSupport"), + (const TUint16* const)_S16("ItemRemovePhoneMemoryUsage"), (const TUint16* const)_S16("ItemStaticCommonRangeMax"), // ----------------------------------------------------- (const TUint16* const)_S16("ItemUserSceneRangeMin"), diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h --- a/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h Wed Mar 31 21:06:44 2010 +0300 @@ -92,6 +92,9 @@ const TUint32 KCamCrPhotoEditorSupport = 0x5A; const TUint32 KCamCrVideoEditorSupport = 0x5B; +//Remove phone memory usage +const TUint32 KCamCrRemovePhoneMemoryUsage = 0x5C; + // ========================================================= // Cameraapp variant settings file const TUid KCRUidCameraappVariant = {0x10208A43}; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp --- a/camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -70,9 +70,7 @@ Rect() ); CCamCaptureSetupListItemDrawer* itemDrawer = - CCamCaptureSetupListItemDrawer::NewL( *model, iSkinnedBackGround ); - //ME:END - + CCamCaptureSetupListItemDrawer::NewL( *model, iSkinnedBackGround || aLocationSettingListBox ); itemDrawer->SetParentControl( aParent ); // CEikListBox takes ownership before anything can leave. diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp --- a/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -54,10 +54,8 @@ // CONSTANTS static const TInt KRadioButtonSelectedIconIndex = 0; static const TInt KRadioButtonUnselectedIconIndex = 1; -//ME:START const TUint32 KToolbarExtensionBgColor = 0x00000000; const TInt KToolBarExtensionBgAlpha = 0x7F; -//ME:END // ================= MEMBER FUNCTIONS ======================= @@ -67,13 +65,11 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -//ME:START CCamCaptureSetupListItemDrawer* CCamCaptureSetupListItemDrawer::NewL( MCamListboxModel& aListBoxModel, TBool aFullySkinned ) { CCamCaptureSetupListItemDrawer* self = new( ELeave ) CCamCaptureSetupListItemDrawer( aListBoxModel, aFullySkinned ); -//ME:END CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); @@ -226,8 +222,6 @@ } #endif // RD_UI_TRANSITION_EFFECTS_LIST // Draw unhighlighted rectangle that encapsulates the item text and bitmap. - - //ME:START PRINT1( _L("Camera <> CCamCaptureSetupListItemDrawer::DrawActualItem iFullySkinned=%d"), iFullySkinned ); if( iFullySkinned ) @@ -238,8 +232,6 @@ { DrawTransparentItemRect( aActualItemRect ); } - //ME:END - #ifdef RD_UI_TRANSITION_EFFECTS_LIST if ( transApi ) { @@ -472,7 +464,6 @@ } -//ME:START // --------------------------------------------------------- // CCamCaptureSetupListItemDrawer::DrawItemRect // Draws a rectangle for an item. @@ -487,22 +478,13 @@ if ( control ) { iGc->SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); + iGc->SetPenSize( TSize( 1, 1 ) ); + iGc->SetPenStyle( CGraphicsContext::EDottedPen ); iGc->SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) ); iGc->SetBrushStyle( CGraphicsContext::ESolidBrush ); iGc->DrawRect( aActualItemRect ); - // Reset the brush after use (otherwise anything drawn - // after the viewfinder will also show viewfinder frames) - iGc->SetDrawMode( CGraphicsContext::EDrawModePEN ); - TSize penSize( 1, 1 ); - iGc->SetPenSize( penSize ); - iGc->SetPenStyle( CGraphicsContext::EDottedPen ); - iGc->SetPenColor( KRgbWhite ); - iGc->SetBrushStyle( CGraphicsContext::ENullBrush ); - iGc->DrawRect( aActualItemRect ); } } -//ME:END - // --------------------------------------------------------- // CCamCaptureSetupListItemDrawer::DrawItemRect // Draws a rectangle for an item. diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp --- a/camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -731,6 +731,8 @@ case ECamSettingItemRecLocation: crKey = KCamCrPhotoStoreLocation; break; case ECamSettingItemPhotoEditorSupport: crKey = KCamCrPhotoEditorSupport; break; case ECamSettingItemVideoEditorSupport: crKey = KCamCrVideoEditorSupport; break; + case ECamSettingItemRemovePhoneMemoryUsage: crKey = KCamCrRemovePhoneMemoryUsage; break; + default: CamPanic( ECamPanicUnknownSettingItem ); break; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/common/src/CamUtility.cpp --- a/camerauis/cameraapp/generic/common/src/CamUtility.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamUtility.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -1029,6 +1029,7 @@ // Resource ids for User Scene setup items case ECamPsiUserSceneResourceIds: { + User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_SET_USER_DEFAULT ) ); User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_SCENEBASE_DATA ) ); if ( configManager->IsFlashModeSupported() ) User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_FLASH_DATA ) ); @@ -1058,9 +1059,7 @@ if ( configManager->IsContrastSupported() ) User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_CONTRAST_DATA ) ); - - User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_SET_USER_DEFAULT ) ); - + User::LeaveIfError( aArray.Append( R_CAM_PHOTO_USER_SCENE_SETUP_LIST_RESET_DATA ) ); break; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/nhdcamsettings.rss --- a/camerauis/cameraapp/generic/data/nhdcamsettings.rss Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/nhdcamsettings.rss Wed Mar 31 21:06:44 2010 +0300 @@ -1124,7 +1124,7 @@ flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent; items = { - TBAR_CTRL + /*TBAR_CTRL { type = EAknCtButton; id = ECamCmdCaptureImage; @@ -1143,8 +1143,9 @@ } }; }; - }, - TBAR_CTRL + },*/ + + TBAR_CTRL { type = EAknCtButton; id = ECamCmdNewVideo; @@ -1165,25 +1166,45 @@ }; }, TBAR_CTRL - { - type = EAknCtButton; - id = ECamCmdSwitchCamera; - control = AVKON_BUTTON - { - flags = KAknButtonNoFrame; - states = - { - AVKON_BUTTON_STATE - { - bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_tb_cam4_goto_main; - bmpmask = EMbmCameraappQgn_indi_tb_cam4_goto_main_mask; - helptxt = qtn_lcam_tt_camera_main; - extension = r_cam_ext_qgn_indi_cam4_mode_camera; - } - }; - }; - } + { + type = EAknCtButton; + id = ECamCmdPhotos; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_goto_gallery; + bmpmask = EMbmCameraappQgn_indi_cam4_goto_gallery_mask; + helptxt = qtn_lcam_tt_go_to_photos; + extension = r_cam_ext_qgn_indi_cam4_goto_photos; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdSwitchCamera; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_tb_cam4_goto_main; + bmpmask = EMbmCameraappQgn_indi_tb_cam4_goto_main_mask; + helptxt = qtn_lcam_tt_camera_main; + extension = r_cam_ext_qgn_indi_cam4_mode_camera; + } + }; + }; + } }; } @@ -1276,7 +1297,7 @@ flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent; items = { - TBAR_CTRL + /*TBAR_CTRL { type = EAknCtButton; id = ECamCmdRecord; @@ -1295,7 +1316,8 @@ } }; }; - }, + },*/ + TBAR_CTRL { type = EAknCtButton; @@ -1316,7 +1338,27 @@ }; }; }, - TBAR_CTRL + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdPhotos; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_goto_gallery; + bmpmask = EMbmCameraappQgn_indi_cam4_goto_gallery_mask; + helptxt = qtn_lcam_tt_go_to_photos; + extension = r_cam_ext_qgn_indi_cam4_goto_photos; + } + }; + }; + }, + TBAR_CTRL { type = EAknCtButton; id = ECamCmdSwitchCamera; @@ -1335,7 +1377,7 @@ } }; }; - } + } }; } @@ -1357,6 +1399,26 @@ TBAR_CTRL { type = EAknCtButton; + id = ECamCmdNewVideo; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_video; + bmpmask = EMbmCameraappQgn_indi_cam4_video_mask; + helptxt = qtn_lcam_tt_video_mode; + extension = r_cam_ext_qgn_indi_cam4_video; + } + }; + }; + }, + /*TBAR_CTRL + { + type = EAknCtButton; id = ECamCmdCaptureImage; control = AVKON_BUTTON { @@ -1373,7 +1435,7 @@ } }; }; - }, + },*/ TBAR_CTRL { type = EAknCtButton; @@ -1619,7 +1681,7 @@ } }; }; - }, + }/*, TBAR_CTRL { type = EAknCtButton; @@ -1639,7 +1701,7 @@ } }; }; - } + }*/ }; }; } @@ -2232,6 +2294,26 @@ TBAR_CTRL { type = EAknCtButton; + id = ECamCmdNewPhoto; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_camera; + bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask; + helptxt = qtn_lcam_tt_still_mode; + extension = r_cam_ext_qgn_indi_cam4_camera; + } + }; + }; + }, + /*TBAR_CTRL + { + type = EAknCtButton; id = ECamCmdRecord; control = AVKON_BUTTON { @@ -2248,7 +2330,7 @@ } }; }; - }, + },*/ TBAR_CTRL { type = EAknCtButton; @@ -2365,7 +2447,7 @@ } }; }; - }, + }/*, TBAR_CTRL { type = EAknCtButton; @@ -2385,7 +2467,7 @@ } }; }; - } + }*/ }; }; } @@ -2409,6 +2491,26 @@ TBAR_CTRL { type = EAknCtButton; + id = ECamCmdNewPhoto; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_camera; + bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask; + helptxt = qtn_lcam_tt_still_mode; + extension = r_cam_ext_qgn_indi_cam4_camera; + } + }; + }; + }, + /*TBAR_CTRL + { + type = EAknCtButton; id = ECamCmdRecord; control = AVKON_BUTTON { @@ -2425,7 +2527,7 @@ } }; }; - }, + },*/ TBAR_CTRL { type = EAknCtButton; @@ -2438,7 +2540,7 @@ AVKON_BUTTON_STATE { //txt = qtn_lcam_tb_scenes; - helptxt = qtn_lcam_tt_goto_scenemode_settings; + helptxt = qtn_lcam_tt_goto_scenemode_settings; } }; }; @@ -2523,7 +2625,7 @@ } }; }; - }, + }/*, TBAR_CTRL { type = EAknCtButton; @@ -2543,7 +2645,7 @@ } }; }; - } + }*/ }; }; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/resource_inc/CamStandby.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamStandby.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamStandby.ra Wed Mar 31 21:06:44 2010 +0300 @@ -43,7 +43,35 @@ { buf = qtn_lcam_standby_hardware_failure; } - + +//---------------------------------------------------- +// +// r_cam_standby_camera_storage_inaccessible +// Text string displayed in standby container +// when all storages are inacessible/not ready +// +//---------------------------------------------------- +// +RESOURCE TBUF r_cam_standby_camera_storage_inaccessible + { + buf = qtn_lcam_storage_inaccessible_note; + } + +//---------------------------------------------------- +// +// r_cam_standby_camera_insert_mmc +// When a device has no mass memory and memory card is not +// inserted when opening the camera, the user will get a note +// +//---------------------------------------------------- +// +RESOURCE TBUF r_cam_standby_camera_insert_mmc + { + buf = qtn_lcam_insert_mmc_note; + } + + + //---------------------------------------------------- // // r_cam_standby_empty_text diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/resource_inc/CamStillCapture.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamStillCapture.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamStillCapture.ra Wed Mar 31 21:06:44 2010 +0300 @@ -194,6 +194,29 @@ //---------------------------------------------------- // +// r_cam_set_as_call_image_interest_editor +// This resource is used to register an interest in +// Set as contact call image Application InterWork (AIW) +// with Photos editor. +// +//---------------------------------------------------- +// +RESOURCE AIW_INTEREST r_cam_set_as_call_image_interest_editor + { + items = + { + AIW_CRITERIA_ITEM + { + id = KAiwCmdAssign; + serviceCmd = KAiwCmdAssign; + contentType = "MediaEditor/*"; + serviceClass = KAiwClassMenu; + } + }; + } + +//---------------------------------------------------- +// // r_cam_set_as_call_image_interest // This resource is used to register an interest in // Set as contact call image Application InterWork (AIW) diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureV2.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureV2.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureV2.ra Wed Mar 31 21:06:44 2010 +0300 @@ -194,6 +194,29 @@ //---------------------------------------------------- // +// r_cam_set_as_call_image_interest_editor +// This resource is used to register an interest in +// Set as contact call image Application InterWork (AIW) +// with Photos editor +// +//---------------------------------------------------- +// +RESOURCE AIW_INTEREST r_cam_set_as_call_image_interest_editor + { + items = + { + AIW_CRITERIA_ITEM + { + id = KAiwCmdAssign; + serviceCmd = KAiwCmdAssign; + contentType = "MediaEditor/*"; + serviceClass = KAiwClassMenu; + } + }; + } + +//---------------------------------------------------- +// // r_cam_set_as_call_image_interest // This resource is used to register an interest in // Set as contact call image Application InterWork (AIW) diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/resource_inc/CamVideoCapture.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamVideoCapture.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamVideoCapture.ra Wed Mar 31 21:06:44 2010 +0300 @@ -341,3 +341,29 @@ } }; } + +//---------------------------------------------------- +// +// r_cam_set_as_ring_tone_interest_editor +// This resource is used to register an interest in +// assinging video to Application InterWork (AIW) +// services with Photos editor +// +//---------------------------------------------------- +// +RESOURCE AIW_INTEREST r_cam_set_as_ring_tone_interest_editor + { + items = + { + AIW_CRITERIA_ITEM // + { + id = KAiwCmdAssign; + serviceCmd = KAiwCmdAssign; + contentType = "MediaEditor/*"; + serviceClass = KAiwClassMenu; + //maxProviders = 1; + loadOptions = AIW_OPTIONS_ROM_ONLY; + //defaultProvider = 0x10281F18; + } + }; + } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureV2.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureV2.ra Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureV2.ra Wed Mar 31 21:06:44 2010 +0300 @@ -341,3 +341,29 @@ } }; } + +//---------------------------------------------------- +// +// r_cam_set_as_ring_tone_interest_editor +// This resource is used to register an interest in +// assinging video to Application InterWork (AIW) +// services with Photos editor +// +//---------------------------------------------------- +// +RESOURCE AIW_INTEREST r_cam_set_as_ring_tone_interest_editor + { + items = + { + AIW_CRITERIA_ITEM // + { + id = KAiwCmdAssign; + serviceCmd = KAiwCmdAssign; + contentType = "MediaEditor/*"; + serviceClass = KAiwClassMenu; + //maxProviders = 1; + loadOptions = AIW_OPTIONS_ROM_ONLY; + //defaultProvider = 0x10281F18; + } + }; + } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/inc/CamAppUi.h --- a/camerauis/cameraapp/generic/inc/CamAppUi.h Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamAppUi.h Wed Mar 31 21:06:44 2010 +0300 @@ -68,6 +68,8 @@ class CCamStillPreCaptureView; class CCamVideoPreCaptureView; class CCamMemoryMonitor; +class CCamStartupLogoController; + // =========================================================================== // CLASS DECLARATION @@ -1014,9 +1016,14 @@ * @return ETrue if memory available for capturing **/ TBool IsMemoryAvailableForCapturing() const; - - + /** + * Get a pointer to the startup logo controller. + * AppUi keeps ownership. + * @return Pointer to CCamStartupLogoController or NULL. + */ + CCamStartupLogoController* StartupLogoController(); + private: // New functions /** @@ -1805,6 +1812,8 @@ TInt iPortraitScreenMode; TBool iMemoryAvailableForCapturing; + + CCamStartupLogoController* iStartupLogoController; }; // =========================================================================== diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h --- a/camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h Wed Mar 31 21:06:44 2010 +0300 @@ -75,8 +75,6 @@ TInt aTitleResource, TBool aSkinnedBackGround = ETrue ); - //ME:END - /** * Destructor. diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/inc/CamPreCaptureContainerBase.h --- a/camerauis/cameraapp/generic/inc/CamPreCaptureContainerBase.h Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamPreCaptureContainerBase.h Wed Mar 31 21:06:44 2010 +0300 @@ -45,7 +45,7 @@ class CCamIndicator; class CCamTimeLapseSlider; class MCamVfGridDrawer; - +class CCamStartupLogo; // =========================================================================== @@ -731,6 +731,9 @@ CPeriodic* iIndBlinkTimer; TBool iDrawIndicator; TInt iToggleCountdown; + + // Startup animation control + CCamStartupLogo* iStartupLogo; // ========================================================================= }; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/inc/camstartuplogo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/camstartuplogo.h Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,65 @@ +/* +* Copyright (c) 2010 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: CCoeControl to show a logo at camera application startup +* +*/ + +#ifndef CAMSTARTUPLOGO_H +#define CAMSTARTUPLOGO_H + +#include +#include + +#include "camstartuplogocontroller.h" + +class CFbsBitmap; +class CPeriodic; + + +// Class declaration +/** + * CCoeControl to show a logo at camera application startup + */ +class CCamStartupLogo : public CCoeControl, + public MCamStartupLogoControllerObserver +{ +public: + static CCamStartupLogo* NewL(CCamStartupLogoController& aController, + const TRect& aRect); + virtual ~CCamStartupLogo(); + +private: + CCamStartupLogo(CCamStartupLogoController& aController, + const TRect& aRect); + void ConstructL(); + + void ShowL(); + void Hide(); + + void Draw(const TRect& aRect) const; + + void StartupLogoControllerStateChanged(TStartupLogoState aNewState); + +private: //data + CFbsBitmap* iLogo; // own + CFbsBitmap* iLogoMask; // own + + TRect iRect; + + TBool iWindowCreated; + + CCamStartupLogoController& iController; +}; + +#endif // CAMSTARTUPLOGO_H diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/inc/camstartuplogocontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/camstartuplogocontroller.h Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,124 @@ +/* +* Copyright (c) 2010 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: Controller for managing the camera startup logo state +* +*/ + +#ifndef CAMSTARTUPLOGOCONTROLLER_H +#define CAMSTARTUPLOGOCONTROLLER_H + +// INCLUDES +#include +#include + +enum TStartupLogoState + { + EStartupLogoNotVisible, + EStartupLogoVisible + }; + +// CLASS DECLARATION + +/** + * Observer interface for listening to controller state change events + * + */ +class MCamStartupLogoControllerObserver + { +public: + virtual ~MCamStartupLogoControllerObserver() {} + + /** + * Startup logo controller state changed. + */ + virtual void StartupLogoControllerStateChanged(TStartupLogoState aNewState) = 0; + }; + + + +/** + * Controller for managing the camera startup logo state + * + */ +class CCamStartupLogoController : public CBase + { + +public: + // Constructors and destructor + + /** + * Destructor. + */ + virtual ~CCamStartupLogoController(); + + /** + * Two-phased constructor. + */ + static CCamStartupLogoController* NewL(TStartupLogoState aInitialState); + + /** + * Two-phased constructor. + */ + static CCamStartupLogoController* NewLC(TStartupLogoState aInitialState); + +public: + /** + * Add an observer. Returns an error code. + */ + TInt AddObserver(MCamStartupLogoControllerObserver* aObserver); + + /** + * Removes an observer. + */ + void RemoveObserver(MCamStartupLogoControllerObserver* aObserver); + + /** + * Get current state. + */ + TStartupLogoState State() const; + + /** + * Show startup logo. + */ + void ShowLogo(); + + /** + * Hide startup logo. + */ + void HideLogo(); + +private: + + /** + * Constructor for performing 1st stage construction + */ + CCamStartupLogoController(TStartupLogoState aInitialState); + + /** + * Symbian default constructor for performing 2nd stage construction + */ + void ConstructL(); + + static TInt FailSafeCallback(TAny* ptr); + +private: + void SetState(TStartupLogoState aNewState); + +private: // data + TStartupLogoState iState; + RPointerArray iObservers; + CPeriodic* iFailSafeTimer; // own + }; + +#endif // CAMSTARTUPLOGOCONTROLLER_H diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamAppController.cpp --- a/camerauis/cameraapp/generic/src/CamAppController.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamAppController.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -2225,7 +2225,7 @@ && ECamCompleting != CurrentOperation() ) { // If we are currently focused, cancel autofocus - if ( IsViewFinding() && CurrentOperation() != ECamCapturing ) // Cannot do AF operations if VF not on. AF is anyway cancelled on VF start event. + if ( IsViewFinding() && CurrentOperation() != ECamCapturing && !InCallOrRinging() ) // Cannot do AF operations if VF not on. AF is anyway cancelled on VF start event. { if( ECamFocusing == CurrentOperation() ) { @@ -3143,9 +3143,9 @@ } else { - PRINT( _L( "Camera <> CCamAppController::GenerateModeChangeSequenceL: Snapshot off" ) ); + PRINT( _L( "Camera <> CCamAppController::GenerateModeChangeSequenceL: Snapshot on" ) ); aSequence.Append( ECamRequestSsRelease ); - aSequence.Append( ECamRequestSsStop ); + aSequence.Append( ECamRequestSsStart ); // SS is requested and delivered to tn-manager, but not shown on display } } } @@ -3186,9 +3186,9 @@ } else { - PRINT( _L( "Camera <> CCamAppController::GenerateModeChangeSequenceL: Snapshot off" ) ); + PRINT( _L( "Camera <> CCamAppController::GenerateModeChangeSequenceL: Snapshot on" ) ); aSequence.Append( ECamRequestSsRelease ); - aSequence.Append( ECamRequestSsStop ); + aSequence.Append( ECamRequestSsStart ); } } break; @@ -3299,11 +3299,16 @@ } else { + TCamMediaStorage storage = iSettingModel-> + IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage )? + ECamMediaStorageNone: + ECamMediaStoragePhone; + iSettingsModel->SetIntegerSettingValueL( ECamSettingItemPhotoMediaStorage, - ECamMediaStoragePhone ); + storage ); iSettingsModel->SetIntegerSettingValueL( ECamSettingItemVideoMediaStorage, - ECamMediaStoragePhone ); + storage ); } #endif // PRODUCT_SUPPORTS_FORCE_MEDIA_STORAGE_VALUE @@ -3512,7 +3517,9 @@ } else { - storageLocation = ECamMediaStoragePhone; + storageLocation = IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage)? + ECamMediaStorageNone: + ECamMediaStoragePhone; } } return storageLocation; @@ -5698,7 +5705,9 @@ else { PRINT( _L("Camera <> Force ECamMediaStoragePhone") ); - store = ECamMediaStoragePhone; + store = IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)? + ECamMediaStorageNone: + ECamMediaStoragePhone; } } @@ -6942,8 +6951,11 @@ else { PRINT( _L("Camera <> Force ECamMediaStoragePhone") ); - iForcedStorageLocation = ECamMediaStoragePhone; - SetPathnamesToNewStorageL( ECamMediaStoragePhone ); + TCamMediaStorage storage = IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)? + ECamMediaStorageNone: + ECamMediaStoragePhone; + iForcedStorageLocation = storage; + SetPathnamesToNewStorageL( storage ); } } // Revert back to memory card, if aEnable is EFalse @@ -8302,6 +8314,14 @@ TInt value; User::LeaveIfError( cr->Get( KProEngActiveWarningTones, value ) ); CleanupStack::PopAndDestroy( cr ); + + //In case the phone variant allows turning camera tones off, + // first check if that is the case here. + if ( iSettingsModel->IntegerSettingValue( ECamSettingItemPhotoCaptureTone ) + == ECamSettToneOff ) + { + return ETrue; + } return ( value == 0 ); } @@ -8896,6 +8916,7 @@ if( iSettingsRestoreNeeded ) { iSettingsRestoreNeeded = EFalse; + TRAP_IGNORE( iCameraController->DirectSettingsChangeL( ECameraSettingFacetracking ) ); TRAP( aStatus, RestoreSettingsToCameraL() ); } // fixed toolbar is used only with touch devices @@ -8928,6 +8949,8 @@ } } } + //Check if profile is silent and/or camera tones are set off + IsProfileSilent(); break; } @@ -9333,10 +9356,13 @@ } else { + TCamMediaStorage storage = IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)? + ECamMediaStorageNone: + ECamMediaStoragePhone; TRAP_IGNORE( { iSettingsModel->SetIntegerSettingValueL( ECamSettingItemVideoMediaStorage, - ECamMediaStoragePhone ); + storage ); GenerateNextValidVideoPathL(); }); @@ -9798,7 +9824,11 @@ !iCaptureRequested && appUi && appUi->SelfTimer() && !appUi->SelfTimer()->IsActive()) { - PlaySound( ECamAutoFocusComplete, EFalse ); + if ( !iSilentProfile || iShutterSndAlwaysOn ) + { + // Play only if camera tones are not set off + PlaySound(ECamAutoFocusComplete, EFalse); + } } SetOperation( ECamFocused ); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamAppui.cpp --- a/camerauis/cameraapp/generic/src/CamAppui.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamAppui.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -12,7 +12,7 @@ * Contributors: * * Description: App UI class for cameraapp - * +* */ @@ -114,6 +114,7 @@ #include "camflashstatus.h" #include "CamMemoryMonitor.h" +#include "camstartuplogocontroller.h" @@ -163,6 +164,8 @@ iMemoryMonitor = 0; } + delete iStartupLogoController; + iController.SetAppUiAvailable( EFalse ); iResourceLoaders.Close(); @@ -651,6 +654,10 @@ } iMemoryMonitor->StartMonitoring( iController.UiConfigManagerPtr()->CriticalLevelRamMemoryFocusGained(), iController.UiConfigManagerPtr()->RequiredRamMemoryFocusGained() ); + + // TRAP errors so camera starts up even if startup animation fails + TRAP_IGNORE(iStartupLogoController = CCamStartupLogoController::NewL(EStartupLogoVisible)); + PRINT( _L("Camera <= CCamAppUi::ConstructL") ) OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP3_CCAMAPPUI_CONSTRUCTL, "e_CCamAppUi_ConstructL 0" ); } @@ -1801,10 +1808,6 @@ iCamSidePane->UpdateLayout(); iTargetViewState = ECamViewStatePreCapture; - delete iScreenClearer; - iScreenClearer = NULL; - iScreenClearer = CAknLocalScreenClearer::NewL( - IsSecondCameraEnabled() || IsQwerty2ndCamera() ); TrySwitchViewL( ETrue ); iController.SwitchCameraL(); } @@ -2646,7 +2649,12 @@ if( ECamViewStateStandby != iViewState ) { DismissMemoryNoteL(); - + + if (iStartupLogoController) + { + iStartupLogoController->HideLogo(); + } + if( IsInternalView( iViewState ) ) { @@ -2679,7 +2687,10 @@ } else { - static_cast( iView )->ExitAllModesL(); + if( iView) + { + static_cast( iView )->ExitAllModesL(); + } } } @@ -2939,7 +2950,12 @@ } #endif } - + + if (iStartupLogoController) + { + iStartupLogoController->HideLogo(); + } + if( AppInBackground(EFalse) || ( !CamUtility::IsBatteryPowerOK() && !CamUtility::IsBatteryCharging() ) ) { @@ -3236,7 +3252,6 @@ iController.CheckMemoryToUseL(); } - TBool returningFromPretendExit = iPretendExit; iPretendExit = EFalse; TCamViewSwitch switchNeeded = ECamViewSwitchNone; @@ -3327,6 +3342,11 @@ } } } + + if (iStartupLogoController && iReturningFromPretendExit) + { + iStartupLogoController->ShowLogo(); + } break; } // ----------------------------------------------------- @@ -4369,20 +4389,19 @@ iController.IntegerSettingValue( key ) ); } if(currentLocation != ECamMediaStoragePhone && - !IsMemoryFullOrUnavailable(ECamMediaStoragePhone)) - { - supportedMemTypes |= - AknCommonDialogsDynMem::EMemoryTypePhone; - } - if(currentLocation != ECamMediaStorageCard && - !IsMemoryFullOrUnavailable(ECamMediaStorageCard)) - { - supportedMemTypes |= - AknCommonDialogsDynMem::EMemoryTypeMMCExternal; - } - if(currentLocation != ECamMediaStorageMassStorage && - !IsMemoryFullOrUnavailable(ECamMediaStorageMassStorage)) - { + !IsMemoryFullOrUnavailable(ECamMediaStoragePhone) && + !iController.IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage ) ) + { + supportedMemTypes |= AknCommonDialogsDynMem::EMemoryTypePhone; + } + if(currentLocation != ECamMediaStorageCard && + !IsMemoryFullOrUnavailable(ECamMediaStorageCard)) + { + supportedMemTypes |= AknCommonDialogsDynMem::EMemoryTypeMMCExternal; + } + if(currentLocation != ECamMediaStorageMassStorage && + !IsMemoryFullOrUnavailable(ECamMediaStorageMassStorage)) + { supportedMemTypes |= AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; } @@ -5312,6 +5331,11 @@ iViewFinderStopped = ETrue; } + if ( iStartupLogoController ) + { + iStartupLogoController->ShowLogo(); + } + PRINT( _L("Camera <= CCamAppUi::InternalExitL") ); OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP_CCAMAPPUI_INTERNALEXITL, "e_CCamAppUi_InternalExitL 0" ); @@ -8315,7 +8339,10 @@ // TBool CCamAppUi::AllMemoriesFullOrUnavailable() const { - return ( IsMemoryFullOrUnavailable(ECamMediaStoragePhone) && + TBool phoneMemoryUnavailable = iController.IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage)? + ETrue: + IsMemoryFullOrUnavailable(ECamMediaStoragePhone); + return ( phoneMemoryUnavailable && IsMemoryFullOrUnavailable(ECamMediaStorageCard) && IsMemoryFullOrUnavailable(ECamMediaStorageMassStorage) ); } @@ -8476,6 +8503,11 @@ void CCamAppUi::SetViewFinderStoppedStatus( TBool aViewFinderStopped ) { iViewFinderStopped = aViewFinderStopped; + + if (iStartupLogoController) + { + iStartupLogoController->HideLogo(); + } } // ----------------------------------------------------------------------------- @@ -8500,9 +8532,8 @@ // CCamAppUi::CheckMemoryAvailableForCapturing // ----------------------------------------------------------------------------- // -void -CCamAppUi::CheckMemoryAvailableForCapturing() - { +void CCamAppUi::CheckMemoryAvailableForCapturing() + { PRINT( _L("Camera => CCamAppUi::CheckMemoryAvailableForCapturing") ) OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, CCAMAPPUI_CHECKMEMORYAVAILABLEFORCAPTURING, "e_CCamAppUi_CheckMemoryAvailableForCapturing 1" ); if ( ( ECamControllerVideo == iController.CurrentMode() || @@ -8523,11 +8554,19 @@ // ----------------------------------------------------------------------------- // CCamAppUi::IsMemoryAvailableForCapturing // ----------------------------------------------------------------------------- -// -TBool -CCamAppUi::IsMemoryAvailableForCapturing() const +// +TBool CCamAppUi::IsMemoryAvailableForCapturing() const { return iMemoryAvailableForCapturing; } - + +// ----------------------------------------------------------------------------- +// CCamAppUi::StartupLogoController +// ----------------------------------------------------------------------------- +// +CCamStartupLogoController* CCamAppUi::StartupLogoController() + { + return iStartupLogoController; + } + // End of File diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp --- a/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -715,8 +715,18 @@ // initialise AIW services for touch menu iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, R_CAM_MOVE_TO_STILL_IMAGE_SEQUENCE_INTEREST ); - iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, - R_CAM_SET_AS_CALL_IMAGE_INTEREST ); + + if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) ) + { + iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, + R_CAM_SET_AS_CALL_IMAGE_INTEREST_EDITOR ); + } + else + { + iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, + R_CAM_SET_AS_CALL_IMAGE_INTEREST ); + } + iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, R_CAM_SHARE_ON_OVI_INTEREST ); // SHARE_AIW diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -325,7 +325,6 @@ CCamCaptureSetupSlider* self = new( ELeave ) CCamCaptureSetupSlider( aObserver, aSettingItem, aSteps, aFullySkinned ); - //ME:END CleanupStack::PushL( self ); self->ConstructL( aParent ); CleanupStack::Pop( self ); @@ -643,7 +642,7 @@ { // Set the shaft layout and icon size for Contrast slider iShaftLayout.LayoutRect( sliderRect, - AknLayoutScalable_Apps::cset_slider_pane( 5 ) ); + AknLayoutScalable_Apps::cset_slider_pane( 7 ) ); // set Contrast slider legend layouts TouchContrastLayoutL( sliderRect ); } @@ -1001,7 +1000,7 @@ // void CCamCaptureSetupSlider::HandlePointerEventL(const TPointerEvent& aPointerEvent) { - if(!Rect().Contains(aPointerEvent.iPosition)) + if( !Rect().Contains(aPointerEvent.iPosition) && iBitmapThumbCurrent != iBitmapThumbSelected ) { return; } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -160,6 +160,7 @@ } else if ( iInfoListBoxActive ) { + iController.CancelPreviewChangesL(); ExitAllModesL(); break; } @@ -684,6 +685,7 @@ appUi->SetToolbarVisibility(); + iForceAvkonCBA = ETrue; UpdateCbaL(); SetTitlePaneTextL(); appUi->PushDefaultNaviPaneL(); @@ -843,11 +845,11 @@ // void CCamCaptureSetupViewBase::ExitSceneSettingModeL() { - PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) ); - + PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitSceneSettingModeL" ) ); + iForceAvkonCBA = EFalse; if ( !iSceneSettingModeActive ) - { - AppUi()->RemoveFromStack( iSceneSettingContainer ); + { + AppUi()->RemoveFromStack( iSceneSettingContainer ); if ( iSceneSettingContainer ) { @@ -919,6 +921,7 @@ // Cleanup the view correctly if a leave occurs CleanupStack::PushL( TCleanupItem( CleanupExit, this ) ); AppUi()->AddToStackL( *this, iContainer ); + iController.SetViewfinderWindowHandle( &iContainer->Window() ); PRINT( _L( "Camera => CCamCaptureSetupViewBase::ExitInfoListBoxL removing iInfoListBoxContainer" ) ); AppUi()->RemoveFromStack( iInfoListBoxContainer ); delete iInfoListBoxContainer; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp --- a/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -246,8 +246,8 @@ iFeedback->SetFeedbackArea( iListBox, 0, iListBox->Rect(), ETouchFeedbackBasic, ETouchEventStylusDown ); } - - PRINT(_L("Camera <= CCamInfoListBoxContainer::ConstructL") ) + iController.SetViewfinderWindowHandle( &Window() ); + PRINT(_L("Camera <= CCamInfoListBoxContainer::ConstructL") ) } // --------------------------------------------------------------------------- @@ -468,11 +468,18 @@ aPointerEvent.iType, aPointerEvent.iPosition.iX, aPointerEvent.iPosition.iY ); - iListBox->HandlePointerEventL(aPointerEvent); + if( !iController.IsViewFinding() && !iSkinnedBackGround ) { - ReserveAndStartVF(); + PRINT ( _L("Camera <> CCamInfoListBoxContainer::HandlePointerEventL start viewfinder") ); + ReserveAndStartVF(); } + else + { + PRINT ( _L("Camera <> CCamInfoListBoxContainer::HandlePointerEventL handle selected item") ); + iListBox->HandlePointerEventL(aPointerEvent); + } + /*TInt oldListItemIndex = -1; TInt newListItemIndex = -1; TBool handleItemActivation = EFalse; @@ -581,6 +588,8 @@ case EEventItemClicked: case EEventItemSingleClicked: { + TInt settingValue = CurrentSettingItemValue(); + iController.PreviewSettingChangeL( ECamSettingItemDynamicPhotoLightSensitivity, settingValue ); ShowTooltipL(); } break; @@ -607,7 +616,13 @@ iTooltipController->HideInfoPopupNote(); iTooltipController->SetTextL( *iDescArray[iListBox->CurrentItemIndex()] ); - iTooltipController->SetPositionByHighlight( iListBox->HighlightRect() ); + TRect hl = iListBox->HighlightRect(); + TPoint tt = hl.Center(); + if ( AknLayoutUtils::LayoutMirrored() ) + { + tt.iX -= hl.Width(); + } + iTooltipController->SetPositionAndAlignment( tt, EHLeftVBottom ); iTooltipIndex = iListBox->CurrentItemIndex(); } @@ -704,21 +719,14 @@ } else { - iListboxLayoutRect.LayoutRect( wholeListboxLayoutRect.Rect(), - AknLayoutScalable_Apps::main_cset_list_pane( 1 ) ); + iListboxLayoutRect.LayoutRect( iLayoutAreaRect, + AknLayoutScalable_Apps::main_cset_listscroll_pane( 2 ) ); //Same as WB } - - if( !iSkinnedBackGround ) - { - iTitleTextRectLayout.LayoutText( iLayoutAreaRect, AknLayoutScalable_Apps::main_cset_text_pane_t1( 0 ) ); - } - else - { + iTitleTextRectLayout.LayoutText( iLayoutAreaRect, AknLayoutScalable_Apps::main_cam_set_pane_t1( 3 ) ); - } - return wholeListboxLayoutRect.Rect(); + return iListboxLayoutRect.Rect(); } // -------------------------------------------------------------------------- diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp --- a/camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -537,7 +537,11 @@ if (ECamMediaStorageMassStorage ==iStorageLocation) { - iStorageLocation = iController.ExistMassStorage()?ECamMediaStorageMassStorage:ECamMediaStoragePhone; + iStorageLocation = iController.ExistMassStorage()? + ECamMediaStorageMassStorage: + iController.IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage )? + ECamMediaStorageNone: + ECamMediaStoragePhone; } } @@ -893,21 +897,33 @@ { 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; - } + switch( iStorageLocation ) + { + case ECamMediaStoragePhone: + { + icon = iPhoneIcon; + mask = iPhoneIconMask; + } + break; + case ECamMediaStorageMassStorage: + { + icon = iMassStorageIcon; + mask = iMassStorageIconMask; + } + break; + case ECamMediaStorageCard: + { + icon = iMMCIcon; + mask = iMMCIconMask; + } + break; + case ECamMediaStorageNone: + default: + { + //TODO: Get icons when none is available + } + break; + } // Should use layout aBmpGc.BitBlt(TPoint(0,0), icon); aBmpMaskGc.BitBlt(TPoint(0,0), mask); @@ -923,21 +939,38 @@ { CFbsBitmap* icon = NULL; CFbsBitmap* mask = NULL; - if ( iStorageLocation == ECamMediaStoragePhone ) - { - icon = iPhoneIcon; - mask = iPhoneIconMask; - } - else if ( iStorageLocation == ECamMediaStorageMassStorage ) + switch( iStorageLocation ) { - icon = iMassStorageIcon; - mask = iMassStorageIconMask; + case ECamMediaStoragePhone: + { + icon = iPhoneIcon; + mask = iPhoneIconMask; + } + break; + case ECamMediaStorageMassStorage: + { + icon = iMassStorageIcon; + mask = iMassStorageIconMask; + } + break; + case ECamMediaStorageCard: + { + icon = iMMCIcon; + mask = iMMCIconMask; + } + break; + case ECamMediaStorageNone: + default: + { + //TODO: Get icons when none is available + } + break; } - else - { - icon = iMMCIcon; - mask = iMMCIconMask; - } + + if( icon == NULL || mask == NULL) + { + return; + } if ( iMode == ECamControllerVideo ) { @@ -1250,7 +1283,10 @@ if (ECamMediaStorageMassStorage ==iStorageLocation) { - iStorageLocation = iController.ExistMassStorage()?ECamMediaStorageMassStorage:ECamMediaStoragePhone; + TCamMediaStorage storage = iController.IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage )? + ECamMediaStorageNone: + ECamMediaStoragePhone; + iStorageLocation = iController.ExistMassStorage()?ECamMediaStorageMassStorage:storage; } UpdateCounter(); @@ -1312,7 +1348,10 @@ if (ECamMediaStorageMassStorage ==iStorageLocation) { - iStorageLocation = iController.ExistMassStorage()?ECamMediaStorageMassStorage:ECamMediaStoragePhone; + TCamMediaStorage storage = iController.IntegerSettingValue( ECamSettingItemRemovePhoneMemoryUsage )? + ECamMediaStorageNone: + ECamMediaStoragePhone; + iStorageLocation = iController.ExistMassStorage()?ECamMediaStorageMassStorage:storage; } } BroadcastEvent( ECamObserverEventNaviModelUpdated ); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamNaviProgressBarModel.cpp --- a/camerauis/cameraapp/generic/src/CamNaviProgressBarModel.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamNaviProgressBarModel.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -344,21 +344,33 @@ 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; - } + switch( iStorageLocation ) + { + case ECamMediaStoragePhone: + { + icon = iPhoneIcon; + mask = iPhoneIconMask; + } + break; + case ECamMediaStorageMassStorage: + { + icon = iMassStorageIcon; + mask = iMassStorageIconMask; + } + break; + case ECamMediaStorageCard: + { + icon = iMMCIcon; + mask = iMMCIconMask; + } + break; + case ECamMediaStorageNone: + default: + { + //TODO: Get icons when none is available + } + break; + } DrawElapsedTimeText( aGc ); DrawRemainingTimeText( aGc, skin ); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp --- a/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -294,14 +294,21 @@ } // Draw the current image - snapshot or thumbnail CWindowGc& gc = SystemGc(); - gc.SetFaded( EFalse ); - - gc.SetBrushColor( KRgbBlack ); - gc.Clear(); - const CFbsBitmap* snapshot = iController.SnapshotImage(); TRect containerRect = Rect(); + TBool lateOperation = ( ECamCapturing == iController.CurrentOperation() + || ECamCompleting == iController.CurrentOperation() ); + + if ( iView.Id().iUid != ECamViewIdVideoPostCapture && + ( iController.ActiveCamera() != ECamActiveCameraSecondary || + lateOperation ) ) + { + gc.SetFaded( EFalse ); + gc.SetBrushColor( KRgbBlack ); + gc.Clear( iProcessingTextLayout.TextRect() ); + } + // If snapshot contains a bitmap if ( snapshot ) { @@ -341,30 +348,26 @@ OstTrace0( CAMERAAPP_PERFORMANCE, DUP1_CCAMPOSTCAPTURECONTAINER_DRAW, "e_CAM_APP_SNAPSHOT_DRAW 0" ); //CCORAPP_SNAPSHOT_DRAW_END } - TBool lateOperation = ( ECamCapturing == iController.CurrentOperation() - || ECamCompleting == iController.CurrentOperation() ); - - if( iProcessingText && //iProcessingBg && - iController.ActiveCamera() != ECamActiveCameraSecondary && - lateOperation - ) - { - PRINT( _L("Camera <> CCamPostCaptureContainer: draw processing text..") ); - // When iProcessingText exists (and we are in correct state), the processing - // image text needs to be drawn. - //iProcessingBg->Draw( gc, Rect() ); + if( iProcessingText && //iProcessingBg && + iController.ActiveCamera() != ECamActiveCameraSecondary && + lateOperation ) + { + PRINT( _L("Camera <> CCamPostCaptureContainer: draw processing text..") ); + // When iProcessingText exists (and we are in correct state), the processing + // image text needs to be drawn. + //iProcessingBg->Draw( gc, Rect() ); - gc.SetBrushColor( KRgbWhite ); - gc.SetBrushStyle( CGraphicsContext::ENullBrush ); - iProcessingTextLayout.DrawText( gc, *iProcessingText, ETrue, KRgbBlack ); - } + gc.SetBrushColor( KRgbWhite ); + gc.SetBrushStyle( CGraphicsContext::ENullBrush ); + iProcessingTextLayout.DrawText( gc, *iProcessingText, ETrue, KRgbBlack ); + } if( iBatteryPaneController ) { if( iPaneInUse == ECamPaneCounter ) - { - iNaviCounterControl->DrawNaviCtr( gc ); - } + { + iNaviCounterControl->DrawNaviCtr( gc ); + } // Draw the battery pane iBatteryPaneController->Draw( gc ); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -993,7 +993,8 @@ { state->SetHelpTextL( iOneClickUploadUtility->ButtonTooltipL() ); - + + iOneClickUploadUtility->UpdateUploadIcon( toolbar, iController.CurrentMode() ); } } button = dynamic_cast(toolbar->ControlOrNull( ECamCmdEdit )); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamPreCaptureContainerBase.cpp --- 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(); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1779,7 +1779,8 @@ PRINT( _L("Camera => CCamPreCaptureViewBase::HandleTouchGestureL") ); // Skipped modes here - if ( iController.ActiveCamera() == ECamActiveCameraSecondary ) + if ( ( iController.ActiveCamera() == ECamActiveCameraSecondary ) || + ( ECamNoOperation != iController.CurrentOperation() ) ) { PRINT( _L("Camera <= CCamPreCaptureViewBase::HandleTouchGestureL") ); return; @@ -1800,6 +1801,11 @@ // level between top widescreen and vga levels CCamPreCaptureContainerBase* container = static_cast( iContainer ); container->BlinkResolutionIndicatorOnChange( ETrue ); + + // Hide the zoom pane in case of pinch + CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); + appUi->ZoomPane()->MakeVisible( EFalse, ETrue ); + if ( iController.ToggleWideScreenQuality( wide ) ) { iLastMovement = currMove; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamSettingsModel.cpp --- a/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -2396,7 +2396,7 @@ { PRINT( _L("Camera => CCamSettingsModel::SetUserSceneDefault ") ); TInt settingsCount = iDynamicPhotoIntSettings.Count(); - TInt userVal; + TInt userVal = 0; for ( TInt i = 0; i < settingsCount; ++i ) { if ( iDynamicPhotoIntSettings[i]->iItemId == ECamSettingItemDynamicPhotoScene ) diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -340,9 +340,18 @@ // SHARE_AIW iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), R_CAM_AIW_VIEW_INTEREST ); + + if ( iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport) ) + { + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), + R_CAM_SET_AS_CALL_IMAGE_INTEREST_EDITOR ); + } + else + { + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), + R_CAM_SET_AS_CALL_IMAGE_INTEREST ); + } - iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), - R_CAM_SET_AS_CALL_IMAGE_INTEREST ); OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMSTILLPOSTCAPTUREVIEW_DOACTIVATEL, "e_CCamStillPostCaptureView_DoActivateL 0" ); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -309,6 +309,14 @@ PRINT( _L("Camera <> CCamStillPreCaptureView::HandleForegroundEventL: to foreground") ); PRINT1( _L("Camera <> CCamStillPreCaptureView .. Current controller operation [%s]"), KCamCaptureOperationNames[iController.CurrentOperation()] ); PRINT1( _L("Camera <> CCamStillPreCaptureView .. Current controller mode [%s]"), KCamModeNames[iController.CurrentMode()] ); + if( ECamViewStateStandby == appUi->CurrentViewState() ) + { + CAknToolbar* fixedToolbar = appUi->CurrentFixedToolbar(); + if( fixedToolbar ) + { + fixedToolbar->SetToolbarVisibility( EFalse ); + } + } if( iController.SequenceCaptureInProgress() ) @@ -1275,7 +1283,7 @@ UpdateToolbarIconsL(); if( aToolbar ) { - if ( iEmbedded && appUi->IsSecondCameraEnabled() ) + if ( iEmbedded /* && appUi->IsSecondCameraEnabled()*/ ) { aToolbar->SetItemDimmed(ECamCmdNewVideo, ETrue, ETrue); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -131,7 +131,7 @@ break; case ECamCmdCaptureSetupLightSensitivityUser: { - SwitchToInfoListBoxL( EInfoListBoxModeISO, ETrue ); + SwitchToInfoListBoxL( EInfoListBoxModeISO, EFalse );//No skin } break; // If capture setup menu is active and user presses softkey cancel, @@ -448,7 +448,7 @@ } else { - SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_CANCEL ); + SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT );//color etc. } } else if ( iSceneSettingModeActive ) @@ -462,12 +462,9 @@ } else if ( iInfoListBoxActive ) { - SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); - if( iForceAvkonCBA ) - { - EikSoftkeyPostingTransparency::MakeTransparent( - *ViewCba(), EFalse ); - } + SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT ); + EikSoftkeyPostingTransparency::MakeTransparent( + *ViewCba(), !iForceAvkonCBA ); } // if the view is user scene setup else @@ -517,7 +514,7 @@ StatusPane()->MakeVisible( ETrue ); // Update the command button array. - iForceAvkonCBA=ETrue; + iForceAvkonCBA=EFalse; UpdateCbaL(); SetTitlePaneTextL(); PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL()") ); @@ -544,7 +541,7 @@ // Remove the view's main container, and add the capture setup // control associated with the input command to the container stack. - CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( aSetupCommand, EFalse ); + CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( aSetupCommand, ETrue ); StatusPane()->MakeVisible( EFalse ); PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL()") ); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -308,8 +308,16 @@ { } } - iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), - R_CAM_SET_AS_RING_TONE_INTEREST ); + if ( iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport) ) + { + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), + R_CAM_SET_AS_RING_TONE_INTEREST_EDITOR ); + } + else + { + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), + R_CAM_SET_AS_RING_TONE_INTEREST ); + } } // --------------------------------------------------------------------------- diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp --- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -288,8 +288,9 @@ // Handle events sending app to foreground and background // --------------------------------------------------------- -void CCamVideoPreCaptureContainer::HandleForegroundEventL( TBool /*aForeground*/ ) +void CCamVideoPreCaptureContainer::HandleForegroundEventL( TBool aForeground ) { + CCamPreCaptureContainerBase::HandleForegroundEventL( aForeground ); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -1002,7 +1002,7 @@ { // Create the scene setting container for video mode. iSceneSettingContainer = CCamShootingModeContainer::NewL( AppUi()->ApplicationRect(), - EFalse, //Notskinned background + ETrue, //Skinned background *this, ECamControllerVideo, iController, @@ -1030,7 +1030,7 @@ RemoveCaptureSetupMenuContainers(); // Stop the viewfinder as it isn't required for scene settings - //StopViewFinder(); + StopViewFinder(); } @@ -1189,7 +1189,7 @@ UpdateToolbarIconsL(); if( aToolbar ) { - if ( iEmbedded && appUi->IsSecondCameraEnabled() ) + if ( iEmbedded /* && appUi->IsSecondCameraEnabled()*/ ) { aToolbar->SetItemDimmed(ECamCmdNewPhoto, ETrue, ETrue); } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/audioplayer/camaudioplayerwrapper.cpp --- a/camerauis/cameraapp/generic/src/audioplayer/camaudioplayerwrapper.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/audioplayer/camaudioplayerwrapper.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -37,7 +37,7 @@ // =========================================================================== // Constants - +const TReal32 KCamSoundVol = 0.75f; // Migrated directly from old sound player. #ifndef __WINSCW__ static const TUint KAudioPriority = KAudioPriorityCameraTone; @@ -136,6 +136,7 @@ iPlayRequested = EFalse; iState = CCamAudioPlayerWrapper::EPlaying; iCallback = aCallback; + iPlayer->SetVolume( static_cast( iPlayer->MaxVolume()* KCamSoundVol ) ); iPlayer->Play(); break; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -4027,7 +4027,6 @@ { SetFlags( iInfo.iState, ECamPowerOn|ECamReserved ); - TRAP_IGNORE( SetFaceTrackingL() ); #if defined( CAMERAAPP_CAE_FOR_VIDEO ) && !defined( CAMERAAPP_CAE_FIX ) // We need to tell to CCaeEngine that the CCamera has been reserved // and powered on "behind its back". @@ -4931,9 +4930,17 @@ notify = EFalse; proceedSequence = ETrue; PRINT1( _L( "Camera <> CCamCameraController::HandleCallbackEvent - %d reserve try again left" ), iReserveTryAgainCount ); - } - else + else if(KErrBadName == aStatus && + iSequenceIndex >= 0 && + Request2Event( iSequenceArray[iSequenceIndex] ) == aEventId) + { + aStatus = KErrNone; + notify = ETrue; + proceedSequence = ETrue; + //EndSequence( aStatus ); + } + else { notify = EFalse; diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp --- a/camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -32,7 +32,7 @@ #include "Cam.hrh" #include -#include "camutility.h" +#include "CamUtility.h" const TUid KShareOnlineCrUid = { 0x2002CC1F }; const TUint32 KShareCrApplicationVersion = 0x01010020; @@ -391,6 +391,8 @@ { delete iIconImage; delete iIconMask; + iIconImage = NULL; + iIconMask = NULL; iIconImage = new (ELeave) CFbsBitmap; iIconImage->Duplicate( aBitmap->Handle() ); diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/camstartuplogo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/src/camstartuplogo.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,215 @@ +/* +* Copyright (c) 2010 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: CCoeControl to show a logo at camera application startup +* +*/ + +#include +#include +#include +#include +#include +#include "camlogging.h" +#include "camstartuplogo.h" + +_LIT(KCamBitmapFile, "z:\\resource\\apps\\cameraapp.mif"); + +// --------------------------------------------------------------------------- +// Two-phased constructor +// --------------------------------------------------------------------------- +// +CCamStartupLogo* CCamStartupLogo::NewL(CCamStartupLogoController& aController, + const TRect& aRect) + { + PRINT(_L("Camera => CCamStartupLogo::NewL")) + CCamStartupLogo* self = new (ELeave) CCamStartupLogo(aController, aRect); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + + PRINT(_L("Camera <= CCamStartupLogo::NewL")) + return self; + } + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CCamStartupLogo::CCamStartupLogo(CCamStartupLogoController& aController, + const TRect& aRect) + : iRect(aRect), iController(aController) + { + // No implementation needed + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CCamStartupLogo::~CCamStartupLogo() + { + iController.RemoveObserver(this); + + delete iLogo; + delete iLogoMask; + } + +// --------------------------------------------------------------------------- +// 2nd phase constructor +// --------------------------------------------------------------------------- +// +void CCamStartupLogo::ConstructL() + { + PRINT(_L("Camera => CCamStartupLogo::ConstructL")) + + iController.AddObserver(this); + + if (iController.State() == EStartupLogoVisible) + { + ShowL(); + } + + PRINT(_L("Camera <= CCamStartupLogo::ConstructL")) + } + +// --------------------------------------------------------------------------- +// CCamStartupLogo::StartupLogoControllerStateChanged +// --------------------------------------------------------------------------- +// +void CCamStartupLogo::StartupLogoControllerStateChanged( + TStartupLogoState aNewState) + { + PRINT(_L("Camera => CCamStartupLogo::StartupLogoControllerStateChanged")) + + if (aNewState == EStartupLogoNotVisible) + { + Hide(); + } + else if (aNewState == EStartupLogoVisible) + { + TRAP_IGNORE(ShowL()); + } + else + { + PRINT(_L("Camera <> StartupLogoControllerStateChanged - unknown state")) + } + + PRINT(_L("Camera <= CCamStartupLogo::StartupLogoControllerStateChanged")) + } + +// --------------------------------------------------------------------------- +// CCamStartupLogo::ShowL +// --------------------------------------------------------------------------- +// +void CCamStartupLogo::ShowL() + { + PRINT(_L("Camera => CCamStartupLogo::ShowL")) + + if (!iLogo || !iLogoMask) + { + delete iLogo; + iLogo = NULL; + delete iLogoMask; + iLogoMask = NULL; + + TTime t0; + t0.UniversalTime(); + + AknIconUtils::CreateIconL(iLogo, + iLogoMask, + KCamBitmapFile, + EMbmCameraappQgn_menu_cams, + EMbmCameraappQgn_menu_cams_mask); + + TSize logoSize(iRect.Size().iWidth/2, iRect.Size().iHeight/2); + AknIconUtils::SetSize(iLogo, logoSize); + + TTime t1; + t1.UniversalTime(); + + PRINT1(_L("Camera <> Startup icon load took %d us"), I64LOW(t1.MicroSecondsFrom(t0).Int64())) + } + + if (!iWindowCreated) + { + CreateWindowL(); + iWindowCreated = ETrue; + } + + if (!IsActivated()) + { + ActivateL(); + } + + SetExtentToWholeScreen(); + + MakeVisible(ETrue); + RDrawableWindow* window = DrawableWindow(); + if (window) + { + window->SetOrdinalPosition(0); + } + + PRINT(_L("Camera <= CCamStartupLogo::ShowL")) + } + +// --------------------------------------------------------------------------- +// CCamStartupLogo::Hide +// --------------------------------------------------------------------------- +// +void CCamStartupLogo::Hide() + { + PRINT(_L("Camera => CCamStartupLogo::Hide")) + + MakeVisible(EFalse); + + if (iWindowCreated) + { + CloseWindow(); + iWindowCreated = EFalse; + } + + delete iLogo; + iLogo = NULL; + delete iLogoMask; + iLogoMask = NULL; + + PRINT(_L("Camera <= CCamStartupLogo::Hide")) + } + +// --------------------------------------------------------------------------- +// CCamStartupLogo::Draw +// --------------------------------------------------------------------------- +// +void CCamStartupLogo::Draw(const TRect& /*aRect*/) const + { + PRINT(_L("Camera <> CCamStartupLogo::Draw")) + + CWindowGc& gc = SystemGc(); + + gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); + gc.SetBrushColor(TRgb::Color16MA(0xFF000000)); // opaque black + gc.SetPenStyle(CGraphicsContext::ENullPen); + gc.SetBrushStyle(CGraphicsContext::ESolidBrush); + gc.DrawRect(Rect()); + + if (iLogo && iLogoMask) + { + TSize logoSize(iLogo->SizeInPixels()); + TPoint logoTl(iRect.Center().iX - logoSize.iWidth / 2, + iRect.Center().iY - logoSize.iHeight / 2); + gc.BitBltMasked(logoTl, iLogo, TRect(logoSize), iLogoMask, EFalse); + } + } + diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/generic/src/camstartuplogocontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/src/camstartuplogocontroller.cpp Wed Mar 31 21:06:44 2010 +0300 @@ -0,0 +1,184 @@ +/* +* Copyright (c) 2010 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: Controller for managing the camera startup logo state +* +*/ + +#include "camstartuplogocontroller.h" +#include "camlogging.h" + +// Maximum time the logo can be shown +const TInt KCamFailSafeTimeout = 5000000; // 5 seconds + +// --------------------------------------------------------------------------- +// C++ constructor +// --------------------------------------------------------------------------- +// +CCamStartupLogoController::CCamStartupLogoController(TStartupLogoState aInitialState) + : iState(aInitialState) + { + // No implementation required + PRINT( _L("Camera <> CCamStartupLogoController::CCamStartupLogoController") ); + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CCamStartupLogoController::~CCamStartupLogoController() + { + PRINT( _L("Camera <> CCamStartupLogoController::~CCamStartupLogoController") ); + delete iFailSafeTimer; + } + +// --------------------------------------------------------------------------- +// Two-phased constructor +// --------------------------------------------------------------------------- +// +CCamStartupLogoController* CCamStartupLogoController::NewLC(TStartupLogoState aInitialState) + { + CCamStartupLogoController* self = + new (ELeave) CCamStartupLogoController(aInitialState); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// Two-phased constructor +// --------------------------------------------------------------------------- +// +CCamStartupLogoController* CCamStartupLogoController::NewL( + TStartupLogoState aInitialState) + { + CCamStartupLogoController* self = CCamStartupLogoController::NewLC(aInitialState); + CleanupStack::Pop(self); + return self; + } + +// --------------------------------------------------------------------------- +// 2nd phase constructor +// --------------------------------------------------------------------------- +// +void CCamStartupLogoController::ConstructL() + { + iFailSafeTimer = CPeriodic::NewL(0); + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::AddObserver +// --------------------------------------------------------------------------- +// +TInt CCamStartupLogoController::AddObserver( + MCamStartupLogoControllerObserver* aObserver) + { + return iObservers.Append(aObserver); + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::RemoveObserver +// --------------------------------------------------------------------------- +// +void CCamStartupLogoController::RemoveObserver( + MCamStartupLogoControllerObserver* aObserver) + { + TInt index = iObservers.Find(aObserver); + if (index >= 0) + { + iObservers.Remove(index); + } + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::State +// --------------------------------------------------------------------------- +// +TStartupLogoState CCamStartupLogoController::State() const + { + return iState; + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::ShowLogo +// --------------------------------------------------------------------------- +// +void CCamStartupLogoController::ShowLogo() + { + PRINT(_L("Camera <> CCamStartupLogoController::ShowLogo")); + + if (iFailSafeTimer) + { + iFailSafeTimer->Cancel(); + iFailSafeTimer->Start(TTimeIntervalMicroSeconds32(KCamFailSafeTimeout), + TTimeIntervalMicroSeconds32(KCamFailSafeTimeout), + TCallBack(FailSafeCallback, this)); + } + + SetState(EStartupLogoVisible); + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::HideLogo +// --------------------------------------------------------------------------- +// +void CCamStartupLogoController::HideLogo() + { + PRINT(_L("Camera <> CCamStartupLogoController::HideLogo")); + + // Hide immediately + SetState(EStartupLogoNotVisible); + if (iFailSafeTimer) + { + iFailSafeTimer->Cancel(); + } + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::SetState +// --------------------------------------------------------------------------- +// +void CCamStartupLogoController::SetState(TStartupLogoState aNewState) + { + PRINT1(_L("Camera => CCamStartupLogoController::SetState %d"), aNewState); + + if (iState != aNewState) + { + iState = aNewState; + for (TInt i=0; iStartupLogoControllerStateChanged(aNewState); + } + } + PRINT1(_L("Camera <= CCamStartupLogoController::SetState %d"), aNewState); + } + +// --------------------------------------------------------------------------- +// CCamStartupLogoController::FailSafeCallback +// --------------------------------------------------------------------------- +// +TInt CCamStartupLogoController::FailSafeCallback(TAny* ptr) + { + PRINT(_L("Camera <> CCamStartupLogoController::FailSafeCallback")); + + CCamStartupLogoController* self = static_cast(ptr); + if (self) + { + self->HideLogo(); + if (self->iFailSafeTimer) + { + self->iFailSafeTimer->Cancel(); + } + } + return 0; + } diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/help/data/xhtml.zip Binary file camerauis/cameraapp/help/data/xhtml.zip has changed diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/help/inc/lcam.hlp.hrh --- a/camerauis/cameraapp/help/inc/lcam.hlp.hrh Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/help/inc/lcam.hlp.hrh Wed Mar 31 21:06:44 2010 +0300 @@ -23,8 +23,8 @@ #define __LCAM_HLP_HRH__ _LIT(KLCAM_HLP_VIEWFINDER_PHOTO, "LCAM_HLP_VIEWFINDER_PHOTO"); // -_LIT( KLCAM_HLP_STANDBY_STATE, "LCAM_HLP_STANDYBY_STATE" ); //Camera standby view -_LIT( KLCAM_HLP_ADVANCED_SEQUENCE, "LCAM_HLP_ADVANCED_SEQUENCE" ); // Advanced sequence mode setting page. - obsolete +_LIT(KLCAM_HLP_STANDBY_STATE, "LCAM_HLP_STANDYBY_STATE"); //Camera standby view +_LIT(KLCAM_HLP_ADVANCED_SEQUENCE, "LCAM_HLP_ADVANCED_SEQUENCE"); // Advanced sequence mode setting page. - obsolete _LIT(KLCAM_HLP_CUST_TOOLBAR, "LCAM_HLP_CUST_TOOLBAR"); // _LIT(KLCAM_HLP_LIGHT_SENSITIVITY, "LCAM_HLP_LIGHT_SENSITIVITY"); // _LIT(KLCAM_HLP_SETTINGS_PHOUSER, "LCAM_HLP_SETTINGS_PHOUSER"); // @@ -35,10 +35,11 @@ _LIT(KLCAM_HLP_SCENES_VIDEO, "LCAM_HLP_SCENES_VIDEO"); // _LIT(KLCAM_HLP_SETTINGS_VIDEO, "LCAM_HLP_SETTINGS_VIDEO"); // _LIT(KLCAM_HLP_VIEWFINDER_VIDEO_EM, "LCAM_HLP_VIEWFINDER_VIDEO_EM"); // -_LIT(KLCAM_HLP_STANDYBY_EM, "LCAM_HLP_STANDYBY_EM"); // +_LIT(KLCAM_HLP_STANDBY_EM, "LCAM_HLP_STANDBY_EM"); // _LIT(KLCAM_HLP_POST_VIDEO, "LCAM_HLP_POST_VIDEO"); // _LIT(KLCAM_HLP_VIEWFINDER_PHOTO_EM, "LCAM_HLP_VIEWFINDER_PHOTO_EM"); // _LIT(KLCAM_HLP_POST_PHOTO, "LCAM_HLP_POST_PHOTO"); // _LIT(KLCAM_HLP_POST_SEQ, "LCAM_HLP_POST_SEQ"); // +_LIT(KLCAM_HLP_STANDYBY_EM, "LCAM_HLP_STANDYBY_EM"); // #endif \ No newline at end of file diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/loc/cam.loc --- a/camerauis/cameraapp/loc/cam.loc Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/loc/cam.loc Wed Mar 31 21:06:44 2010 +0300 @@ -4246,5 +4246,11 @@ // #define qtn_lcam_shuttersound_off "Off" +//d: This popup note is displayed when both the mass storage +//d: and memory card become inaccessible. For instance when +//d: USB is connected in mass torage mode +//l: popup_note_window +#define qtn_lcam_storage_inaccessible_note "All storage inaccessible at the moment. Please try again later" + // end of file diff -r 8c55c525d5d7 -r d486e5e3cc9a camerauis/cameraapp/rom/cameraapp.iby --- a/camerauis/cameraapp/rom/cameraapp.iby Mon Mar 15 12:39:00 2010 +0200 +++ b/camerauis/cameraapp/rom/cameraapp.iby Wed Mar 31 21:06:44 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -58,8 +58,5 @@ // Stub sis file data=ZSYSTEM\install\cameraapp_stub.sis System\Install\cameraapp_stub.sis -// Backup registration -data = ZPRIVATE\2001B29B\backup_registration.xml private\2001B29B\backup_registration.xml - #endif // CAMERAAPP_IBY diff -r 8c55c525d5d7 -r d486e5e3cc9a package_definition.xml --- a/package_definition.xml Mon Mar 15 12:39:00 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -