--- a/camerauis/cameraapp/build/iconlist.txt Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/build/iconlist.txt Wed Apr 14 15:41:04 2010 +0300
@@ -163,3 +163,5 @@
-c8,8 qgn_bg_lcam_vid_postcap_play_pressed.svg
-c8,1 qgn_indi_mg_tb_edit.svg
-c8,8 qgn_menu_cams.svg
+-c8,1 qgn_indi_vid4_tb_still.svg
+-c8,1 qgn_indi_vid4_tb_video.svg
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamQualitySettingContainer.h Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamQualitySettingContainer.h Wed Apr 14 15:41:04 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"
@@ -284,8 +284,6 @@
CGSCamQualitySettingSlider* iSlider;
// The current capture mode (video/still)
TCamCameraMode iMode;
- // The current storage location
- TCamMediaStorage iStorageLocation;
// Array of supported qualities
RArray<TInt> iSupportedQualitiesArray;
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingContainer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamQualitySettingContainer.cpp Wed Apr 14 15:41:04 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"
@@ -66,12 +66,7 @@
iParent( aParent ),
iMode ( aMode )
{
- TInt key = (ECamControllerVideo == iMode)
- ? ECamSettingItemVideoMediaStorage
- : ECamSettingItemPhotoMediaStorage;
- // Get the total remaining record time from the controller
- iStorageLocation =
- static_cast<TCamMediaStorage>( iController.IntegerSettingValue( key ) );
+
}
// -----------------------------------------------------------------------------
@@ -565,10 +560,15 @@
//
void CGSCamQualitySettingContainer::DrawStorageIcon( CWindowGc& aGc ) const
{
+ TInt key = (ECamControllerVideo == iMode)
+ ? ECamSettingItemVideoMediaStorage
+ : ECamSettingItemPhotoMediaStorage;
+ TCamMediaStorage storageLocation =
+ static_cast<TCamMediaStorage>( iController.IntegerSettingValue( key ) );
CFbsBitmap* icon = NULL;
CFbsBitmap* mask = NULL;
- switch( iStorageLocation )
+ switch( storageLocation )
{
case ECamMediaStoragePhone:
{
--- a/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -283,9 +283,9 @@
layoutText.LayoutText( aActualItemRect, iTxtLayout );
// ...Pass the text to be drawn, into the text layout object
// ...and draw it.
- if( !iFullySkinned )
+ if( !iFullySkinned && !aItemIsCurrent )
{
- color=KRgbWhite;
+ color = KRgbWhite;
}
layoutText.DrawText( *iGc, iModel.ItemText( aItemIndex ),
@@ -319,9 +319,9 @@
layoutText.LayoutText( aActualItemRect, iTxtWithRbLayout );
// ...Pass the text to be drawn, into the text layout object
// ...and draw it.
- if( !iFullySkinned )
+ if( !iFullySkinned && !aItemIsCurrent )
{
- color=KRgbWhite;
+ color = KRgbWhite;
}
layoutText.DrawText( *iGc, iModel.ItemText( aItemIndex ), ETrue, color );
@@ -478,11 +478,15 @@
if ( control )
{
iGc->SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
- iGc->SetPenSize( TSize( 1, 1 ) );
- iGc->SetPenStyle( CGraphicsContext::EDottedPen );
+ iGc->SetPenColor( TRgb( 0x00ffffff, KToolBarExtensionBgAlpha ) );
+ iGc->SetPenStyle( CGraphicsContext::ENullPen );
iGc->SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) );
iGc->SetBrushStyle( CGraphicsContext::ESolidBrush );
- iGc->DrawRect( aActualItemRect );
+ iGc->DrawRect( aActualItemRect );
+ iGc->SetPenSize( TSize( 1, 3 ) );
+ iGc->SetPenStyle( CGraphicsContext::ESolidPen );
+ iGc->DrawLine( TPoint( aActualItemRect.iTl.iX ,
+ aActualItemRect.iBr.iY ), aActualItemRect.iBr );
}
}
// ---------------------------------------------------------
--- a/camerauis/cameraapp/generic/data/nhdcamsettings.rss Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/data/nhdcamsettings.rss Wed Apr 14 15:41:04 2010 +0300
@@ -1080,8 +1080,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
helptxt = qtn_lcam_tt_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -1157,8 +1157,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
helptxt = qtn_lcam_tt_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -1252,8 +1252,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -1330,8 +1330,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -1408,8 +1408,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
helptxt = qtn_lcam_tt_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -2303,8 +2303,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -2499,9 +2499,9 @@
{
AVKON_BUTTON_STATE
{
- bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpfile = CAMERAAPP_BITMAP_FILE;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
--- a/camerauis/cameraapp/generic/data/vgacamsettings.rss Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/data/vgacamsettings.rss Wed Apr 14 15:41:04 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -1081,8 +1081,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
helptxt = qtn_lcam_tt_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -1157,8 +1157,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
helptxt = qtn_lcam_tt_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -1231,9 +1231,9 @@
{
AVKON_BUTTON_STATE
{
- bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpfile = CAMERAAPP_BITMAP_FILE;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -1309,8 +1309,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
helptxt = qtn_lcam_tt_still_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -1632,8 +1632,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_video;
- bmpmask = EMbmCameraappQgn_indi_cam4_video_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_video;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_video_mask;
txt = qtn_lcam_tb_switch_video_mode;
extension = r_cam_ext_qgn_indi_cam4_video;
}
@@ -2378,8 +2378,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
txt = qtn_lcam_tb_switch_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
@@ -2536,8 +2536,8 @@
AVKON_BUTTON_STATE
{
bmpfile = CAMERAAPP_BITMAP_FILE;
- bmpid = EMbmCameraappQgn_indi_cam4_camera;
- bmpmask = EMbmCameraappQgn_indi_cam4_camera_mask;
+ bmpid = EMbmCameraappQgn_indi_vid4_tb_still;
+ bmpmask = EMbmCameraappQgn_indi_vid4_tb_still_mask;
txt = qtn_lcam_tb_switch_mode;
extension = r_cam_ext_qgn_indi_cam4_camera;
}
--- a/camerauis/cameraapp/generic/inc/CamZoomModel.h Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/CamZoomModel.h Wed Apr 14 15:41:04 2010 +0300
@@ -202,6 +202,13 @@
* @since 3.0
*/
void ResetZoomTo1x();
+
+ /***
+ * Use an external zoom multiplier factor to zoom quickly
+ * with lesser number of transitions
+ * @since 5.1
+ */
+ void SetZoomMultiplier( TInt aZoomStepMultiplier );
private:
@@ -387,6 +394,10 @@
// Max allowed zoom step (taking into account optical, digital and extended)
TInt iMaxZoomStep;
+
+ // Zoom step/jump multiplier for skipping some zoom levels
+ // (for quick zooming to max and min zoom levels)
+ TInt iZoomStepMultiplier;
// Stores the current state of the model, and the last-notified
// engine state.
--- a/camerauis/cameraapp/generic/inc/CamZoomPane.h Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/CamZoomPane.h Wed Apr 14 15:41:04 2010 +0300
@@ -242,6 +242,25 @@
TBool IsZoomAtMinimum() const;
/**
+ * Returns whether the current zoom value is the maximum zoom
+ * @since 5.1
+ * @return Whether the current zoom value is the maximum zoom
+ */
+ TBool IsZoomAtMaximum() const;
+
+ /**
+ * Zooms to max zoom value
+ * @since 5.1
+ */
+ void ZoomToMaximum();
+
+ /**
+ * Zooms to min zoom value
+ * @since 5.1
+ */
+ void ZoomToMinimum();
+
+ /**
* Stops all zooming activity
*/
void StopZoom();
--- a/camerauis/cameraapp/generic/src/CamAppController.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamAppController.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -2816,8 +2816,14 @@
appUi->SetAssumePostCaptureView( EFalse );
}
}
-
- if ( Busy() )
+
+ TBool cancelingAutoFocus = ( ECamControllerImage == CurrentMode() &&
+ iInfo.iActiveCamera == ECamActiveCameraPrimary &&
+ iConfigManager &&
+ iConfigManager->IsAutoFocusSupported() &&
+ iAFCancelInProgress );
+
+ if ( Busy() || cancelingAutoFocus )
{
PRINT( _L("Camera <> CCamAppController::ReleaseCamera: set release pending") );
iPendingRelease = ETrue;
@@ -2842,6 +2848,13 @@
TRAP_IGNORE ( IssueDirectRequestL( ECamRequestImageCancel ) );
NotifyControllerObservers( ECamEventCaptureComplete, KErrCancel );
}
+ //In SetOperation(), it notify observer with ECamEventOperationStateChanged,
+ //the clear work for flash indicator flag can be done with ECamEventOperationStateChanged in some abnormal cases.
+ if ( ECamControllerImage == CurrentMode() && iInfo.iActiveCamera == ECamActiveCameraPrimary )
+ {
+ SetOperation( ECamNoOperation );
+ }
+
//iInfo.iMode = ECamControllerShutdown;
//iInfo.iTargetMode = ECamControllerIdle;
--- a/camerauis/cameraapp/generic/src/CamAppui.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamAppui.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -2508,6 +2508,7 @@
case ECamEventSaveLocationChanged:
{
PRINT( _L( "Camera <> case ECamEventSaveLocationChanged" ) )
+ DismissMemoryNoteL();
if ( IsMMCRemovedNotePending() &&
( CamUtility::MemoryCardStatus() != ECamMemoryCardNotInserted ) )
{
@@ -2518,6 +2519,10 @@
{
TRAP_IGNORE( HandleCommandL( ECamCmdRedrawScreen ) );
}
+ if ( ECamViewStatePostCapture == iViewState )
+ {
+ iTargetViewState = ECamViewStatePreCapture;
+ }
break;
}
@@ -4356,11 +4361,12 @@
else if(IsMemoryFullOrUnavailable( storeToCheck ))
{
HBufC* text = StringLoader::LoadLC(R_NOTE_TEXT_MEMORY_FULL);
- CAknStaticNoteDialog* note = new( ELeave ) CAknStaticNoteDialog;
- note->PrepareLC( R_CAM_OOM_NOTE_OK_CANCEL);
- note->SetTextL( *text );
+ iMemoryNote = new( ELeave ) CAknStaticNoteDialog;
+ iMemoryNote->PrepareLC( R_CAM_OOM_NOTE_OK_CANCEL);
+ iMemoryNote->SetTextL( *text );
iController.StopIdleTimer();
- TInt ret = note->RunDlgLD();
+ TInt ret = iMemoryNote->RunDlgLD();
+ iMemoryNote = NULL;
CleanupStack::PopAndDestroy( text );
if(EAknSoftkeyOk == ret)
{
@@ -4412,10 +4418,11 @@
R_CAM_MEMORY_SELECT_DIALOG,
EFalse,
supportedMemTypes );
+ CleanupStack::PushL(memoryDialog);
TDriveNumber driveNumber = static_cast<TDriveNumber>(KErrNotFound);
CAknCommonDialogsBase::TReturnKey result =
memoryDialog->ExecuteL( driveNumber );
-
+ CleanupStack::PopAndDestroy(memoryDialog);
if ( result != CAknCommonDialogsBase::TReturnKey(
CAknCommonDialogsBase::ERightSoftkey) )
{
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -374,7 +374,8 @@
iController.CurrentMode() == ECamControllerShutdown )
{
if( !iController.IsViewFinding() && iViewFinding
- && IsCaptureKeyL( aKeyEvent, aType ) )
+ && ( IsCaptureKeyL( aKeyEvent, aType )
+ || IsShutterKeyL( aKeyEvent, aType ) ) )
{
PRINT( _L("Camera <> CCamCaptureSetupContainer::OfferKeyEventL coming back from standby" ))
ReserveAndStartVF();
@@ -391,9 +392,11 @@
// If VF was stopped by stand-by-timer, restart VF here
ReserveAndStartVF();
}
-
- // If the Ok button is pressed, select the current item
- if ( aKeyEvent.iCode == EKeyOK && aKeyEvent.iRepeats == 0 && aType == EEventKey )
+
+ // If the Ok button or shutter key is pressed, select the current item
+ if ( ( aKeyEvent.iCode == EKeyOK && aKeyEvent.iRepeats == 0 && aType == EEventKey ) ||
+ ( aType == EEventKeyDown &&
+ ( IsCaptureKeyL( aKeyEvent, aType ) || IsShutterKeyL( aKeyEvent, aType ) ) ) )
{
TKeyResponse response = iCaptureSetupControl->OfferKeyEventL( aKeyEvent, aType );
iView.HandleCommandL( EAknSoftkeyOk );
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -422,18 +422,12 @@
else
{
gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
+ gc.SetPenSize( TSize (1,1) );
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.SetPenColor( TRgb( 0x00ffffff, KToolBarExtensionBgAlpha ) );
gc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.DrawRect( Rect() );
- // Reset the brush after use (otherwise anything drawn
- // after the viewfinder will also show viewfinder frames)
- gc.SetDrawMode( CGraphicsContext::EDrawModePEN );
- TSize penSize( 1, 1 );
- gc.SetPenSize( penSize );
- gc.SetPenStyle( CGraphicsContext::EDottedPen );
- gc.SetPenColor( KRgbWhite );
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- gc.DrawRect( Rect() );
}
// STEP 1: Draw the legend text
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -610,6 +610,12 @@
SetCaptureSetupModeActive(EFalse);
UpdateCbaL();
+
+ if ( Cba() )
+ {
+ Cba()->DrawNow();
+ }
+
SetTitlePaneTextL();
CleanupStack::Pop(); // CleanupExit
@@ -879,6 +885,12 @@
}
SetSceneSettingMode(EFalse);
UpdateCbaL();
+
+ if ( Cba() )
+ {
+ Cba()->DrawNow();
+ }
+
SetTitlePaneTextL();
CleanupStack::Pop(); // CleanupExit
@@ -936,6 +948,12 @@
}
SetInfoListBoxMode(EFalse);
UpdateCbaL();
+
+ if ( Cba() )
+ {
+ Cba()->DrawNow();
+ }
+
SetTitlePaneTextL();
CleanupStack::Pop(); // CleanupExit
--- a/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -394,10 +394,24 @@
const TKeyEvent& aKeyEvent,
TEventCode aType )
{
+ if( iController.CurrentMode() == ECamControllerIdle ||
+ iController.CurrentMode() == ECamControllerShutdown )
+ {
+ if( !iController.IsViewFinding() && !iSkinnedBackGround
+ && ( IsCaptureKeyL( aKeyEvent, aType )
+ || IsShutterKeyL( aKeyEvent, aType ) ) )
+ {
+ PRINT( _L("Camera <> CCamInfoListBoxContainer::OfferKeyEventL coming back from standby" ))
+ ReserveAndStartVF();
+ }
+ return EKeyWasNotConsumed;
+ }
iController.StartIdleTimer();
-
- // If the Ok button is pressed, select the current item
- if ( aKeyEvent.iCode == EKeyOK && aKeyEvent.iRepeats == 0 && aType == EEventKey )
+
+ // If the Ok button or shutter key is pressed, select the current item
+ if ( ( aKeyEvent.iCode == EKeyOK && aKeyEvent.iRepeats == 0 && aType == EEventKey ) ||
+ ( aType == EEventKeyDown &&
+ ( IsCaptureKeyL( aKeyEvent, aType ) || IsShutterKeyL( aKeyEvent, aType ) ) ) )
{
TKeyResponse response = iListBox->OfferKeyEventL( aKeyEvent, aType );
iView.HandleCommandL( EAknSoftkeySelect );
--- a/camerauis/cameraapp/generic/src/CamLocationIconController.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamLocationIconController.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -402,13 +402,9 @@
{
PRINT( _L("Camera => CCamLocationIconController::Draw") );
- // draw location indicator icon only for main camera
- if ( iController.ActiveCamera() == ECamActiveCameraPrimary )
- {
- // Make sure no brush is being used
- aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
- iLocationIndicators[iLocationState]->Draw( aGc );
- }
+ // Make sure no brush is being used
+ aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
+ iLocationIndicators[iLocationState]->Draw( aGc );
PRINT( _L("Camera <= CCamLocationIconController::Draw") );
}
--- a/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -774,7 +774,7 @@
else if(aPointerEvent.iType == TPointerEvent::EButton1Up )
{
iPlayIconPressed = EFalse;
- iDraggedInAlready = ETrue;
+ iDraggedInAlready = EFalse;
//feedback->InstantFeedback( ETouchFeedbackBasicButton );
iView.HandleCommandL(ECamCmdPlay);
}
--- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -64,6 +64,10 @@
CCamPreCaptureViewBase::~CCamPreCaptureViewBase()
{
PRINT( _L("Camera => ~CCamPreCaptureViewBase") );
+ if ( iGestureFw )
+ {
+ delete iGestureFw;
+ }
PRINT( _L("Camera <= ~CCamPreCaptureViewBase") );
}
@@ -887,9 +891,9 @@
{
PRINT( _L("Camera => CCamPreCaptureViewBase::ExitCaptureSetupModeL") )
- CCamCaptureSetupViewBase::ExitCaptureSetupModeL();
iController.SetViewfinderWindowHandle( &iContainer->Window() );
+ CCamCaptureSetupViewBase::ExitCaptureSetupModeL();
if( !iController.IsViewFinding() && !iController.InVideocallOrRinging() )
{
@@ -918,6 +922,7 @@
SwitchToCaptureSetupMenuModeL();
}
+ UpdateCbaL();
PRINT( _L("Camera <= CCamPreCaptureViewBase::ExitCaptureSetupModeL") )
}
@@ -1763,8 +1768,13 @@
PRINT( _L("Camera => CCamPreCaptureViewBase::CreateContainerL") );
// Create gesture fw object, set observer and gesture interest
+ if ( iGestureFw )
+ {
+ delete iGestureFw;
+ }
+
iGestureFw = CAknTouchGestureFw::NewL( *this, *iContainer );
- iGestureFw->SetGestureInterestL( EAknTouchGestureFwGroupPinch );
+ iGestureFw->SetGestureInterestL( EAknTouchGestureFwGroupPinch | EAknTouchGestureFwGroupTap );
PRINT( _L("Camera <= CCamPreCaptureViewBase::CreateContainerL") );
}
@@ -1779,15 +1789,14 @@
PRINT( _L("Camera => CCamPreCaptureViewBase::HandleTouchGestureL") );
// Skipped modes here
- if ( ( iController.ActiveCamera() == ECamActiveCameraSecondary ) ||
- ( ECamNoOperation != iController.CurrentOperation() ) )
+ if ( iController.ActiveCamera() == ECamActiveCameraSecondary )
{
- PRINT( _L("Camera <= CCamPreCaptureViewBase::HandleTouchGestureL") );
+ PRINT( _L("Camera <= CCamPreCaptureViewBase::HandleTouchGestureL - skipped") );
return;
}
MAknTouchGestureFwPinchEvent *pinch = AknTouchGestureFwEventPinch( aEvent );
- if ( pinch )
+ if ( pinch && (ECamNoOperation == iController.CurrentOperation()) )
{
// Determine the direction of pinch: +ve -> pinch outward / zoom / widen VF
TInt currMove = pinch->Movement();
@@ -1817,6 +1826,31 @@
}
}
}
+ else if ( EAknTouchGestureFwDoubleTap == aEvent.Type() )
+ {
+ PRINT( _L("Camera <> *** double tap event") );
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->AppUi() );
+ CCamZoomPane *zoomPane = appUi->ZoomPane();
+
+ CCamPreCaptureContainerBase* container = static_cast<CCamPreCaptureContainerBase*>( iContainer );
+ container->ShowZoomPaneWithTimer();
+
+ // Zoom to max (if not already at max) zoom level, otherwise zoom out to min level
+ if ( !zoomPane->IsZoomAtMaximum() )
+ {
+ PRINT( _L("Camera <> Zooming to max level") );
+ zoomPane->ZoomToMaximum();
+ }
+ else
+ {
+ PRINT( _L("Camera <> Zooming out to min level") );
+ zoomPane->ZoomToMinimum();
+ }
+ }
+ else
+ {
+ PRINT1( _L("Camera <> HandleTouchGestureL - gesture not used, type:%d"), aEvent.Type() );
+ }
PRINT( _L("Camera <= CCamPreCaptureViewBase::HandleTouchGestureL") );
}
--- a/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -456,52 +456,16 @@
TBool CCamSettingsModel::SettingValueEnabled( TInt aSettingItem,
TInt aSettingValue ) const
{
- TCamImageQualitySetting maxPhoto = static_cast<TCamImageQualitySetting>( iPhotoQualityLevels[iPhotoQualityLevels.Count() - 1].iPhotoResolution );
- // If the setting value is maximum photo size, and the current
- // scene is sports, then this setting value is disabled
- if ( ( aSettingItem == ECamSettingItemPhotoQuality ) &&
- ( aSettingValue == maxPhoto ) )
- {
- // If the current scene is sports, disable the option
- TCamSceneId scene = static_cast< TCamSceneId >
- ( IntegerSettingValue( ECamSettingItemDynamicPhotoScene ) );
- if ( scene == ECamSceneSports )
- {
- return EFalse;
- }
- // Otherwise, if the current scene is the user scene and
- // it is based on the 'Sports' scene then disable the option.
- else if ( scene == ECamSceneUser )
- {
- // ...Get the based on scene.
- TCamSceneId baseScene = static_cast< TCamSceneId >
- ( IntegerSettingValue( ECamSettingItemUserSceneBasedOnScene ) );
- if ( baseScene == ECamSceneSports )
- {
- return EFalse;
- }
- }
- else
- {
- // Otherwise, the option is enabled
- return ETrue;
- }
- }
// The high quality video setting is not supported if
// the second camera is enabled
- else if ( aSettingItem == ECamSettingItemVideoQuality &&
- aSettingValue == ECamVideoQualityHigh &&
- static_cast<CCamAppUiBase*>(
- iEnv->AppUi() )->IsSecondCameraEnabled() )
+ if ( aSettingItem == ECamSettingItemVideoQuality &&
+ aSettingValue == ECamVideoQualityHigh &&
+ static_cast<CCamAppUiBase*>(
+ iEnv->AppUi() )->IsSecondCameraEnabled() )
{
return EFalse;
}
// All other setting item values are allowed
- else
- {
- return ETrue;
- }
-
return ETrue;
}
--- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -35,6 +35,7 @@
#include <eikapp.h> // For CEikApplication
#include <AknIconUtils.h>
#include <akntoolbar.h>
+#include <akntoolbarextension.h>
#include <barsread.h>
#include <cameraapp.rsg>
#include <vgacamsettings.rsg>
@@ -477,10 +478,30 @@
// Change the current capture state following shutter
// key events
// ----------------------------------------------------
-//
+//
TKeyResponse CCamVideoPreCaptureContainer::HandleShutterKeyEventL( const TKeyEvent& /*aKeyEvent*/,
- TEventCode /*aType*/ )
- {
+ TEventCode aType )
+ {
+ CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->AppUi() );
+
+ if ( appUi &&
+ appUi->CurrentViewState() == ECamViewStatePreCapture &&
+ aType == EEventKeyDown &&
+ iController.IsTouchScreenSupported() )
+ {
+ CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
+ if ( toolbar )
+ {
+ CAknToolbarExtension* toolbarExtension =
+ toolbar->ToolbarExtension();
+ if ( toolbarExtension && toolbarExtension->IsShown() )
+ {
+ toolbarExtension->SetShown( EFalse );
+ return EKeyWasConsumed;
+ }
+ }
+ }
+
return EKeyWasNotConsumed;
}
--- a/camerauis/cameraapp/generic/src/CamZoomModel.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamZoomModel.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -88,6 +88,9 @@
iCurZoomStepOptical = 0;
iCurZoomStepDigital = 0;
+ // Default zoom jump multiplier
+ iZoomStepMultiplier = 1;
+
// Timer used to give smooth zooming
iZoomTimer = CPeriodic::NewL( CActive::EPriorityHigh );
@@ -293,9 +296,18 @@
}
else
{
- // Start the timer to zoom-in again when timer expires
- PRINT( _L( "CCamZoomModel::ZoomIn start zoom timer" ) );
- StartZoomTimer();
+ // Don't restart timer (Auto-stop) timer when no zoom was done
+ if( optZoomJump || digZoomJump || extZoomJump )
+ {
+ // Start the timer to zoom-in again when timer expires
+ PRINT( _L( "CCamZoomModel::ZoomIn start zoom timer" ) );
+ StartZoomTimer();
+ }
+ else
+ {
+ PRINT( _L("Camera <> CCamZoomModel::ZoomOut - stopping zoom at boundary") );
+ StopZoom();
+ }
}
PRINT( _L( "Camera <= CCamZoomModel::ZoomIn " ) );
@@ -417,7 +429,7 @@
{
PRINT( _L( "Camera => CCamZoomModel::ZoomStepsToJump (by reference)" ) );
- TInt steps = ZoomStepsToJump();
+ TInt steps = iZoomStepMultiplier * ZoomStepsToJump();
TCamZoomBoundary boundary = CheckBoundary();
@@ -669,9 +681,18 @@
}
else
{
- // Start the timer to zoom-in again when timer expires
- PRINT( _L( "CCamZoomModel::ZoomIn start zoom timer" ) );
- StartZoomTimer();
+ // Don't restart timer (auto-stop) timer when no zoom was done
+ if( optZoomJump || digZoomJump || extZoomJump )
+ {
+ // Start the timer to zoom-in again when timer expires
+ PRINT( _L( "CCamZoomModel::ZoomIn start zoom timer" ) );
+ StartZoomTimer();
+ }
+ else
+ {
+ PRINT( _L("Camera <> CCamZoomModel::ZoomOut - stopping zoom at boundary") );
+ StopZoom();
+ }
}
PRINT( _L( "Camera <= CCamZoomModel::ZoomOut " ) );
@@ -1046,10 +1067,13 @@
{
iZoomTimer->Cancel();
}
-
+
// Clear the zoom state
- iState = ECamZoomModelStateZoomNone;
-
+ iState = ECamZoomModelStateZoomNone;
+
+ // Reset zoom multiplier
+ iZoomStepMultiplier = 1;
+
if ( iPauseState == EPauseStatePaused )
{
iPauseState = EPauseStateReleased;
@@ -1228,8 +1252,8 @@
else
{
// use slower speed for videomode
- stepPeriod = iZoomLAF.iZoomSpeedDig * 2000;
- }
+ stepPeriod = iZoomLAF.iZoomSpeedDig * 2500;
+ }
break;
}
@@ -1360,7 +1384,7 @@
// Return the combined zoom value
PRINT( _L( "Camera <= CCamZoomModel::CurrentZoom optical+digital" ) );
return (iCurZoomStepOptical + iCurZoomStepDigital);
- }
+ }
}
@@ -1498,4 +1522,17 @@
PRINT1( _L("Camera <= CCamZoomModel::ReadCurrentResolution, got:%d"), iCurrentResolution );
}
+// -----------------------------------------------------------------------------
+// SetZoomMultiplier
+// -----------------------------------------------------------------------------
+//
+void CCamZoomModel::SetZoomMultiplier( TInt aZoomStepMultiplier )
+ {
+ iZoomStepMultiplier = aZoomStepMultiplier;
+ if ( iCameraState & ECamVideoOn )
+ {
+ iZoomStepMultiplier *= 2;
+ }
+ }
+
// End of File
--- a/camerauis/cameraapp/generic/src/CamZoomPane.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/CamZoomPane.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -47,6 +47,8 @@
const TInt KDivisorFactor = 10000; // integer scaling factor to avoid the
// use of floating point arithmetic
const TInt KTouchAreaExpansion = 35; // Pixels to grow touchable area
+const TInt KFastZoomMultiplier = 4; // Multiplier to skip some zoom levels
+ // to make zooming faster. Used with double tap.
// ============================ MEMBER FUNCTIONS ===============================
@@ -526,7 +528,18 @@
PRINT2(_L("Camera =><= CCamZoomPane::IsZoomAtMinimum iCurZoom = %d, iMinZoom = %d"), iCurZoom, iMinZoom);
return iCurZoom == iMinZoom;
}
-
+
+// -----------------------------------------------------------------------------
+// CCamZoomPane::IsZoomAtMaximum
+// Returns whether the current zoom value is the maximum zoom
+// -----------------------------------------------------------------------------
+//
+TBool CCamZoomPane::IsZoomAtMaximum() const
+ {
+ PRINT2(_L("Camera =><= CCamZoomPane::IsZoomAtMaximum iCurZoom = %d, iMaxZoom = %d"), iCurZoom, iMaxZoom);
+ return iCurZoom == iMaxZoom;
+ }
+
// -----------------------------------------------------------------------------
// CCamZoomPane::OkToShowPane
// Returns whether or not the Zoom Pane can currently be shown.
@@ -1211,4 +1224,26 @@
PRINT( _L( "Camera <= CCamZoomPane::Touchfeedback" ) );
}
+// -----------------------------------------------------------------------------
+// CCamZoomPane::ZoomToMinimum
+// Zooms out to min zoom level. Should be stopped by StopZoom(), if needed
+// -----------------------------------------------------------------------------
+//
+void CCamZoomPane::ZoomToMinimum()
+ {
+ iModel->SetZoomMultiplier( KFastZoomMultiplier );
+ iModel->ZoomOut();
+ }
+
+// -----------------------------------------------------------------------------
+// CCamZoomPane::ZoomToMaximum
+// Zooms in to max zoom level. Should be stopped by StopZoom(), if needed
+// -----------------------------------------------------------------------------
+//
+void CCamZoomPane::ZoomToMaximum()
+ {
+ iModel->SetZoomMultiplier( KFastZoomMultiplier );
+ iModel->ZoomIn();
+ }
+
// End of File
--- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -6428,12 +6428,34 @@
iInfo.iVfMode == ECamViewfinderDirect )
{
PRINT( _L("Camera <> viewfinder active and window handle changed, restarting viewfinder...") );
- iCamera->StopViewFinder();
- iInfo.iVfState = ECamTriInactive;
-
- // restart viewfinder
- //TRAP_IGNORE( ProcessVfStartRequestL() );
- iAppController.EnterViewfinderMode(iAppController.CurrentMode());
+ iCamera->StopViewFinder();
+
+ if ( iViewfinderWindow != NULL )
+ {
+ iViewfinderWindow = aWindow;
+ // Use the same viewfinder position and size as for bitmap viewfinder
+ TPckgBuf<TCamParamsVfBitmap> params;
+ iSettingProvider.ProvideCameraParamL( ECameraParamVfBitmap, ¶ms );
+
+ CEikonEnv* env = CEikonEnv::Static();
+
+ TInt orgPos = SetVfWindowOrdinal(); // Set visible
+ iCamera->StartViewFinderDirectL(
+ env->WsSession(),
+ *env->ScreenDevice(),
+ *iViewfinderWindow,
+ params().iRect );
+ (void) SetVfWindowOrdinal( orgPos ); // back to original
+ }
+ else
+ {
+ iCamera->StopViewFinder();
+ iInfo.iVfState = ECamTriInactive;
+
+ // restart viewfinder
+
+ iAppController.EnterViewfinderMode(iAppController.CurrentMode());
+ }
}
iViewfinderWindow = aWindow;
--- a/camerauis/cameraapp/generic/src/camstartuplogo.cpp Wed Mar 31 21:06:44 2010 +0300
+++ b/camerauis/cameraapp/generic/src/camstartuplogo.cpp Wed Apr 14 15:41:04 2010 +0300
@@ -18,7 +18,7 @@
#include <fbs.h>
#include <e32math.h>
#include <e32debug.h>
-#include <akniconutils.h>
+#include <AknIconUtils.h>
#include <cameraapp.mbg>
#include "camlogging.h"
#include "camstartuplogo.h"