# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268649540 -7200 # Node ID 8c55c525d5d76031882bcf2a8eb4d16ce26aa8a7 # Parent 792dfc98fb3b7678930d1fcebba8f31157966c39 Revision: 201009 Kit: 201010 diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/build/cameraapp.inf --- a/camerauis/cameraapp/build/cameraapp.inf Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/build/cameraapp.inf Mon Mar 15 12:39:00 2010 +0200 @@ -80,6 +80,7 @@ PRJ_EXTENSIONS START EXTENSION s60/mifconv +OPTION SOURCEDIR ../generic/icons OPTION TARGETFILE cameraapp.mif OPTION HEADERFILE cameraapp.mbg OPTION SOURCEFILE iconlist.txt diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/build/iconlist.txt --- a/camerauis/cameraapp/build/iconlist.txt Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/build/iconlist.txt Mon Mar 15 12:39:00 2010 +0200 @@ -156,3 +156,9 @@ -c8,1 qgn_indi_cam4_quality_hd.svg -c8,1 qgn_indi_cam4_quality_9mp_high.svg -c8,1 qgn_indi_cam4_quality_6mp_high.svg +-c8,1 qgn_indi_cam4_tb_oneclick_active.svg +-c8,1 qgn_indi_cam4_tb_oneclick_dimmed.svg +-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 diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/conf/cameraapp.confml Binary file camerauis/cameraapp/conf/cameraapp.confml has changed diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/conf/cameraapp_101FFA86.crml Binary file camerauis/cameraapp/conf/cameraapp_101FFA86.crml has changed diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/GsCamcorderPlugin/src/CamLocationSettingContainer.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/CamLocationSettingContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/CamLocationSettingContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -613,7 +613,7 @@ TInt layoutCount = iDescLayoutArray.Count(); TRgb color; MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 ); + AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); if ( layoutCount < count ) { diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -87,7 +87,15 @@ // Show the editor dialog TBool editorRet = EFalse; // Trap this to make sure the orientation is reverted back to normal + if ( Cba() ) + { + Cba()->MakeVisible( EFalse ); + } TRAPD( leaveErr, editorRet = ShowEditorDialogL() ) + if ( Cba() ) + { + Cba()->MakeVisible( ETrue ); + } if ( !editorRet ) { // redraw listbox to update radio button when cancel is pressed diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/data/CamSettings.ra --- a/camerauis/cameraapp/generic/common/data/CamSettings.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamSettings.ra Mon Mar 15 12:39:00 2010 +0200 @@ -159,6 +159,31 @@ }; } +//ME:START +RESOURCE CBA R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT + { + flags = EEikButtonGroupAddToStack | EEikCbaFlagTransparent; + buttons = + { + CBA_BUTTON + { + id=EAknSoftkeySelect; + txt = text_softkey_ok; + }, + CBA_BUTTON + { + id=EAknSoftkeyCancel; + txt = text_softkey_cancel; + }, + CBA_BUTTON + { + id = ECamMSKCmdAppChange; + txt = qtn_msk_change; + } + }; + } +//ME:END + //---------------------------------------------------- // // R_CAM_SOFTKEYS_OPTIONS_BACK__CAPTURE diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/data/CamSettingsV2.ra --- a/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra Mon Mar 15 12:39:00 2010 +0200 @@ -157,6 +157,33 @@ }; } + +//ME:START +RESOURCE CBA R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT + { + flags = EEikButtonGroupAddToStack | EEikCbaFlagTransparent; + buttons = + { + CBA_BUTTON + { + id=EAknSoftkeySelect; + txt = text_softkey_ok; + }, + CBA_BUTTON + { + id=EAknSoftkeyCancel; + txt = text_softkey_cancel; + }, + CBA_BUTTON + { + id = ECamMSKCmdAppChange; + txt = qtn_msk_change; + } + }; + } +//ME:END + + //---------------------------------------------------- // // R_CAM_SOFTKEYS_OPTIONS_BACK__CAPTURE diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra --- a/camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamStillCaptureCamcorder.ra Mon Mar 15 12:39:00 2010 +0200 @@ -861,7 +861,7 @@ { menubar = r_cam_still_post_capture_menubar_camcorder; cba = r_cam_softkeys_back; - toolbar = r_cam_still_postcapture_toolbar; + toolbar = r_cam_postcapture_common_toolbar; } // --------------------------------------------------------- @@ -916,6 +916,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdRenameImage; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra --- a/camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/data/CamVideoCaptureCamcorder.ra Mon Mar 15 12:39:00 2010 +0200 @@ -912,7 +912,7 @@ menubar = r_cam_video_post_capture_menubar_camcorder; //cba = R_AVKON_SOFTKEYS_OPTIONS_BACK; cba = r_cam_softkeys_options_back_toggletoolbar; - toolbar = r_cam_video_postcapture_toolbar; + toolbar = r_cam_postcapture_common_toolbar; } // --------------------------------------------------------- @@ -961,6 +961,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdRenameVideo; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/inc/Cam.hrh --- a/camerauis/cameraapp/generic/common/inc/Cam.hrh Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/Cam.hrh Mon Mar 15 12:39:00 2010 +0200 @@ -138,6 +138,7 @@ ECamCmdPrintIntent, ECamCmdPrintPlugin, ECamCmdOneClickUpload, + ECamCmdSetUserDefault, ECamCmdCaptureSetupLightSensitivityUser, diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/inc/CamCaptureSetupListBox.h --- a/camerauis/cameraapp/generic/common/inc/CamCaptureSetupListBox.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CamCaptureSetupListBox.h Mon Mar 15 12:39:00 2010 +0200 @@ -53,6 +53,7 @@ #else ,MCamAppController& aController #endif //CAMERAAPP_PLUGIN_BUILD + ,TBool aSkinnedBackGround = EFalse ); /** @@ -104,7 +105,7 @@ */ void HandlePointerEventL(const TPointerEvent& aPointerEvent); - + private: // Data // observer that handles the control's update events @@ -117,6 +118,9 @@ #else MCamAppController& iController; #endif //CAMERAAPP_PLUGIN_BUILD + + protected: // Data + TBool iSkinnedBackGround; }; #endif // CAMCAPTURESETUPLISTBOX_H diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/inc/CamCaptureSetupListItemDrawer.h --- a/camerauis/cameraapp/generic/common/inc/CamCaptureSetupListItemDrawer.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CamCaptureSetupListItemDrawer.h Mon Mar 15 12:39:00 2010 +0200 @@ -45,7 +45,7 @@ * @param aListBoxModel reference to a list box model used to access item data * @return pointer to the newly created object */ - static CCamCaptureSetupListItemDrawer* NewL( MCamListboxModel& aListBoxModel ); + static CCamCaptureSetupListItemDrawer* NewL( MCamListboxModel& aListBoxModel, TBool aFullySkinned = EFalse ); /** * Destructor. @@ -68,7 +68,7 @@ * @since 2.8 * @param aListBoxModel reference to a list box model used to access item data */ - CCamCaptureSetupListItemDrawer( MCamListboxModel& aListBoxModel ); + CCamCaptureSetupListItemDrawer( MCamListboxModel& aListBoxModel, TBool aFullySkinned = EFalse ); /** * Second phase construction @@ -131,6 +131,13 @@ void DrawItemRect( const TRect& aActualItemRect ) const; /** + * Draws a rectangle for an item. + * @since 2.8 + * @param the rectangular area to be drawn. + */ + void DrawTransparentItemRect( const TRect& aActualItemRect ) const; + + /** * Read list layout */ void ReadLayout(); @@ -162,6 +169,8 @@ TAknTextComponentLayout iTxtWithRbLayout; TAknWindowComponentLayout iBmpWithRbLayout; TAknWindowComponentLayout iHighlightLayout; + // Drawing mode + TBool iFullySkinned; }; #endif // CAMCAPTURESETUPLISTITEMDRAWER_H diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh --- a/camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CamSettingsInternal.hrh Mon Mar 15 12:39:00 2010 +0200 @@ -83,6 +83,9 @@ ECamSettingItemDefaultAlbumId, ECamSettingItemDefaultAlbumName, ECamSettingItemRecLocation, + //Photo and video editor support + ECamSettingItemPhotoEditorSupport, // Support for photo editor + ECamSettingItemVideoEditorSupport, // Support for video editor ECamSettingItemStaticCommonRangeMax, // Range marker for static common settings // ----------------------------------------------------- @@ -99,6 +102,7 @@ ECamSettingItemUserSceneImageSharpness, ECamSettingItemUserSceneColourSaturation, ECamSettingItemUserSceneLightSensitivity, // shared key is "UserSceneLightSensitivity" + ECamSettingItemUserSceneDefault, // shared key is "UserSceneDefault" ECamSettingItemUserSceneRangeMax, // Range marker for user scene settings ECamSettingItemUserSceneReset, // This needs to be out of the range as it is not stored @@ -590,6 +594,8 @@ (const TUint16* const)_S16("ItemDefaultAlbumId"), (const TUint16* const)_S16("ItemDefaultAlbumName"), (const TUint16* const)_S16("ItemRecLocation"), + (const TUint16* const)_S16("ItemPhotoEditorSupport"), + (const TUint16* const)_S16("ItemVideoEditorSupport"), (const TUint16* const)_S16("ItemStaticCommonRangeMax"), // ----------------------------------------------------- (const TUint16* const)_S16("ItemUserSceneRangeMin"), @@ -603,6 +609,7 @@ (const TUint16* const)_S16("ItemUserSceneImageSharpness"), (const TUint16* const)_S16("ItemUserSceneColourSaturation"), (const TUint16* const)_S16("ItemUserSceneLightSensitivity"), + (const TUint16* const)_S16("ItemUserSceneDefault"), (const TUint16* const)_S16("ItemUserSceneRangeMax"), (const TUint16* const)_S16("ItemUserSceneReset"), // ----------------------------------------------------- diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h --- a/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/inc/CameraappPrivateCRKeys.h Mon Mar 15 12:39:00 2010 +0200 @@ -62,6 +62,7 @@ const TUint32 KCamCrUserSceneImageSharpness = 0x27; const TUint32 KCamCrUserSceneColourSaturation = 0x28; const TUint32 KCamCrUserSceneLightSensitivity = 0x29; +const TUint32 KCamCrUserSceneDefault = 0x2A; const TUint32 KCamCrPhotoRotation = 0x30; const TUint32 KCamCrVideoStabilisation = 0x31; @@ -87,7 +88,9 @@ const TUint32 KCamCrImageToolbarItems = 0x58; const TUint32 KCamCrImageToolbarDefaultItems = 0x59; - +//Support for Photo and Video editor +const TUint32 KCamCrPhotoEditorSupport = 0x5A; +const TUint32 KCamCrVideoEditorSupport = 0x5B; // ========================================================= // Cameraapp variant settings file diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp --- a/camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamCaptureSetupListBox.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -39,8 +39,9 @@ #else ,MCamAppController& aController #endif //CAMERAAPP_PLUGIN_BUILD + ,TBool aSkinnedBackGround ) -: iSettingObserver( aObserver ), iController( aController ) +: iSettingObserver( aObserver ), iController( aController ), iSkinnedBackGround( aSkinnedBackGround ) { iBorder = TGulBorder::ENone; } @@ -69,7 +70,8 @@ Rect() ); CCamCaptureSetupListItemDrawer* itemDrawer = - CCamCaptureSetupListItemDrawer::NewL( *model ); + CCamCaptureSetupListItemDrawer::NewL( *model, iSkinnedBackGround ); + //ME:END itemDrawer->SetParentControl( aParent ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp --- a/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamCaptureSetupListItemDrawer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -54,6 +54,10 @@ // 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 ======================= @@ -63,11 +67,13 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // +//ME:START CCamCaptureSetupListItemDrawer* -CCamCaptureSetupListItemDrawer::NewL( MCamListboxModel& aListBoxModel ) +CCamCaptureSetupListItemDrawer::NewL( MCamListboxModel& aListBoxModel, TBool aFullySkinned ) { CCamCaptureSetupListItemDrawer* self = new( ELeave ) - CCamCaptureSetupListItemDrawer( aListBoxModel ); + CCamCaptureSetupListItemDrawer( aListBoxModel, aFullySkinned ); +//ME:END CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); @@ -96,8 +102,8 @@ // ----------------------------------------------------------------------------- // CCamCaptureSetupListItemDrawer -::CCamCaptureSetupListItemDrawer( MCamListboxModel& aListBoxModel ) - : iModel( aListBoxModel ) +::CCamCaptureSetupListItemDrawer( MCamListboxModel& aListBoxModel, TBool aFullySkinned ) + : iModel( aListBoxModel ),iFullySkinned( aFullySkinned ) { } @@ -220,8 +226,20 @@ } #endif // RD_UI_TRANSITION_EFFECTS_LIST // Draw unhighlighted rectangle that encapsulates the item text and bitmap. - DrawItemRect( aActualItemRect ); + + //ME:START + PRINT1( _L("Camera <> CCamCaptureSetupListItemDrawer::DrawActualItem iFullySkinned=%d"), iFullySkinned ); + if( iFullySkinned ) + { + DrawItemRect( aActualItemRect ); + } + else + { + DrawTransparentItemRect( aActualItemRect ); + } + //ME:END + #ifdef RD_UI_TRANSITION_EFFECTS_LIST if ( transApi ) { @@ -273,6 +291,11 @@ layoutText.LayoutText( aActualItemRect, iTxtLayout ); // ...Pass the text to be drawn, into the text layout object // ...and draw it. + if( !iFullySkinned ) + { + color=KRgbWhite; + } + layoutText.DrawText( *iGc, iModel.ItemText( aItemIndex ), ETrue, color ); // Draw the bitmap. @@ -304,6 +327,11 @@ layoutText.LayoutText( aActualItemRect, iTxtWithRbLayout ); // ...Pass the text to be drawn, into the text layout object // ...and draw it. + if( !iFullySkinned ) + { + color=KRgbWhite; + } + layoutText.DrawText( *iGc, iModel.ItemText( aItemIndex ), ETrue, color ); // Draw the bitmap. @@ -444,6 +472,37 @@ } +//ME:START +// --------------------------------------------------------- +// CCamCaptureSetupListItemDrawer::DrawItemRect +// Draws a rectangle for an item. +// --------------------------------------------------------- +// +void CCamCaptureSetupListItemDrawer::DrawTransparentItemRect( + const TRect& aActualItemRect ) // the rectangular area to be drawn + const + { + const CCoeControl* control = iParentControl; + + if ( control ) + { + iGc->SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); + 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 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp --- a/camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamStaticSettingsModel.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -681,10 +681,7 @@ case ECamSettingItemImageToolbarItems: crKey = KCamCrImageToolbarItems; break; case ECamSettingItemImageToolbarDefaultItems: crKey = KCamCrImageToolbarDefaultItems; break; - case ECamSettingItemContinuousAutofocus: - crKey = KCamCrContinuousAutofocus; - break; - + case ECamSettingItemContinuousAutofocus: crKey = KCamCrContinuousAutofocus; break; default: CamPanic( ECamPanicUnknownSettingItem ); break; } @@ -732,6 +729,8 @@ case ECamSettingItemDefaultAlbumId: crKey = KCamCrDefaultAlbumId; break; case ECamSettingItemDefaultAlbumName: crKey = KCamCrDefaultAlbumTitle; break; case ECamSettingItemRecLocation: crKey = KCamCrPhotoStoreLocation; break; + case ECamSettingItemPhotoEditorSupport: crKey = KCamCrPhotoEditorSupport; break; + case ECamSettingItemVideoEditorSupport: crKey = KCamCrVideoEditorSupport; break; default: CamPanic( ECamPanicUnknownSettingItem ); break; } @@ -753,6 +752,7 @@ case ECamSettingItemUserSceneImageSharpness: crKey = KCamCrUserSceneImageSharpness; break; case ECamSettingItemUserSceneColourSaturation: crKey = KCamCrUserSceneColourSaturation; break; case ECamSettingItemUserSceneLightSensitivity: crKey = KCamCrUserSceneLightSensitivity; break; + case ECamSettingItemUserSceneDefault: crKey = KCamCrUserSceneDefault; break; default: CamPanic( ECamPanicUnknownSettingItem ); break; } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/common/src/CamUtility.cpp --- a/camerauis/cameraapp/generic/common/src/CamUtility.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/common/src/CamUtility.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -1058,8 +1058,10 @@ 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_RESET_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 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/nhdcamsettings.rss --- a/camerauis/cameraapp/generic/data/nhdcamsettings.rss Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/nhdcamsettings.rss Mon Mar 15 12:39:00 2010 +0200 @@ -361,6 +361,32 @@ buf = qtn_lcam_scene_nightport_ex; } +//----------------------------------------------------------------------------- +// +// r_qtn_lcam_tt_image_editor +// Tooltip for "Image editor" button in postcapture view. +// Uses string defined in cam.loc +// +//----------------------------------------------------------------------------- +// +RESOURCE TBUF r_qtn_lcam_tt_image_editor + { + buf = qtn_lcam_tt_image_editor; + } + +//----------------------------------------------------------------------------- +// +// r_qtn_lcam_tt_video_editor +// Tooltip for "Video editor" button in postcapture view. +// Uses string defined in cam.loc +// +//----------------------------------------------------------------------------- +// +RESOURCE TBUF r_qtn_lcam_tt_video_editor + { + buf = qtn_lcam_tt_video_editor; + } + /************************************** * Other structures * **************************************/ @@ -1002,6 +1028,13 @@ bmbSkinIdMajor = EAknsMajorGeneric; bmbSkinIdMinor = EAknsMinorGenericQgnIndiCam4TbMark; } + +RESOURCE AVKON_BUTTON_STATE_EXTENSION r_cam_ext_qgn_indi_cam4_tb_edit + { + bmbSkinIdMajor = EAknsMajorGeneric; + bmbSkinIdMinor = EAknsMinorGenericQgnIndiMgTbEdit; //We are reusing the media gallery skinid + } + //---------------------------------------------------- // @@ -1615,6 +1648,123 @@ //---------------------------------------------------- // +// r_cam_postcapture_common_toolbar +// Toolbar for post-capture views( Primary/Secondary Still/Video views) +// +//---------------------------------------------------- +// + +RESOURCE AVKON_TOOLBAR r_cam_postcapture_common_toolbar + { + lines = 3; + flags = KAknToolbarFixed | KAknToolbarTransparent | KAknToolbarNoBackground; + items = + { + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdSend; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_send; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_send_mask; + helptxt = qtn_lcam_tt_send; + extension = r_cam_ext_qgn_indi_cam4_send; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdEdit; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_mg_tb_edit; + bmpmask = EMbmCameraappQgn_indi_mg_tb_edit_mask; + helptxt = ""; // Tooltip is set at run-time + extension = r_cam_ext_qgn_indi_cam4_tb_edit; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdPhotos; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_goto_gallery; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_goto_gallery_mask; + helptxt = qtn_lcam_tt_go_to_photos; + extension = r_cam_ext_qgn_indi_cam4_tb_goto_photos; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdOneClickUpload; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; + helptxt = ""; // Tooltip is set at run-time + // extension = r_cam_ext_qgn_indi_cam4_tb_upload; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdDelete; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_delete; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_delete_mask; + helptxt = qtn_lcam_tt_delete; + extension = r_cam_ext_qgn_indi_cam4_delete; + } + }; + }; + } + }; + } + +//---------------------------------------------------- +// // r_cam_still_postcapture_toolbar // Toolbar and toolbar extension for still post-capture view // @@ -1734,8 +1884,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -1958,8 +2108,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2033,8 +2183,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2521,8 +2671,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2744,8 +2894,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2819,8 +2969,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2985,8 +3135,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -3105,11 +3255,50 @@ serviceCmd = KAiwCmdUpload; serviceClass = KAiwClassBase; contentType = "image/*"; - defaultProvider = 0x2000BB53; //KShareAppUidVal; + defaultProvider = 0x2002CC1F; //KShareAppUidVal; maxProviders = 1; } }; } +// ----------------------------------------------------------------------------- +// +// r_cam_aiw_view_interest +// AIW interest structure for view (Share settings view) +// +// ----------------------------------------------------------------------------- +RESOURCE AIW_INTEREST r_cam_aiw_view_interest + { + items= + { + AIW_CRITERIA_ITEM // SHARE_AIW + { + id = KAiwCmdView; + serviceCmd = KAiwCmdView; + contentType = "*"; + serviceClass = KAiwClassMenu; + } + }; + } + +// ----------------------------------------------------------------------------- +// +// r_cam_aiw_edit_interest +// AIW interest structure for edit +// +// ----------------------------------------------------------------------------- +RESOURCE AIW_INTEREST r_cam_aiw_edit_interest + { + items= + { + AIW_CRITERIA_ITEM + { + id = KAiwCmdEdit; + serviceCmd = KAiwCmdEdit; + contentType = "*"; + serviceClass = KAiwClassMenu; + } + }; + } //---------------------------------------------------- // // qtn_lcam_tb_turn_sequence_off diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamActivePalette.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamActivePalette.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamActivePalette.ra Mon Mar 15 12:39:00 2010 +0200 @@ -69,7 +69,7 @@ RESOURCE CAM_AP_POST_CAPTURE_ITEM r_cam_ap_one_click_upload { text = ""; // Updated at run-time - bitmap_id = EMbmCameraappQgn_indi_cam4_tb_upload; + bitmap_id = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; } // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamBurstCapture.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamBurstCapture.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamBurstCapture.ra Mon Mar 15 12:39:00 2010 +0200 @@ -915,6 +915,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdPhotos; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamBurstCaptureV2.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamBurstCaptureV2.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamBurstCaptureV2.ra Mon Mar 15 12:39:00 2010 +0200 @@ -915,6 +915,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdPhotos; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamSceneSetup.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamSceneSetup.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamSceneSetup.ra Mon Mar 15 12:39:00 2010 +0200 @@ -1008,6 +1008,34 @@ //---------------------------------------------------- // +// r_cam_photo_user_scene_setup_list_set_user_default +// The data for the set user default item in the +// photo user scene setup list +// +//---------------------------------------------------- +// +RESOURCE CAM_USER_SCENE_SETUP_LIST_ITEM_DATA r_cam_photo_user_scene_setup_list_set_user_default + { + id = ECamSettingItemUserSceneDefault; + text = qtn_lcam_set_user_default; + user_scene_setup_list_item_values = + { + CAM_USER_SCENE_SETUP_LIST_ITEM_VALUE + { + id = ECamSettNo; + text = qtn_lcam_set_user_default_no; + }, + + CAM_USER_SCENE_SETUP_LIST_ITEM_VALUE + { + id = ECamSettYes; + text = qtn_lcam_set_user_default_yes; + } + }; + } + +//---------------------------------------------------- +// // r_cam_photo_user_scene_setup_list_reset_data // The data for the reset data item in the // photo user scene setup list diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamSceneSetupV2.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamSceneSetupV2.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamSceneSetupV2.ra Mon Mar 15 12:39:00 2010 +0200 @@ -1001,6 +1001,34 @@ } }; } + +//---------------------------------------------------- +// +// r_cam_photo_user_scene_setup_list_set_user_default +// The data for the set user default item in the +// photo user scene setup list +// +//---------------------------------------------------- +// +RESOURCE CAM_USER_SCENE_SETUP_LIST_ITEM_DATA r_cam_photo_user_scene_setup_list_set_user_default + { + id = ECamSettingItemUserSceneDefault; + text = qtn_lcam_set_user_default; + user_scene_setup_list_item_values = + { + CAM_USER_SCENE_SETUP_LIST_ITEM_VALUE + { + id = ECamSettNo; + text = qtn_lcam_set_user_default_no; + }, + + CAM_USER_SCENE_SETUP_LIST_ITEM_VALUE + { + id = ECamSettYes; + text = qtn_lcam_set_user_default_yes; + } + }; + } //---------------------------------------------------- // diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamStillCapturePortrait.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamStillCapturePortrait.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamStillCapturePortrait.ra Mon Mar 15 12:39:00 2010 +0200 @@ -367,7 +367,7 @@ command = KAiwCmdAssign; txt = qtn_lcam_use_image_postcapture_menu; cascade = AIW_INTELLIGENT_CASCADE_ID; - }, + }, MENU_ITEM { command = ECamCmdShareOnOvi; @@ -375,6 +375,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdRenameImage; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureViewMode.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureViewMode.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamStillCaptureViewMode.ra Mon Mar 15 12:39:00 2010 +0200 @@ -237,6 +237,13 @@ // AIW provider fills the menu item title. // No submenu, only 1 provider acccepted. txt = ""; + }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; }, MENU_ITEM { diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamVideoCapturePortrait.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamVideoCapturePortrait.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamVideoCapturePortrait.ra Mon Mar 15 12:39:00 2010 +0200 @@ -612,6 +612,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = ECamCmdRenameVideo; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureViewMode.ra --- a/camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureViewMode.ra Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/resource_inc/CamVideoCaptureViewMode.ra Mon Mar 15 12:39:00 2010 +0200 @@ -567,6 +567,13 @@ // No submenu, only 1 provider acccepted. txt = ""; }, + MENU_ITEM // SHARE_AIW + { + command = KAiwCmdView; + // AIW provider fills the menu item title. + // No submenu, only 1 provider acccepted. + txt = ""; + }, MENU_ITEM { command = EAknCmdHelp; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/data/vgacamsettings.rss --- a/camerauis/cameraapp/generic/data/vgacamsettings.rss Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/data/vgacamsettings.rss Mon Mar 15 12:39:00 2010 +0200 @@ -362,7 +362,32 @@ buf = qtn_lcam_scene_nightport_ex_v2; } +//----------------------------------------------------------------------------- +// +// r_qtn_lcam_tt_image_editor +// Tooltip for "Image editor" button in postcapture view. +// Uses string defined in cam.loc +// +//----------------------------------------------------------------------------- +// +RESOURCE TBUF r_qtn_lcam_tt_image_editor + { + buf = qtn_lcam_tt_image_editor; + } +//----------------------------------------------------------------------------- +// +// r_qtn_lcam_tt_video_editor +// Tooltip for "Video editor" button in postcapture view. +// Uses string defined in cam.loc +// +//----------------------------------------------------------------------------- +// +RESOURCE TBUF r_qtn_lcam_tt_video_editor + { + buf = qtn_lcam_tt_video_editor; + } + /************************************** * Other structures * **************************************/ @@ -1004,6 +1029,13 @@ bmbSkinIdMajor = EAknsMajorGeneric; bmbSkinIdMinor = EAknsMinorGenericQgnIndiCam4TbMark; } + +RESOURCE AVKON_BUTTON_STATE_EXTENSION r_cam_ext_qgn_indi_cam4_tb_edit + { + bmbSkinIdMajor = EAknsMajorGeneric; + bmbSkinIdMinor = EAknsMinorGenericQgnIndiMgTbEdit; //We are reusing the media gallery skinid + } + //---------------------------------------------------- // @@ -1616,6 +1648,123 @@ //---------------------------------------------------- // +// r_cam_postcapture_common_toolbar +// Toolbar for post-capture views( Primary/Secondary Still/Video views) +// +//---------------------------------------------------- +// + +RESOURCE AVKON_TOOLBAR r_cam_postcapture_common_toolbar + { + lines = 3; + flags = KAknToolbarFixed | KAknToolbarTransparent | KAknToolbarNoBackground; + items = + { + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdSend; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_send; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_send_mask; + helptxt = qtn_lcam_tt_send; + extension = r_cam_ext_qgn_indi_cam4_send; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdEdit; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_mg_tb_edit; + bmpmask = EMbmCameraappQgn_indi_mg_tb_edit_mask; + helptxt = ""; // Tooltip is set at run-time + extension = r_cam_ext_qgn_indi_cam4_tb_edit; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdPhotos; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_goto_gallery; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_goto_gallery_mask; + helptxt = qtn_lcam_tt_go_to_photos; + extension = r_cam_ext_qgn_indi_cam4_tb_goto_photos; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdOneClickUpload; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; + helptxt = ""; // Tooltip is set at run-time + // extension = r_cam_ext_qgn_indi_cam4_tb_upload; + } + }; + }; + }, + TBAR_CTRL + { + type = EAknCtButton; + id = ECamCmdDelete; + control = AVKON_BUTTON + { + flags = KAknButtonNoFrame; + states = + { + AVKON_BUTTON_STATE + { + bmpfile = CAMERAAPP_BITMAP_FILE; + bmpid = EMbmCameraappQgn_indi_cam4_tb_delete; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_delete_mask; + helptxt = qtn_lcam_tt_delete; + extension = r_cam_ext_qgn_indi_cam4_delete; + } + }; + }; + } + }; + } + +//---------------------------------------------------- +// // r_cam_still_postcapture_toolbar // Toolbar and toolbar extension for still post-capture view // @@ -1735,8 +1884,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -1959,8 +2108,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2034,8 +2183,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2522,8 +2671,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2745,8 +2894,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2820,8 +2969,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -2986,8 +3135,8 @@ AVKON_BUTTON_STATE { bmpfile = CAMERAAPP_BITMAP_FILE; - bmpid = EMbmCameraappQgn_indi_cam4_tb_upload; - bmpmask = EMbmCameraappQgn_indi_cam4_tb_upload_mask; + bmpid = EMbmCameraappQgn_indi_cam4_tb_oneclick_active; + bmpmask = EMbmCameraappQgn_indi_cam4_tb_oneclick_active_mask; helptxt = ""; // Tooltip is set at run-time extension = r_cam_ext_qgn_indi_cam4_tb_upload; } @@ -3106,11 +3255,52 @@ serviceCmd = KAiwCmdUpload; serviceClass = KAiwClassBase; contentType = "image/*"; - defaultProvider = 0x2000BB53; //KShareAppUidVal; + defaultProvider = 0x2002CC1F; //KShareAppUidVal; maxProviders = 1; } }; } +// ----------------------------------------------------------------------------- +// +// r_cam_aiw_view_interest +// AIW interest structure for view (Share settings view) +// +// ----------------------------------------------------------------------------- +RESOURCE AIW_INTEREST r_cam_aiw_view_interest + { + items= + { + AIW_CRITERIA_ITEM // SHARE_AIW + { + id = KAiwCmdView; + serviceCmd = KAiwCmdView; + contentType = "*"; + defaultProvider = 0x2002CC1F; //KShareAppUidVal; + serviceClass = KAiwClassMenu; + } + }; + } + +// ----------------------------------------------------------------------------- +// +// r_cam_aiw_edit_interest +// AIW interest structure for edit +// +// ----------------------------------------------------------------------------- +RESOURCE AIW_INTEREST r_cam_aiw_edit_interest + { + items= + { + AIW_CRITERIA_ITEM + { + id = KAiwCmdEdit; + serviceCmd = KAiwCmdEdit; + contentType = "*"; + serviceClass = KAiwClassMenu; + } + }; + } + //---------------------------------------------------- // // qtn_lcam_tb_turn_sequence_off diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/icons/qgn_bg_lcam_vid_postcap_play.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/icons/qgn_bg_lcam_vid_postcap_play.svg Mon Mar 15 12:39:00 2010 +0200 @@ -0,0 +1,24 @@ + + + + + + + + diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/icons/qgn_bg_lcam_vid_postcap_play_pressed.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/icons/qgn_bg_lcam_vid_postcap_play_pressed.svg Mon Mar 15 12:39:00 2010 +0200 @@ -0,0 +1,24 @@ + + + + + + + + diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/icons/qgn_indi_cam4_tb_oneclick_active.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/icons/qgn_indi_cam4_tb_oneclick_active.svg Mon Mar 15 12:39:00 2010 +0200 @@ -0,0 +1,26 @@ + + + +]> + + + + + + + diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/icons/qgn_indi_cam4_tb_oneclick_dimmed.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/icons/qgn_indi_cam4_tb_oneclick_dimmed.svg Mon Mar 15 12:39:00 2010 +0200 @@ -0,0 +1,26 @@ + + + +]> + + + + + + + diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamAppController.h --- a/camerauis/cameraapp/generic/inc/CamAppController.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamAppController.h Mon Mar 15 12:39:00 2010 +0200 @@ -1955,7 +1955,9 @@ * @return Camera orientation value. */ static TCamImageOrientation MapSensorOrientatio2CamOrientation( - const TSensrvOrientationData::TSensrvDeviceOrientation& aSensorOrientation, TCamImageOrientation aLastImageOrientation); + const TSensrvOrientationData::TSensrvDeviceOrientation& aSensorOrientation, + TCamImageOrientation aLastImageOrientation, + TCamActiveCamera aActiveCamera ); /** * Mapping from camera orientation data type to bitmap orientation type. @@ -2162,7 +2164,7 @@ * @return remaining time */ TTimeIntervalMicroSeconds - CalculateVideoTimeRemainingL(const TCamMediaStorage + CalculateVideoTimeRemainingL( TCamMediaStorage aStorage = ECamMediaStorageCurrent); /** * Sets orientation of the application to CCamera @@ -2200,6 +2202,12 @@ * Toggles between highest 16:9 and 4:3 quality levels. */ TBool ToggleWideScreenQuality( TBool aWide ); + + /** + * Returns the value of iSaveStarted + */ + TBool IsSaveStarted(); + private: // ----------------------------------------------------- diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamAppUi.h --- a/camerauis/cameraapp/generic/inc/CamAppUi.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamAppUi.h Mon Mar 15 12:39:00 2010 +0200 @@ -617,7 +617,19 @@ * @return ETrue if the application has pretended to exit, else EFalse */ TBool IsInPretendExit() const; - + + /** + * Indicates whether or not the application was in a simulated exit situation + * @return ETrue if the application had pretended to exit, else EFalse + */ + TBool ReturningFromPretendExit() const; + + /** + * Indicates whether or not the application started the first time + * @return ETrue if the application booted first time, else EFalse + */ + TBool IsFirstBoot() const; + /** * Returns whether an MMC removed note is pending * @since 3.0 @@ -989,6 +1001,20 @@ * @return ETrue if all memories are full or unavailable **/ TBool AllMemoriesFullOrUnavailable() const; + + /** + * Checks the availability of memory on the currently selected + * mediastorage for capturing images or video, result saved + * in iMemoryAvailableForCapturing + **/ + void CheckMemoryAvailableForCapturing(); + + /** + * Returns the previously saved availability of memory + * @return ETrue if memory available for capturing + **/ + TBool IsMemoryAvailableForCapturing() const; + private: // New functions @@ -1656,6 +1682,7 @@ // running in the background. The app should behave slightly differently when we // are next brought to the foreground. TBool iPretendExit; + TBool iReturningFromPretendExit; // flag to indicate whether we are currently embedding another application TBool iEmbedding; @@ -1776,6 +1803,8 @@ TInt iLandscapeScreenMode; TInt iPortraitScreenMode; + + TBool iMemoryAvailableForCapturing; }; // =========================================================================== diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamCaptureSetupContainer.h --- a/camerauis/cameraapp/generic/inc/CamCaptureSetupContainer.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamCaptureSetupContainer.h Mon Mar 15 12:39:00 2010 +0200 @@ -56,7 +56,8 @@ CCamAppController& aController, CAknView& aView, CCamCaptureSetupControlHandler& aControlHandler, - const TRect& aRect ); + const TRect& aRect, + TBool aFullScreenVF=ETrue ); /** * Destructor. @@ -152,11 +153,6 @@ */ TRect TouchLayout(); - /** - * Enters viewfinder mode either in image or videomode - * depending current visible view. Also starts idle timer. - */ - void ReserveAndStartVF(); // ----------------------------------------------------- // Constructors @@ -172,7 +168,8 @@ CCamCaptureSetupContainer( CCamAppController& aController, CAknView& aView, - CCamCaptureSetupControlHandler& aControlHandler ); + CCamCaptureSetupControlHandler& aControlHandler, + TBool aFullScreenVF = ETrue ); /** * Symbian OS 2nd phase constructor. @@ -207,6 +204,8 @@ TInt iListBoxWidth; TBool iActivateOnTouchRelease; + + TBool iFullScreenVF; MTouchFeedback* iFeedback; // not own TRect iLayoutAreaRect; }; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamCaptureSetupControlHandler.h --- a/camerauis/cameraapp/generic/inc/CamCaptureSetupControlHandler.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamCaptureSetupControlHandler.h Mon Mar 15 12:39:00 2010 +0200 @@ -70,7 +70,8 @@ * @since 2.8 * @return A pointer to the new control */ - CCoeControl* CreateCaptureSetupControlL( const CCoeControl* aParent ); + CCoeControl* CreateCaptureSetupControlL( const CCoeControl* aParent, + TBool aSkinnedBackGround = EFalse ); /** * From MCamSettingValueObserver diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamCaptureSetupSlider.h --- a/camerauis/cameraapp/generic/inc/CamCaptureSetupSlider.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamCaptureSetupSlider.h Mon Mar 15 12:39:00 2010 +0200 @@ -40,6 +40,7 @@ public: virtual ~CCamSliderLegend(); + CCamSliderLegend( TBool aFullySkinned=EFalse ); /** * Constructs the layout information for a text object * @since 5.0 @@ -83,6 +84,7 @@ TAknLayoutRect iIconRect; CFbsBitmap* iBitmap; CFbsBitmap* iMask; + TBool iFullySkinned; }; @@ -102,7 +104,8 @@ static CCamCaptureSetupSlider* NewL( const CCoeControl* aParent, MCamSettingValueObserver* aObserver, TCamSettingItemIds aSettingType, - TInt aSteps ); + TInt aSteps, + TBool aFullySkinned=EFalse ); /** * Destructor. @@ -189,7 +192,7 @@ */ CCamCaptureSetupSlider( MCamSettingValueObserver* aObserver, TCamSettingItemIds aSettingType, - TInt aSteps ); + TInt aSteps, TBool aFullySkinned=EFalse ); /** * By default Symbian 2nd phase constructor is private. @@ -301,6 +304,8 @@ // number of slider steps TInt iSteps; + // Drawing mode + TBool iFullySkinned; }; #endif // __CCAMCAPTURESETUPSLIDER_H diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamCaptureSetupViewBase.h --- a/camerauis/cameraapp/generic/inc/CamCaptureSetupViewBase.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamCaptureSetupViewBase.h Mon Mar 15 12:39:00 2010 +0200 @@ -114,7 +114,7 @@ * Sets the iInfoListBoxActive flag * @param aActive What to set iInfoListBoxActive to */ - void SetInfoListBoxMode(TBool aActive); + void SetInfoListBoxMode(TBool aActive, TBool aFullySkinned=EFalse); /** * Sets the iCaptureSetupModeActive flag @@ -152,7 +152,7 @@ * @param aSetupCommand The command that initiated capture setup mode, used to * determine the required control type */ - virtual void SwitchToCaptureSetupModeL( TInt aSetupCommand ); + virtual void SwitchToCaptureSetupModeL( TInt aSetupCommand, TBool aFullScreenVF=ETrue ); /** * Exit capture setup mode. @@ -190,7 +190,7 @@ * @param aMode * @since 3.0 */ - virtual void SwitchToInfoListBoxL( TCamInfoListBoxMode aMode ); + virtual void SwitchToInfoListBoxL( TCamInfoListBoxMode aMode, TBool aFullySkinned=EFalse ); /** * Handle InfoListBox item selection @@ -221,6 +221,7 @@ */ void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + void CaptureSetupModeSelection(); private: /** @@ -280,6 +281,7 @@ // Purpose of current instance of iInfoListBoxContainer TCamInfoListBoxMode iInfoListBoxMode; + TBool iForceAvkonCBA; private: // data // Handler for the capture setup control diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamContainerBase.h --- a/camerauis/cameraapp/generic/inc/CamContainerBase.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamContainerBase.h Mon Mar 15 12:39:00 2010 +0200 @@ -289,6 +289,12 @@ * @since 9.1 ( checking for scan codes ) */ TBool IsSecondaryCameraCaptureKey( const TKeyEvent& aKeyEvent ) const ; + /** + * Enters viewfinder mode either in image or videomode + * depending current visible view. Also starts idle timer. + */ + void ReserveAndStartVF(); + // ------------------------------------------------------- // Constructors protected: diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamInfoListBox.h --- a/camerauis/cameraapp/generic/inc/CamInfoListBox.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamInfoListBox.h Mon Mar 15 12:39:00 2010 +0200 @@ -53,7 +53,8 @@ const CCoeControl* aParent, RPointerArray& aSummaryTitleTextArray, RPointerArray& aSummaryDescriptionTextArray, - TInt aResourceId ); + TInt aResourceId, + TBool aSkinnedBackGround = EFalse ); private: diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h --- a/camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamInfoListBoxContainer.h Mon Mar 15 12:39:00 2010 +0200 @@ -72,7 +72,11 @@ TInt aListBoxResource, TInt aSummaryResource, TInt aSettingValue, - TInt aTitleResource ); + TInt aTitleResource, + TBool aSkinnedBackGround = ETrue ); + + //ME:END + /** * Destructor. @@ -100,7 +104,7 @@ */ CCamInfoListBoxContainer( CCamAppController& aController, CAknView& aView, - TInt aSettingValue ); + TInt aSettingValue, TBool aSkinnedBackGround = EFalse ); public: @@ -241,6 +245,8 @@ TBool iActivateOnTouchRelease; MTouchFeedback* iFeedback; // not own + + TBool iSkinnedBackGround; }; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamPostCaptureContainer.h --- a/camerauis/cameraapp/generic/inc/CamPostCaptureContainer.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamPostCaptureContainer.h Mon Mar 15 12:39:00 2010 +0200 @@ -135,7 +135,13 @@ * Called when battery pane has changed and redraw is needed * @since 3.1 */ - void BatteryPaneUpdated(); + void BatteryPaneUpdated(); + + /** + * From CoeControl + * @param aPointerEvent the pointer event to handle + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); protected: // Functions from base classes /** @@ -177,6 +183,20 @@ TBool iCheckForFileNameChange; TBool iUpdatingBatteryPane; //Needed for drawing black background behind battery pane in Video mode + + // Play icon bitmaps + CFbsBitmap* iPlayIcon; + CFbsBitmap* iPlayIconMask; + + CFbsBitmap* iPlayIconBg; + CFbsBitmap* iPlayIconBgMask; + + CFbsBitmap* iPlayIconBgPressed; + CFbsBitmap* iPlayIconBgPressedMask; + + //Bools to control play button feedback + TBool iPlayIconPressed; + TBool iDraggedInAlready; }; #endif diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamSceneListBox.h --- a/camerauis/cameraapp/generic/inc/CamSceneListBox.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamSceneListBox.h Mon Mar 15 12:39:00 2010 +0200 @@ -43,7 +43,8 @@ * C++ default constructor. */ CCamSceneListBox( TCamCameraMode aMode, MCamSettingValueObserver* aObserver, - CCamAppController& aController); + CCamAppController& aController, + TBool aFullySkinned=ETrue ); /** * By default Symbian 2nd phase constructor is private. diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamSettingsModel.h --- a/camerauis/cameraapp/generic/inc/CamSettingsModel.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamSettingsModel.h Mon Mar 15 12:39:00 2010 +0200 @@ -346,6 +346,11 @@ public: /* + * Sets user scene setting to default if user has once selected + */ + void SetUserSceneDefault(); + + /* * Gets the handle to the settings model, which is used inturn by the * plugin to call the interfaces for performing needed actions. */ diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamShootingModeContainer.h --- a/camerauis/cameraapp/generic/inc/CamShootingModeContainer.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamShootingModeContainer.h Mon Mar 15 12:39:00 2010 +0200 @@ -74,6 +74,25 @@ TBool aUserBaseScenes = EFalse ); /** + * Symbian OS two-phased constructor + * @since 2.8 + * @param aRect Frame rectangle for container. + * @param aView Reference to the view containing this container + * @param aMode Current capture mode + * @param aController reference to CCamAppControllerBase instance + * @param aUserBaseScenes Specifies whether this list should + * display the base scenes for the user scene. + * @param aFullySkinned Specifies whether this list should + * be displayed as transparent or skinned background. + */ + static CCamShootingModeContainer* NewL( const TRect& aRect, + TBool aFullySkinned, + CAknView& aView, + TCamCameraMode aMode, + CCamAppController& aController, + TBool aUserBaseScenes ); + + /** * Destructor. * @since 2.8 */ @@ -99,7 +118,8 @@ CCamShootingModeContainer( TCamCameraMode aMode, CCamAppController& aController, CAknView& aView, - TBool aUserBaseScenes ); + TBool aUserBaseScenes, + TBool aFullySkinned=ETrue ); public: // New functions /** @@ -265,6 +285,8 @@ // Specifies whether or not the scene list is for // the user base scenes TBool iUserBaseScenes; + + TBool iFullySkinned; // Array of bitmaps for the large summary icon RPointerArray iSummaryBitmapArray; // Array of all shooting mode titles diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/CamStillUserSceneSetupView.h --- a/camerauis/cameraapp/generic/inc/CamStillUserSceneSetupView.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/CamStillUserSceneSetupView.h Mon Mar 15 12:39:00 2010 +0200 @@ -93,7 +93,7 @@ * @param aMode * @since 3.0 */ - void SwitchToInfoListBoxL( TCamInfoListBoxMode aMode ); + void SwitchToInfoListBoxL( TCamInfoListBoxMode aMode, TBool aFullySkinned=EFalse ); /** * From CCamCaptureSetupViewBase diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/cameracontroller/camimagedecoder.h --- a/camerauis/cameraapp/generic/inc/cameracontroller/camimagedecoder.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/cameracontroller/camimagedecoder.h Mon Mar 15 12:39:00 2010 +0200 @@ -48,7 +48,7 @@ * KErrNone if all went as planned. * @param aBitmap Decoded bitmap. NULL if errors in decoding. */ - virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap ) = 0; + virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap, const CFbsBitmap* aMask ) = 0; }; @@ -100,6 +100,8 @@ public: void StartConversionL( CCamBufferShare* aBuffer ); + + void StartIconConversionL( TDesC* aFilePath ); private: @@ -158,6 +160,7 @@ HBufC8* iThumbnailData; CFbsBitmap* iDecodedBitmap; + CFbsBitmap* iDecodedMask; CImageDecoder* iDecoder; TInt iRetryCounter; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/cameracontroller/camsnapshot.h --- a/camerauis/cameraapp/generic/inc/cameracontroller/camsnapshot.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/cameracontroller/camsnapshot.h Mon Mar 15 12:39:00 2010 +0200 @@ -84,7 +84,7 @@ /** * @see MCamImageDecoderObserver */ - virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap ); + virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap, const CFbsBitmap* aMask ); // ------------------------------------------------------- // from MCamBitmapScalerObserver diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/inc/camoneclickuploadutility.h --- a/camerauis/cameraapp/generic/inc/camoneclickuploadutility.h Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/inc/camoneclickuploadutility.h Mon Mar 15 12:39:00 2010 +0200 @@ -22,15 +22,25 @@ #include +#include "CamSettingsInternal.hrh" +#include "camimagedecoder.h" + + class CAiwServiceHandler; +class AknToolbar; +class CGulIcon; +class CFbsBitmap; +class CCamImageDecoder; +class MCamImageDecoderObserver; /** * Helper class for implementing one-click upload support * * @since S60 v5.0 */ -class CCamOneClickUploadUtility : public CBase +class CCamOneClickUploadUtility : public CBase, + public MCamImageDecoderObserver { public: /** @@ -72,12 +82,36 @@ * @return Tooltip text */ const TDesC& ButtonTooltipL(); - + + /** + * Get the current one click icon + */ + void UpdateUploadIcon( CAknToolbar *aToolbar, TCamCameraMode aMode ); + + /** + * From MCamImageDecoderObserver + */ + virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap, + const CFbsBitmap* aMask ); + private: void ConstructL(); void CheckVersionL(); void InitializeAiwL(); CCamOneClickUploadUtility(); + + /** + * Obtains the path for icon to be used. + * @param aMode the current camera mode + * @param aPath descriptor containing the path of icon to be used + */ + void CurrentIconPathL( TCamCameraMode aMode, TDes& aPath ); + + /** + * Decodes / starts decoding of icon to be used. + * @param aPath descriptor containing the path of icon to be used + */ + void DecodeIconL( TDesC* aPath ); private: // Data @@ -85,11 +119,18 @@ // Own CAiwServiceHandler* iAiwServiceHandler; + + CFbsBitmap* iDecodedBitmap; + CCamImageDecoder* iDecoder; + + TFileName iIconFileName; + CFbsBitmap* iIconImage; + CFbsBitmap* iIconMask; + + CAknToolbar* iToolbar; // Own HBufC* iTooltip; }; - #endif // CAMONECLICKUPLOADUTILITY_H - diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamAppController.cpp --- a/camerauis/cameraapp/generic/src/CamAppController.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamAppController.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -5642,6 +5642,10 @@ void CCamAppController::GenerateNextVideoFilePathL( TBool aForcePhoneMem ) { PRINT1( _L( "Camera => CCamAppController::GenerateNextVideoFilePathL, force phone mem:%d" ), aForcePhoneMem ) + if( aForcePhoneMem ) + { + ForceUsePhoneMemoryL( ETrue ); + } TInt store = IntegerSettingValue( ECamSettingItemVideoMediaStorage ); TBuf extension; @@ -5937,9 +5941,9 @@ OstTrace0( CAMERAAPP_PERFORMANCE, DUP1_CCAMAPPCONTROLLER_HANDLESAVEEVENT, "e_CAM_APP_PREP_FOR_NEXT_SHOT 1" ); //CCORAPP_PREP_FOR_NEXT_SHOT_START HandleCaptureCompletion(); NotifyControllerObservers( ECamEventCaptureComplete, KErrNone ); + iSaveStarted = ETrue; NotifyControllerObservers( ECamEventSaveComplete ); iCaptureRequested = EFalse; - iSaveStarted = ETrue; OstTrace0( CAMERAAPP_PERFORMANCE, DUP4_CCAMAPPCONTROLLER_HANDLESAVEEVENT, "e_CAM_APP_PREP_FOR_NEXT_SHOT 0" ); //CCORAPP_PREP_FOR_NEXT_SHOT_END OstTrace0( CAMERAAPP_PERFORMANCE, DUP5_CCAMAPPCONTROLLER_HANDLESAVEEVENT, "e_CAM_PRI_SHOT_TO_SHOT 0" ); //CCORAPP_PRI_SHOT_TO_SHOT_END } @@ -6180,9 +6184,15 @@ { PRINT( _L("Camera <> CCamAppController: status in KErrNone..") ); __ASSERT_ALWAYS( aBitmap, CamPanic( ECamPanicNullPointer ) ); - + + // The secondary camera postcapture snapshot is rotated here. + // Due to the viewfinder mirroring along the landscape axis the + // portrait (or upside down portrait) postcapture snapshot would + // otherwise be upside down. + // This affects the snapshot seen in postcapture view. + if( iInfo.iActiveCamera == ECamActiveCameraSecondary && - iCaptureOrientation == ECamOrientation90 && + iCaptureOrientation == ECamOrientation180 && ECamSettOn == IntegerSettingValue( ECamSettingItemShowCapturedPhoto ) ) { PRINT( _L( "Camera <> Rotate portrait secondary camera snapshot image 180 degrees" ) ) @@ -6329,6 +6339,11 @@ NotifyControllerObservers( ECamEventImageData ); } PRINT1( _L("Camera <> CCamAppController::HandleImageCaptureEventL array count:%d"), BurstCaptureArray()->Count() ); + + // Snapshots are rotated here if necessary, so that the thumbnails created by + // ThumbNailManager accurately represent the actual images. + // This affects the thumbnails seen in Photos. + // check if snapshot bitmap needs to be rotated before creating a thumbnail from it TBool rotate( ( ECamSettOn == iSettingsModel->IntegerSettingValue( ECamSettingItemImageRotation ) || iInfo.iActiveCamera == ECamActiveCameraSecondary ) && @@ -7404,6 +7419,10 @@ if ( KSensrvChannelTypeIdOrientationData == aChannel.GetChannelInfo().iChannelType ) { + // Rotation is used in primary camera whenever the feature is enabled by user. + // A rotation is always set for secondary camera in portrait and upside down + // portrait orientations due to the the viewfinder mirroring along the landscape axis. + // This affects the final JPEG file. TBool rotate( ECamSettOn == iSettingsModel->IntegerSettingValue( ECamSettingItemImageRotation ) || iInfo.iActiveCamera == ECamActiveCameraSecondary ); @@ -7414,7 +7433,9 @@ aChannel.GetData( orientationPackage ); iImageOrientation = - MapSensorOrientatio2CamOrientation( orientationData.iDeviceOrientation, iLastImageOrientation ); + MapSensorOrientatio2CamOrientation( orientationData.iDeviceOrientation, + iLastImageOrientation, + iInfo.iActiveCamera ); } else { @@ -7529,13 +7550,17 @@ // TCamImageOrientation CCamAppController::MapSensorOrientatio2CamOrientation( - const TSensrvOrientationData::TSensrvDeviceOrientation& aSensorOrientation, TCamImageOrientation aLastImageOrientation ) + const TSensrvOrientationData::TSensrvDeviceOrientation& aSensorOrientation, TCamImageOrientation aLastImageOrientation, + TCamActiveCamera aActiveCamera ) { PRINT1 ( _L("Camera => CCamAppController::MapSensorOrientatio2CamOrientation aSensorOrientation: %d"), aSensorOrientation ); TCamImageOrientation cameraOrientation( ECamOrientation0 ); - switch( aSensorOrientation ) + // Primary camera rotation + if ( aActiveCamera == ECamActiveCameraPrimary ) + { + switch( aSensorOrientation ) { case TSensrvOrientationData::EOrientationDisplayUpwards: // If coming from upside down portrait... @@ -7594,6 +7619,24 @@ PRINT( _L("Camera <> Unexpected orientation value") ); break; } + } + // Secondary camera rotations + else if ( aActiveCamera == ECamActiveCameraSecondary ) + { + if ( aSensorOrientation == TSensrvOrientationData::EOrientationDisplayUp ) // Portrait + { + cameraOrientation = ECamOrientation180; + } + else if ( aSensorOrientation == TSensrvOrientationData::EOrientationDisplayDown ) // Upside down portrait + { + cameraOrientation = ECamOrientation180; + } + else + { + cameraOrientation = ECamOrientation0; + } + } + PRINT1( _L("Camera <= CCamAppController::MapSensorOrientatio2CamOrientation, return [%s]"), KCamOrientationNames[cameraOrientation] ); @@ -7601,7 +7644,7 @@ } // --------------------------------------------------------------------------- -// MapSensorOrientatio2CamOrientation +// MapCamOrientation2RotationAngle // --------------------------------------------------------------------------- // CBitmapRotator::TRotationAngle @@ -10170,10 +10213,18 @@ // --------------------------------------------------------------------------- // TTimeIntervalMicroSeconds -CCamAppController::CalculateVideoTimeRemainingL(const TCamMediaStorage aStorage) +CCamAppController::CalculateVideoTimeRemainingL( TCamMediaStorage aStorage ) { RFs& fs = CEikonEnv::Static()->FsSession(); TInt drive = 0; + // Check if setting the new video path is pending. The path may not have been + // set if camera controller was busy or video mode not initialized. This + // happens e.g. while in Settings menu. + // If yes, use the storage media that is going to be used next. + if( iSetNewPathnamesPending != ECamMediaStorageNone ) + { + aStorage = iSetNewPathnamesPending; + } if(aStorage == ECamMediaStorageCurrent) { const TDesC& filename = CurrentVideoFileName(); @@ -11087,5 +11138,14 @@ return qualityChanged; } +// --------------------------------------------------------------------------- +// CCamAppController::IsSaveStarted +// +// --------------------------------------------------------------------------- +// +TBool CCamAppController::IsSaveStarted() + { + return iSaveStarted; + } // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamAppui.cpp --- a/camerauis/cameraapp/generic/src/CamAppui.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamAppui.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -1941,6 +1941,8 @@ } iFirstVFStart = EFalse; + PRINT( _L( "Camera <> CCamAppUi::HandleCameraEventL updating CBA") ); + UpdateCba(); break; } // ----------------------------------------------------- @@ -1952,6 +1954,12 @@ { iController.StopViewFinderEcam(); } + // Check if currently selected storagemedia has available memory for next capturing + // unless incoming call has stopped recording + if ( !iController.InCallOrRinging() && !iController.InVideocallOrRinging() ) + { + CheckMemoryAvailableForCapturing(); + } break; } // ----------------------------------------------------- @@ -1976,6 +1984,7 @@ { //load settings in case they were changed via GS iController.LoadStaticSettingsL( IsEmbedded() ); + iStillCaptureView->UpdateToolbarIconsL(); // and check the availability of the memory to be used iController.CheckMemoryToUseL(); } @@ -2513,6 +2522,12 @@ case ECamEventSaveComplete: { PRINT( _L( "Camera <> case ECamEventSaveComplete" ) ) + // Check if currently selected storagemedia has available memory for next capturing + // unless saving just started + if( !iController.IsSaveStarted() ) + { + CheckMemoryAvailableForCapturing(); + } if ( ECamImageCaptureSingle == iImageMode ) { if( iController.CaptureKeyPressedWhileImageSaving() && @@ -2637,7 +2652,9 @@ if ( aStatus != KErrInUse && iPreCaptureMode == ECamPreCapCaptureSetup || - iPreCaptureMode == ECamPreCapSceneSetting ) + iPreCaptureMode == ECamPreCapSceneSetting + || iPreCaptureMode == ECamPreCapGenericSetting + ) { // VF settings does not go to standby state, VF is stopped instead // Screen saver releases resources @@ -2676,7 +2693,8 @@ // VF settings does not go to standby state, VF is stopped instead if ( aStatus == KErrInUse || iPreCaptureMode != ECamPreCapCaptureSetup && - iPreCaptureMode != ECamPreCapSceneSetting ) + iPreCaptureMode != ECamPreCapSceneSetting + && iPreCaptureMode != ECamPreCapGenericSetting ) { PRINT( _L( "Camera <> CCamAppUi::HandleStandbyEventL: Set standby status..") ); SetStandbyStatus( aStatus ); @@ -2968,6 +2986,8 @@ case EEventFocusGained: { PRINT( _L("Camera <> CCamAppUi::HandleWsEventL: case EEventFocusGained") ); + iReturningFromPretendExit = iPretendExit; + TBool uiOverride = iController.UiConfigManagerPtr() && iController.UiConfigManagerPtr()->IsUIOrientationOverrideSupported(); if ( !iSendAsInProgress ) @@ -3075,7 +3095,8 @@ // by the user. iController.LoadStaticSettingsL( IsEmbedded() ); } - + PRINT( _L("Camera <> CCamAppUi::HandleWsEvent ECamEventFocusGained calling UpdateToolbarIconsL") ); + if ( iPretendExit ) iStillCaptureView->UpdateToolbarIconsL(); if( !uiOverride ) { @@ -3257,22 +3278,8 @@ // force side pane and active palette to update if simulating app // launch this has to be done after the call to TrySwitchViewL() to // ensure that IsBurstEnabled() returns the correct value. - if ( returningFromPretendExit ) - { - /*if ( iController.UiConfigManagerPtr() && - iController.UiConfigManagerPtr()->IsLocationSupported() ) - { - // If record location setting is on, start location trail, - // provided, primary camera and pre-capture view - if ( ECamLocationOn == iController.IntegerSettingValue( ECamSettingItemRecLocation ) - && ECamActiveCameraPrimary == ActiveCamera() - && ECamViewStatePreCapture == iViewState - ) - { - iController.StartLocationTrailL(); - } - }*/ - + if ( iReturningFromPretendExit ) + { iCamSidePane->SetCaptureMode( iMode ); // The active palette is always switched on when simulating // app launch @@ -3285,7 +3292,7 @@ } } - if ( uiOverride && ( returningFromPretendExit || iFirstBoot ) ) + if ( uiOverride && ( iReturningFromPretendExit || iFirstBoot ) ) { SetActivePaletteVisibility( EFalse ); } @@ -4304,106 +4311,117 @@ PRINT( _L("Camera => CCamAppUi::CheckMemoryL") ); TBool capture = ETrue; - TCamMediaStorage storeToCheck = ECamMediaStorageCurrent; - - if ( ECamControllerVideo == iController.CurrentMode() && - ECamMediaStorageCard == iController.IntegerSettingValue( ECamSettingItemVideoMediaStorage ) && - IsMemoryFullOrUnavailable( ECamMediaStorageCard ) ) - { - storeToCheck = ECamMediaStorageCard; - } - if(AllMemoriesFullOrUnavailable()) - { - HBufC* text = StringLoader::LoadLC(R_NOTE_TEXT_ALLMEMORY_FULL); - TInt ret = ShowOOMNoteL( *text, EFalse); - capture = EFalse; - CleanupStack::PopAndDestroy(text); - } - 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 ); - iController.StopIdleTimer(); - TInt ret = note->RunDlgLD(); - CleanupStack::PopAndDestroy( text ); - if(EAknSoftkeyOk == ret) - { - //when memoryDialog showed, redraw background - if ( IsDirectViewfinderActive() ) - { - TRAP_IGNORE( HandleCommandL( ECamCmdRedrawScreen ) ); - } + if ( IsMemoryAvailableForCapturing() ) + { + capture = ETrue; + } + else + { + TCamMediaStorage storeToCheck = ECamMediaStorageCurrent; + + if ( ECamControllerVideo == iController.CurrentMode() && + ECamMediaStorageCard == iController. + IntegerSettingValue( ECamSettingItemVideoMediaStorage ) && + IsMemoryFullOrUnavailable( ECamMediaStorageCard ) ) + { + storeToCheck = ECamMediaStorageCard; + } + if(AllMemoriesFullOrUnavailable()) + { + HBufC* text = StringLoader::LoadLC(R_NOTE_TEXT_ALLMEMORY_FULL); + TInt ret = ShowOOMNoteL( *text, EFalse); + capture = EFalse; + CleanupStack::PopAndDestroy(text); + } + 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 ); + iController.StopIdleTimer(); + TInt ret = note->RunDlgLD(); + CleanupStack::PopAndDestroy( text ); + if(EAknSoftkeyOk == ret) + { + //when memoryDialog showed, redraw background + if ( IsDirectViewfinderActive() ) + { + TRAP_IGNORE( HandleCommandL( ECamCmdRedrawScreen ) ); + } - TInt supportedMemTypes = 0; - TCamMediaStorage currentLocation; - TInt key = ( ECamControllerVideo == iMode ) - ? ECamSettingItemVideoMediaStorage - : ECamSettingItemPhotoMediaStorage; - - if ( iMMCRemoveNoteRequiredOnCapture ) - { - iMMCRemoveNoteRequiredOnCapture = EFalse; - currentLocation = static_cast( - iController. - IntegerSettingValueUnfiltered( key ) ); - } - else - { - currentLocation = static_cast( - iController.IntegerSettingValue( key ) ); - } - if(currentLocation != ECamMediaStoragePhone && - !IsMemoryFullOrUnavailable(ECamMediaStoragePhone)) - { - supportedMemTypes |= AknCommonDialogsDynMem::EMemoryTypePhone; - } - if(currentLocation != ECamMediaStorageCard && - !IsMemoryFullOrUnavailable(ECamMediaStorageCard)) - { - supportedMemTypes |= AknCommonDialogsDynMem::EMemoryTypeMMCExternal; - } - if(currentLocation != ECamMediaStorageMassStorage && - !IsMemoryFullOrUnavailable(ECamMediaStorageMassStorage)) - { - supportedMemTypes |= - AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; - } - - CAknMemorySelectionDialogMultiDrive* memoryDialog = - CAknMemorySelectionDialogMultiDrive::NewL( - ECFDDialogTypeSelect, - R_CAM_MEMORY_SELECT_DIALOG, - EFalse, - supportedMemTypes ); - TDriveNumber driveNumber = static_cast(KErrNotFound); - CAknCommonDialogsBase::TReturnKey result = - memoryDialog->ExecuteL( driveNumber ); - - if ( result != CAknCommonDialogsBase::TReturnKey( - CAknCommonDialogsBase::ERightSoftkey) ) - { - DriveInfo::TDefaultDrives memVal = - static_cast( - CamUtility::GetDriveTypeFromDriveNumber(driveNumber)); - TInt settingValue = - CamUtility::MapFromSettingsListMemory( memVal ); - iController.SetIntegerSettingValueL(key,settingValue); - } - else - { - //No impl. - } - capture = EFalse; - } - else - { - capture = EFalse; - } - iController.StartIdleTimer(); - } - + TInt supportedMemTypes = 0; + TCamMediaStorage currentLocation; + TInt key = ( ECamControllerVideo == iMode ) + ? ECamSettingItemVideoMediaStorage + : ECamSettingItemPhotoMediaStorage; + + if ( iMMCRemoveNoteRequiredOnCapture ) + { + iMMCRemoveNoteRequiredOnCapture = EFalse; + currentLocation = static_cast( + iController. + IntegerSettingValueUnfiltered( key ) ); + } + else + { + currentLocation = static_cast( + iController.IntegerSettingValue( key ) ); + } + if(currentLocation != ECamMediaStoragePhone && + !IsMemoryFullOrUnavailable(ECamMediaStoragePhone)) + { + supportedMemTypes |= + AknCommonDialogsDynMem::EMemoryTypePhone; + } + if(currentLocation != ECamMediaStorageCard && + !IsMemoryFullOrUnavailable(ECamMediaStorageCard)) + { + supportedMemTypes |= + AknCommonDialogsDynMem::EMemoryTypeMMCExternal; + } + if(currentLocation != ECamMediaStorageMassStorage && + !IsMemoryFullOrUnavailable(ECamMediaStorageMassStorage)) + { + supportedMemTypes |= + AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; + } + + CAknMemorySelectionDialogMultiDrive* memoryDialog = + CAknMemorySelectionDialogMultiDrive::NewL( + ECFDDialogTypeSelect, + R_CAM_MEMORY_SELECT_DIALOG, + EFalse, + supportedMemTypes ); + TDriveNumber driveNumber = static_cast(KErrNotFound); + CAknCommonDialogsBase::TReturnKey result = + memoryDialog->ExecuteL( driveNumber ); + + if ( result != CAknCommonDialogsBase::TReturnKey( + CAknCommonDialogsBase::ERightSoftkey) ) + { + DriveInfo::TDefaultDrives memVal = + static_cast( + CamUtility::GetDriveTypeFromDriveNumber(driveNumber)); + TInt settingValue = + CamUtility::MapFromSettingsListMemory( memVal ); + iController.SetIntegerSettingValueL(key,settingValue); + } + else + { + //No impl. + } + capture = EFalse; + } + else + { + capture = EFalse; + } + iController.StartIdleTimer(); + + UpdateCba(); // Make sure that softkeys are visible. + } + } PRINT1( _L("Camera <= CCamAppUi::CheckMemoryL, capture ok: %d"), capture ); OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMAPPUI_CHECKMEMORYL, "e_CCamAppUi_CheckMemoryL 0" ); @@ -5984,6 +6002,26 @@ return iPretendExit; } +// --------------------------------------------------------- +// CCamAppUi::ReturningFromPretendExit +// Indicates whether or not the application was in a simulated exit situation +// --------------------------------------------------------- +// +TBool CCamAppUi::ReturningFromPretendExit() const + { + return iReturningFromPretendExit; + } + +// --------------------------------------------------------- +// CCamAppUi::IsFirstBoot +// Indicates whether or not the application started the first time +// --------------------------------------------------------- +// +TBool CCamAppUi::IsFirstBoot() const + { + return iFirstBoot; + } + // --------------------------------------------------------------------------- // CCamAppUi::SendCameraAppToBackgroundL // Sends the camera application to the background, to pretend we're closing @@ -8137,7 +8175,8 @@ ( iMode == ECamControllerImage && iView == iStillCaptureView ) ) && ( iPreCaptureMode != ECamPreCapCaptureSetup ) && ( iPreCaptureMode != ECamPreCapGenericSetting ) && - ( iPreCaptureMode != ECamPreCapSceneSetting ) ) + ( iPreCaptureMode != ECamPreCapSceneSetting ) && + ( iPreCaptureMode != ECamPreCapStandby ) ) { fixedToolbar->SetToolbarVisibility( ETrue ); } @@ -8150,7 +8189,8 @@ { if( (iPreCaptureMode != ECamPreCapCaptureSetup) && (iPreCaptureMode != ECamPreCapGenericSetting) && - (iPreCaptureMode != ECamPreCapSceneSetting ) ) + (iPreCaptureMode != ECamPreCapSceneSetting) && + (iPreCaptureMode != ECamPreCapStandby) ) { fixedToolbar->SetToolbarVisibility( ETrue ); } @@ -8455,4 +8495,39 @@ { iViewFinderInTransit = aInTransit; } + +// ----------------------------------------------------------------------------- +// CCamAppUi::CheckMemoryAvailableForCapturing +// ----------------------------------------------------------------------------- +// +void +CCamAppUi::CheckMemoryAvailableForCapturing() + { + PRINT( _L("Camera => CCamAppUi::CheckMemoryAvailableForCapturing") ) + OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, CCAMAPPUI_CHECKMEMORYAVAILABLEFORCAPTURING, "e_CCamAppUi_CheckMemoryAvailableForCapturing 1" ); + if ( ( ECamControllerVideo == iController.CurrentMode() || + ECamControllerVideo == iController.TargetMode() ) && + ECamMediaStorageCard == iController. + IntegerSettingValue( ECamSettingItemVideoMediaStorage ) ) + { + iMemoryAvailableForCapturing = !IsMemoryFullOrUnavailable( ECamMediaStorageCard ); + } + else + { + iMemoryAvailableForCapturing = !IsMemoryFullOrUnavailable( ECamMediaStorageCurrent ); + } + OstTrace0( CAMERAAPP_PERFORMANCE_DETAIL, DUP1_CCAMAPPUI_CHECKMEMORYAVAILABLEFORCAPTURING, "e_CCamAppUi_CheckMemoryAvailableForCapturing 0" ); + PRINT1( _L("Camera <= CCamAppUi::CheckMemoryAvailableForCapturing iMemoryAvailableForCapturing:%d"), iMemoryAvailableForCapturing ) + } + +// ----------------------------------------------------------------------------- +// CCamAppUi::IsMemoryAvailableForCapturing +// ----------------------------------------------------------------------------- +// +TBool +CCamAppUi::IsMemoryAvailableForCapturing() const + { + return iMemoryAvailableForCapturing; + } + // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamBurstCaptureArray.cpp --- a/camerauis/cameraapp/generic/src/CamBurstCaptureArray.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamBurstCaptureArray.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -386,6 +386,12 @@ ret = iImageSaveActive.DeleteFile( iBurstItems[aItemIndex]->FileName(), saveRequested ); PRINT1( _L("Camera <> CCamBurstCaptureArray::SetDeleted iImageSaveActive.DeleteFile() returned %d" ), ret ); + if ( ret == KErrInUse ) + { + User::After( 700000 ); + ret = iImageSaveActive.DeleteFile( iBurstItems[aItemIndex]->FileName(), saveRequested ); + PRINT1( _L("Camera <> CCamBurstCaptureArray::SetDeleted iImageSaveActive.DeleteFile() Retry Delete returned %d" ), ret ); + } // file might have already been deleted and that's ok so ignore -NotFound errors if( ret == KErrNone || ret == KErrNotFound || ret == KErrPathNotFound ) { diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp --- a/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamBurstThumbnailView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -719,7 +719,9 @@ R_CAM_SET_AS_CALL_IMAGE_INTEREST ); iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, R_CAM_SHARE_ON_OVI_INTEREST ); - + // SHARE_AIW + iAiwServiceHandler->AttachMenuL( R_CAM_BURST_THUMBNAIL_MENU, + R_CAM_AIW_VIEW_INTEREST ); static_cast( AppUi() )->PushDefaultNaviPaneL(); PERF_EVENT_END_L2( EPerfEventBurstThumbnailViewActivation ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -47,6 +47,8 @@ // CONSTANTS const TUint KCameraEventInterest = ECamCameraEventClassVfData; +const TUint32 KToolbarExtensionBgColor = 0x00000000; +const TInt KToolBarExtensionBgAlpha = 0x7F; // =========================================================================== // MEMBER FUNCTIONS @@ -60,12 +62,13 @@ CCamAppController& aController, CAknView& aView, CCamCaptureSetupControlHandler& aControlHandler, - const TRect& aRect ) + const TRect& aRect, TBool aFullScreenVF ) { CCamCaptureSetupContainer* self = new( ELeave ) CCamCaptureSetupContainer( aController, aView, - aControlHandler ); + aControlHandler, + aFullScreenVF ); CleanupStack::PushL( self ); self->ConstructL( aRect ); CleanupStack::Pop( self ); @@ -116,10 +119,17 @@ fixedToolbar->SetToolbarVisibility( EFalse ); } } + iViewFinding = iControlHandler.ControlUsesViewFinder(); - iCaptureSetupControl = iControlHandler.CreateCaptureSetupControlL( this ); + if( iViewFinding ) + { + iCaptureSetupControl = iControlHandler.CreateCaptureSetupControlL( this, !iFullScreenVF ); + } + else + { + iCaptureSetupControl = iControlHandler.CreateCaptureSetupControlL( this, ETrue ); + } iCaptureSetupControl->SetContainerWindowL( *this ); - iViewFinding = iControlHandler.ControlUsesViewFinder(); // If the control requires a viewfinder then add it if ( iViewFinding ) @@ -251,10 +261,12 @@ CCamCaptureSetupContainer::CCamCaptureSetupContainer( CCamAppController& aController, CAknView& aView, - CCamCaptureSetupControlHandler& aControlHandler ) + CCamCaptureSetupControlHandler& aControlHandler, + TBool aFullScreenVF ) : CCamContainerBase( aController, aView ), iControlHandler( aControlHandler ), -iActivateOnTouchRelease(EFalse) +iActivateOnTouchRelease(EFalse), +iFullScreenVF(aFullScreenVF) { } @@ -303,7 +315,14 @@ gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); gc.SetBrushColor( TRgb::Color16MA( 0 ) ); gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + if( iFullScreenVF ) + { + gc.DrawRect( aRect ); + } + else + { gc.DrawRect( iViewFinderRectLayout.Rect() ); + } // Reset the brush after use (otherwise anything drawn // after the viewfinder will also show viewfinder frames) @@ -316,7 +335,25 @@ EAknsCIQsnTextColorsCG6 ); if ( CamUtility::IsNhdDevice() ) { - iTitleTextRectLayout.DrawText( gc, *iTitleText, ETrue, color ); + if( appUi->IsDirectViewfinderActive() && + iViewFinding && iFullScreenVF ) + { + gc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) ); + gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + gc.DrawRect( TRect( iLayoutAreaRect.iTl.iX, + iLayoutAreaRect.iTl.iY, + iLayoutAreaRect.iBr.iX, + iTitleTextRectLayout.TextRect().iBr.iY ) ); + + gc.SetBrushStyle( CGraphicsContext::ENullBrush ); + + color=TRgb( KRgbWhite ); + iTitleTextRectLayout.DrawText( gc, *iTitleText, ETrue, color ); + } + else + { + iTitleTextRectLayout.DrawText( gc, *iTitleText, ETrue, color ); + } } else { @@ -732,51 +769,6 @@ } */ -// --------------------------------------------------------- -// CCamCaptureSetupContainer::ReserveAndStartVF -// --------------------------------------------------------- -// -void CCamCaptureSetupContainer::ReserveAndStartVF() - { - PRINT ( _L("Camera => CCamCaptureSetupContainer::ReserveAndStartVF") ); - TCamCameraMode mode = iController.CurrentMode(); - if(iController.IsAppUiAvailable()) - { - TVwsViewId currentViewId; - CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); - appUi->GetActiveViewId( currentViewId ); - switch ( currentViewId.iViewUid.iUid ) - { - case ECamViewIdPhotoUserSceneSetup: - case ECamViewIdStillPreCapture: - { - mode = ECamControllerImage; - } - break; - case ECamViewIdVideoPreCapture: - { - mode = ECamControllerVideo; - } - break; - default: - { - //Assume imagemode if view cannot be determined. - if(mode==ECamControllerIdle) - { - mode = ECamControllerImage; - } - } - break; - } - } - //Don't reserve camera and start viewfinder if shutting down. - if(mode!=ECamControllerShutdown) - { - iController.EnterViewfinderMode( mode ); - iController.StartIdleTimer(); - } - PRINT ( _L("Camera <= CCamCaptureSetupContainer::ReserveAndStartVF") ); - } // // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamCaptureSetupControlHandler.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupControlHandler.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupControlHandler.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -67,7 +67,8 @@ // Ownership is transferred to the calling class. // ----------------------------------------------------------------------------- // -CCoeControl* CCamCaptureSetupControlHandler::CreateCaptureSetupControlL( const CCoeControl* aParent ) +CCoeControl* CCamCaptureSetupControlHandler::CreateCaptureSetupControlL( const CCoeControl* aParent, + TBool aSkinnedBackGround ) { // create a new control determined by iSettingType. // set self as observer @@ -84,7 +85,7 @@ { // create and return a slider control CCamCaptureSetupSlider* captureSetupControl = - CCamCaptureSetupSlider::NewL( aParent, this, iSettingType, 0 ); + CCamCaptureSetupSlider::NewL( aParent, this, iSettingType, 0, aSkinnedBackGround ); CleanupStack::PushL( captureSetupControl ); captureSetupControl->InitializeL ( iController.IntegerSettingValue( iSettingType ) ); @@ -101,7 +102,7 @@ // create and return a radio-button listbox CCamCaptureSetupListBox* captureSetupControl = new( ELeave ) CCamCaptureSetupListBox( this, - iController ); + iController, aSkinnedBackGround ); CleanupStack::PushL( captureSetupControl ); captureSetupControl->ConstructL( aParent, resourceId, iSettingType ); @@ -289,9 +290,7 @@ // TBool CCamCaptureSetupControlHandler::ControlUsesViewFinder() const { - return ( ( iSettingType != ECamSettingItemDynamicPhotoFlash ) && - ( iSettingType != ECamSettingItemUserSceneFlash ) && - ( iSettingType != ECamSettingItemDynamicSelfTimer )); + return ETrue; } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupSlider.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -63,6 +63,8 @@ const TInt KEVMinus10Ind = 6; const TInt KEVMinus15Ind = 7; const TInt KEVMinus20Ind = 8; +const TUint32 KToolbarExtensionBgColor = 0x00000000; +const TInt KToolBarExtensionBgAlpha = 0x7F; @@ -83,6 +85,11 @@ PRINT( _L("Camera <= ~CCamSliderLegend") ); } +CCamSliderLegend::CCamSliderLegend( TBool aFullySkinned ) +: iFullySkinned( aFullySkinned ) + { + } + // --------------------------------------------------------- // CCamSliderLegend::Draw // Draws the legend @@ -93,10 +100,16 @@ if ( iItem == ECamSliderLegendItemText ) { TRgb color; + if( iFullySkinned ) + { MAknsSkinInstance* skin = AknsUtils::SkinInstance(); AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); - + } + else + { + color=KRgbWhite; + } iPosition.DrawText( aGc, iText->Des(), ETrue, color ); } else @@ -179,8 +192,9 @@ // CCamCaptureSetupSlider::CCamCaptureSetupSlider( MCamSettingValueObserver* aObserver, TCamSettingItemIds aSettingType, - TInt aSteps ) -: iSettingObserver( aObserver ), iSettingType( aSettingType ), iSteps( aSteps ) + TInt aSteps, + TBool aFullySkinned ) +: iSettingObserver( aObserver ), iSettingType( aSettingType ), iSteps( aSteps ), iFullySkinned( aFullySkinned ) { } @@ -305,10 +319,13 @@ CCamCaptureSetupSlider* CCamCaptureSetupSlider::NewL( const CCoeControl* aParent, MCamSettingValueObserver* aObserver, TCamSettingItemIds aSettingItem, - TInt aSteps ) + TInt aSteps, + TBool aFullySkinned ) { CCamCaptureSetupSlider* self = - new( ELeave ) CCamCaptureSetupSlider( aObserver, aSettingItem, aSteps ); + new( ELeave ) CCamCaptureSetupSlider( aObserver, aSettingItem, aSteps, + aFullySkinned ); + //ME:END CleanupStack::PushL( self ); self->ConstructL( aParent ); CleanupStack::Pop( self ); @@ -397,9 +414,28 @@ { CWindowGc& gc = SystemGc(); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext *cc = AknsDrawUtils::ControlContext( iParentControl ); - AknsDrawUtils::Background( skin, cc, iParentControl, gc, Rect() ); + if( iFullySkinned ) + { + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + MAknsControlContext *cc = AknsDrawUtils::ControlContext( iParentControl ); + AknsDrawUtils::Background( skin, cc, iParentControl, gc, Rect() ); + } + else + { + gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); + 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 TInt count = iLegendArray.Count(); @@ -671,7 +707,7 @@ // Read all EV entries from the resource file and construct them with layout for ( TInt i = 0; i < count; i++ ) { - CCamSliderLegend* legend = new ( ELeave ) CCamSliderLegend; + CCamSliderLegend* legend = new ( ELeave ) CCamSliderLegend( iFullySkinned ); CleanupStack::PushL( legend ); switch ( i ) { @@ -784,7 +820,7 @@ // and construct them with layout for ( TInt i = 0; i < count; i++ ) { - CCamSliderLegend* legend = new ( ELeave ) CCamSliderLegend; + CCamSliderLegend* legend = new ( ELeave ) CCamSliderLegend( iFullySkinned ); CleanupStack::PushL( legend ); switch ( i ) { diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamCaptureSetupViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -97,14 +97,9 @@ case ECamCmdCaptureSetupBrightnessVideo: case ECamCmdCaptureSetupContrastVideo: case ECamCmdCaptureSetupImageSharpnessStill: - { - SwitchToCaptureSetupModeL( aCommand ); - } - break; case ECamCmdCaptureSetupFlashStill: case ECamCmdCaptureSetupSelfTimer: { - iController.ExitViewfinderMode( ECamControllerImage ); SwitchToCaptureSetupModeL( aCommand ); } break; @@ -183,31 +178,19 @@ //lint -fallthrough case EAknSoftkeyOk: { - if ( iCaptureSetupModeActive && iCaptureSetupControlHandler ) - { - TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType(); - if ( iSettingItemId == ECamSettingItemDynamicSelfTimer ) - { - iController.SetSlideInSelfTimerPreview(EFalse); - } - - iController.CommitPreviewChanges(); - // fallthrough to exit CaptureSetup mode - } - if( appUi && appUi->APHandler()->AccessedViaAP() ) - { - if( !userSceneActive) - { - appUi->APHandler()->APOperationComplete(); - } - ExitAllModesL(); - } + CaptureSetupModeSelection(); + } break; case ECamMSKCmdAppChange: case EAknSoftkeySelect: { - if ( iSceneSettingContainer ) + if ( iCaptureSetupModeActive && iCaptureSetupControlHandler ) + { + CaptureSetupModeSelection(); + // fallthrough to exit CaptureSetup mode + } + else if ( iSceneSettingContainer ) { if ( iSceneSettingContainer->UserSceneHighlighted() ) @@ -357,7 +340,7 @@ // --------------------------------------------------------------------------- // CCamCaptureSetupViewBase::CCamCaptureSetupViewBase( CCamAppController& aController ) - : CCamViewBase( aController ) + : CCamViewBase( aController ),iForceAvkonCBA(EFalse) { } @@ -512,6 +495,12 @@ iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE; } break; + case ECamCmdSetUserDefault: + { + settingItemId = ECamSettingItemUserSceneDefault; + iSettingModeTitleResourceId = R_CAM_USER_SCENE_SETUP_TITLE; + } + break; default: { User::Leave( KErrNotSupported ); @@ -552,7 +541,7 @@ // Enter capture setup mode // --------------------------------------------------------------------------- // -void CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand ) +void CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( TInt aSetupCommand, TBool aFullScreenVF ) { __ASSERT_DEBUG( !iCaptureSetupControlHandler && !iCaptureSetupContainer, CamPanic( ECamPanicResourceLeak ) ); @@ -568,7 +557,7 @@ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect ); } iCaptureSetupContainer = CCamCaptureSetupContainer::NewL( iController, - *this, *iCaptureSetupControlHandler, rect ); + *this, *iCaptureSetupControlHandler, rect, aFullScreenVF ); iCaptureSetupContainer->SetMopParent( this ); appUi->AddToStackL( *this, iCaptureSetupContainer ); iCaptureSetupContainer->ActivateL(); @@ -719,7 +708,7 @@ // Show InfoListBox // --------------------------------------------------------------------------- // -void CCamCaptureSetupViewBase::SwitchToInfoListBoxL( TCamInfoListBoxMode /* aMode */ ) +void CCamCaptureSetupViewBase::SwitchToInfoListBoxL( TCamInfoListBoxMode aMode, TBool aFullySkinned ) { // Cleanup the view correctly if a leave occurs CleanupStack::PushL( TCleanupItem( CleanupInfoListBox, this ) ); @@ -729,7 +718,7 @@ iInfoListBoxContainer->ActivateL(); // UpdateCbaL need this boolean to be set in // order to return the correct CBA - SetInfoListBoxMode(ETrue); + SetInfoListBoxMode(ETrue, aFullySkinned); UpdateCbaL(); SetTitlePaneTextL(); appUi->PushDefaultNaviPaneL(); @@ -971,6 +960,37 @@ } +void CCamCaptureSetupViewBase::CaptureSetupModeSelection() + { + + TUid view = Id(); + + TBool userSceneActive = ( view.iUid == ECamViewIdPhotoUserSceneSetup ); + + CCamAppUiBase* appUi = static_cast( AppUi() ); + + if ( iCaptureSetupModeActive && iCaptureSetupControlHandler ) + { + TCamSettingItemIds iSettingItemId = iCaptureSetupControlHandler->SettingType(); + if ( iSettingItemId == ECamSettingItemDynamicSelfTimer ) + { + iController.SetSlideInSelfTimerPreview(EFalse); + } + + iController.CommitPreviewChanges(); + // fallthrough to exit CaptureSetup mode + } + if( appUi && appUi->APHandler()->AccessedViaAP() ) + { + if( !userSceneActive) + { + appUi->APHandler()->APOperationComplete(); + } + ExitAllModesL(); + } + + } + // --------------------------------------------------------------------------- // CCamCaptureSetupViewBase::DynInitMenuPaneL // Dynamically initialise the options menu @@ -1047,7 +1067,7 @@ // Sets the iInfoListBoxActive flag // --------------------------------------------------------------------------- // -void CCamCaptureSetupViewBase::SetInfoListBoxMode( TBool aActive ) +void CCamCaptureSetupViewBase::SetInfoListBoxMode( TBool aActive, TBool aFullySkinned ) { // We need to inform the AppUi iInfoListBoxActive = aActive; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamContainerBase.cpp --- a/camerauis/cameraapp/generic/src/CamContainerBase.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamContainerBase.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -892,4 +892,50 @@ return control; } +// --------------------------------------------------------- +// CCamCaptureSetupContainer::ReserveAndStartVF +// --------------------------------------------------------- +// +void CCamContainerBase::ReserveAndStartVF() + { + PRINT ( _L("Camera => CCamContainerBase::ReserveAndStartVF") ); + TCamCameraMode mode = iController.CurrentMode(); + if(iController.IsAppUiAvailable()) + { + TVwsViewId currentViewId; + CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); + appUi->GetActiveViewId( currentViewId ); + switch ( currentViewId.iViewUid.iUid ) + { + case ECamViewIdPhotoUserSceneSetup: + case ECamViewIdStillPreCapture: + { + mode = ECamControllerImage; + } + break; + case ECamViewIdVideoPreCapture: + { + mode = ECamControllerVideo; + } + break; + default: + { + //Assume imagemode if view cannot be determined. + if(mode==ECamControllerIdle) + { + mode = ECamControllerImage; + } + } + break; + } + } + //Don't reserve camera and start viewfinder if shutting down. + if(mode!=ECamControllerShutdown) + { + iController.EnterViewfinderMode( mode ); + iController.StartIdleTimer(); + } + PRINT ( _L("Camera <= CCamContainerBase::ReserveAndStartVF") ); + } + // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamImageSaveActive.cpp --- a/camerauis/cameraapp/generic/src/CamImageSaveActive.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamImageSaveActive.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -1017,7 +1017,6 @@ // the thumbnail is created using the imagefile if ( !err ) { - snapshot->SetDisplayMode( EColor64K ); TRAP( err, iSnapArray.AppendL( snapshot ) ); if ( !err ) { diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamInfoListBox.cpp --- a/camerauis/cameraapp/generic/src/CamInfoListBox.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamInfoListBox.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -49,7 +49,8 @@ const CCoeControl* aParent, RPointerArray& aSummaryTitleTextArray, RPointerArray& aSummaryDescriptionTextArray, - TInt aResourceId ) + TInt aResourceId, + TBool aSkinnedBackGround ) { iBorder = TGulBorder::ENone; @@ -59,7 +60,7 @@ aSummaryDescriptionTextArray, aResourceId, Rect() ); CCamCaptureSetupListItemDrawer* itemDrawer = - CCamCaptureSetupListItemDrawer::NewL( *model ); + CCamCaptureSetupListItemDrawer::NewL( *model, aSkinnedBackGround ); itemDrawer->SetParentControl( aParent ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp --- a/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamInfoListBoxContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -41,6 +41,8 @@ const TInt KInfoTooltipDelay = 0; // time (milliseconds) delay when showing the tooltip const TInt KInfoTooltipDisplayTime = 5000; // maximum time (milliseconds) the tooltip is displayed const TInt KExplTxtGranularity = 6; +const TUint32 KToolbarExtensionBgColor = 0x00000000; +const TInt KToolBarExtensionBgAlpha = 0x7F; // ================= MEMBER FUNCTIONS ======================= @@ -55,12 +57,14 @@ TInt aListBoxResource, TInt aSummaryResource, TInt aSettingValue, - TInt aTitleResource ) + TInt aTitleResource, + TBool aSkinnedBackGround ) { CCamInfoListBoxContainer* self = new( ELeave ) CCamInfoListBoxContainer( aController, aView, - aSettingValue ); + aSettingValue, + aSkinnedBackGround ); CleanupStack::PushL( self ); self->ConstructL( aRect, aListBoxResource, aSummaryResource, aTitleResource); CleanupStack::Pop( self ); @@ -142,7 +146,8 @@ // Construct the listbox iListBox = new( ELeave ) CCamInfoListBox( this, iController ); - iListBox->ConstructL( iController, this, iTitleArray, iDescArray, aListBoxResource ); + iListBox->ConstructL( iController, this, iTitleArray, iDescArray, aListBoxResource, + iSkinnedBackGround ); iListBox->DisableSingleClick( ETrue ); // Highlight the currently active setting value @@ -252,12 +257,14 @@ // CCamInfoListBoxContainer::CCamInfoListBoxContainer( CCamAppController& aController, CAknView& aView, - TInt aSettingValue ) + TInt aSettingValue, + TBool aSkinnedBackGround ) : CCamContainerBase( aController, aView ), iSettingValue( aSettingValue ), iTooltipController(NULL), iShowTooltip(EFalse), iTooltipIndex(-1), -iActivateOnTouchRelease(EFalse) +iActivateOnTouchRelease(EFalse), +iSkinnedBackGround(aSkinnedBackGround) { } @@ -329,12 +336,44 @@ CWindowGc& gc = SystemGc(); if ( CamUtility::IsNhdDevice() ) { + TRgb color; + if( iSkinnedBackGround ) + { MAknsSkinInstance* skin = AknsUtils::SkinInstance(); AknsDrawUtils::Background( skin, iBgContext, gc, aRect ); // draw the title text - TRgb color; AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); + } + else + { + // Fill control with transparency bg colour + gc.SetPenStyle( CGraphicsContext::ENullPen ); + gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); + color = TRgb( 0,0 ); + gc.SetBrushColor( color ); + gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + gc.DrawRect( aRect ); + gc.SetBrushColor( color ); + gc.DrawRect( iTitleTextRectLayout.TextRect() ); + // Reset the brush after use (otherwise anything drawn + // after the viewfinder will also show viewfinder frames) + + gc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) ); + gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + gc.DrawRect( TRect( iLayoutAreaRect.iTl.iX, + iLayoutAreaRect.iTl.iY, + iLayoutAreaRect.iBr.iX, + iTitleTextRectLayout.TextRect().iBr.iY ) ); + + gc.SetBrushStyle( CGraphicsContext::ENullBrush ); + + + CCamAppUi* appUi = static_cast( iEikonEnv->AppUi() ); + appUi->StatusPane()->MakeVisible( EFalse ); + + color = TRgb( KRgbWhite ); + } iTitleTextRectLayout.DrawText( gc, *iListboxTitle, ETrue, color ); } else @@ -430,6 +469,10 @@ aPointerEvent.iPosition.iX, aPointerEvent.iPosition.iY ); iListBox->HandlePointerEventL(aPointerEvent); + if( !iController.IsViewFinding() && !iSkinnedBackGround ) + { + ReserveAndStartVF(); + } /*TInt oldListItemIndex = -1; TInt newListItemIndex = -1; TBool handleItemActivation = EFalse; @@ -665,8 +708,15 @@ AknLayoutScalable_Apps::main_cset_list_pane( 1 ) ); } + 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(); } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp --- a/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPostCaptureContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -27,7 +27,10 @@ #include #include #include -#include +#include +#include + +#include #include "CamPanic.h" #include "CamAppUi.h" @@ -74,6 +77,36 @@ iController.RemoveControllerObserver( this ); delete iBatteryPaneController; + if(iPlayIcon) + { + delete iPlayIcon; + iPlayIcon = NULL; + } + if(iPlayIconMask) + { + delete iPlayIconMask; + iPlayIconMask = NULL; + } + if(iPlayIconBg) + { + delete iPlayIconBg; + iPlayIconBg = NULL; + } + if(iPlayIconBgMask) + { + delete iPlayIconBgMask; + iPlayIconBgMask = NULL; + } + if(iPlayIconBgPressed) + { + delete iPlayIconBgPressed; + iPlayIconBgPressed = NULL; + } + if(iPlayIconBgPressedMask) + { + delete iPlayIconBgPressedMask; + iPlayIconBgPressedMask = NULL; + } PRINT( _L("Camera <= ~CCamPostCaptureContainer" )) } @@ -101,7 +134,49 @@ // Still mode - processing text needed PrepareProcessingTextL( ETrue ); } - + if ( iView.Id().iUid == ECamViewIdVideoPostCapture ) + { + _LIT(KResName, "z:\\resource\\apps\\cameraapp.mif"); + TSize playIconSize( 140, 92); + AknIconUtils::CreateIconL( + iPlayIcon, + iPlayIconMask, + KResName(), + EMbmCameraappQgn_indi_media_fullscreen_play, + EMbmCameraappQgn_indi_media_fullscreen_play_mask); + AknIconUtils::SetSize(iPlayIcon,playIconSize,EAspectRatioPreserved); + AknIconUtils::SetSize(iPlayIconMask,playIconSize,EAspectRatioPreserved); + + //!!Please don't remove this commented section + /*TSize playIconSize(40,40); + AknIconUtils::CreateIconL( + iPlayIcon, + iPlayIconMask, + KResName(), + EMbmCameraappQgn_indi_cam4_tb_play, + EMbmCameraappQgn_indi_cam4_tb_play_mask); + AknIconUtils::SetSize(iPlayIcon,playIconSize,EAspectRatioPreserved); + AknIconUtils::SetSize(iPlayIconMask,playIconSize,EAspectRatioPreserved); + + TSize playIconBgSize(140,92); + AknIconUtils::CreateIconL( + iPlayIconBg, + iPlayIconBgMask, + KResName(), + EMbmCameraappQgn_bg_lcam_vid_postcap_play, + EMbmCameraappQgn_bg_lcam_vid_postcap_play_mask); + AknIconUtils::SetSize(iPlayIconBg,playIconBgSize,EAspectRatioPreserved); + AknIconUtils::SetSize(iPlayIconBgMask,playIconBgSize,EAspectRatioPreserved); + AknIconUtils::CreateIconL( + iPlayIconBgPressed, + iPlayIconBgPressedMask, + KResName(), + EMbmCameraappQgn_bg_lcam_vid_postcap_play_pressed, + EMbmCameraappQgn_bg_lcam_vid_postcap_play_pressed_mask); + AknIconUtils::SetSize(iPlayIconBgPressed,playIconBgSize,EAspectRatioPreserved); + AknIconUtils::SetSize(iPlayIconBgPressedMask,playIconBgSize,EAspectRatioPreserved);*/ + } + // Make sure fixed toolbar is on top of this window DrawableWindow()->SetOrdinalPosition( KCamPostCaptureWindowOrdinalPos ); } @@ -301,6 +376,34 @@ iNaviCounterControl->DrawNaviCtr( gc ); } } + + if ( iView.Id().iUid == ECamViewIdVideoPostCapture ) + { + TSize playIconSize(140,92); + TRect playIconRect(containerRect.Center() - TPoint(70,46),playIconSize); + TRect playIconSourceRect(0,0,140,92); + + //!!Please don't remove this commented section + /*TSize playIconSize(40,40); + TRect playIconRect(containerRect.Center() - TPoint(20,20),playIconSize); + TRect playIconSourceRect(0,0,40,40); + + TSize playIconBgSize(140,92); + TRect playIconBgRect(containerRect.Center() - TPoint(70,46),playIconBgSize); + TRect playIconBgSourceRect(0,0,140,92); + + if(iPlayIconPressed) + { + gc.BitBltMasked(playIconBgRect.iTl,iPlayIconBgPressed,playIconBgSourceRect,iPlayIconBgPressedMask,EFalse); + } + else + { + gc.BitBltMasked(playIconBgRect.iTl,iPlayIconBg,playIconBgSourceRect,iPlayIconBgMask,EFalse); + }*/ + + gc.BitBltMasked(playIconRect.iTl,iPlayIcon,playIconSourceRect,iPlayIconMask,EFalse); + + } } // ---------------------------------------------------- @@ -637,4 +740,49 @@ PRINT( _L("Camera <= CCamPostCaptureContainer::HandleAppEvent") ); } +// ----------------------------------------------------------------------------- +// CCamPostCaptureContainer::HandlePointerEventL +// +// Handles pointer events; From CCoeControl +// ----------------------------------------------------------------------------- +// +void CCamPostCaptureContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent) + { + if ( iView.Id().iUid == ECamViewIdVideoPostCapture ) + { + TRect containerRect = Rect(); + TRect playIconRect(containerRect.Center() - TPoint(35,23), TSize(70,46)); + if( playIconRect.Contains(aPointerEvent.iPosition) ) + { + if ( aPointerEvent.iType == TPointerEvent::EButton1Down || aPointerEvent.iType == TPointerEvent::EDrag) + { + if(!iDraggedInAlready) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + feedback->InstantFeedback( ETouchFeedbackBasicButton ); + } + iDraggedInAlready = ETrue; + iPlayIconPressed = ETrue; + DrawNow(); + } + } + else if(aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + iPlayIconPressed = EFalse; + iDraggedInAlready = ETrue; + //feedback->InstantFeedback( ETouchFeedbackBasicButton ); + iView.HandleCommandL(ECamCmdPlay); + } + } + else + { + iDraggedInAlready = EFalse; + iPlayIconPressed = EFalse; + DrawNow(); + } + } + } + // End of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPostCaptureViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -143,16 +143,17 @@ inCall = iSFIUtils->IsCLIValidL(); #endif */ //use both inCall and InCallOrRinging() conditions to make sure if it is in call state - if ( /*inCall &&*/ iController.InCallOrRinging() ) - { -#ifndef __WINS__ - DoInCallSendL(); -#endif - } - else - { +// In-Call-Send no longer used +// if ( /*inCall &&*/ iController.InCallOrRinging() ) +// { +//#ifndef __WINS__ +// DoInCallSendL(); +//#endif +// } +// else +// { DoSendAsL(); - } +// } } break; @@ -214,6 +215,35 @@ StartAddToAlbumOperationL(); } break; + case KAiwCmdEdit: + case ECamCmdEdit: + { + CAiwGenericParamList& inputParams = iAiwServiceHandler->InParamListL(); + TPtrC currentFullFileName(iController.CurrentFullFileName()); + TAiwGenericParam param( EGenericParamFile, TAiwVariant(currentFullFileName)); + inputParams.AppendL( param ); + + + TAiwVariant param2Variant; + if(Id().iUid == ECamViewIdVideoPostCapture) + { + param2Variant.Set(_L("video/*")); + } + else + { + param2Variant.Set(_L("image/jpeg")); + } + TAiwGenericParam param2( EGenericParamMIMEType, param2Variant ); + inputParams.AppendL( param2 ); + + iAiwServiceHandler->ExecuteServiceCmdL(KAiwCmdEdit, inputParams, iAiwServiceHandler->OutParamListL()); + } + break; + case KAiwCmdView: // SHARE_AIW + { + iAiwServiceHandler->ExecuteServiceCmdL(KAiwCmdView, iAiwServiceHandler->InParamListL(), iAiwServiceHandler->OutParamListL()); + } + break; default: { CCamViewBase::HandleCommandL( aCommand ); @@ -324,10 +354,13 @@ CAknToolbar* fixedToolbar = Toolbar(); if ( fixedToolbar ) { - fixedToolbar->SetItemDimmed( ECamCmdPhotos, EFalse, ETrue ); + /*fixedToolbar->SetItemDimmed( ECamCmdPhotos, EFalse, ETrue ); + fixedToolbar->SetItemDimmed( ECamCmdEdit, EFalse, ETrue ); fixedToolbar->SetItemDimmed( ECamCmdDelete, EFalse, ETrue ); fixedToolbar->SetItemDimmed( ECamCmdOneClickUpload, EFalse, ETrue ); - fixedToolbar->SetItemDimmed( ECamCmdSend, EFalse, ETrue ); + fixedToolbar->SetItemDimmed( ECamCmdSend, EFalse, ETrue );*/ + fixedToolbar->SetDimmed(EFalse); + fixedToolbar->DrawNow(); } } } @@ -450,10 +483,11 @@ CAknToolbar* fixedToolbar = Toolbar(); if ( fixedToolbar ) { - fixedToolbar->SetItemDimmed( ECamCmdPhotos, ETrue, ETrue ); + /*fixedToolbar->SetItemDimmed( ECamCmdPhotos, ETrue, ETrue ); fixedToolbar->SetItemDimmed( ECamCmdDelete, ETrue, ETrue ); fixedToolbar->SetItemDimmed( ECamCmdOneClickUpload, ETrue, ETrue ); - fixedToolbar->SetItemDimmed( ECamCmdSend, ETrue, ETrue ); + fixedToolbar->SetItemDimmed( ECamCmdEdit, ETrue, ETrue ); + fixedToolbar->SetItemDimmed( ECamCmdSend, ETrue, ETrue );*/ } } } @@ -518,6 +552,8 @@ CCamAppUi* appui = static_cast( AppUi() ); + iAiwServiceHandler->AttachL(R_CAM_AIW_EDIT_INTEREST); + CCamViewBase::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage ); // fixed toolbar is used only with touch devices @@ -534,8 +570,12 @@ else { fixedToolbar->SetToolbarObserver( this ); - fixedToolbar->SetToolbarVisibility( ETrue ); UpdateToolbarIconsL(); + if(Id().iUid != ECamViewIdVideoPostCapture) + { + fixedToolbar->SetDimmed(ETrue); + } + fixedToolbar->SetToolbarVisibility( ETrue ); } } } @@ -613,6 +653,12 @@ CCamViewBase::DoDeactivate(); iController.RemoveControllerObserver( this ); + CAknToolbar* fixedToolbar = Toolbar(); + if(fixedToolbar) + { + fixedToolbar->SetToolbarVisibility( EFalse ); + } + PRINT( _L( "Camera <= CCamPostCaptureViewBase::DoDeactivate" ) ); } @@ -636,7 +682,13 @@ { aMenuPane->SetItemDimmed( ECamCmdAddToAlbum, ETrue ); } - } + } + // Hide menu item, if Share not available + if ( !iOneClickUploadUtility->OneClickUploadSupported() && + aMenuPane->MenuItemExists( KAiwCmdView, itemPos ) ) + { + aMenuPane->SetItemDimmed( KAiwCmdView, ETrue ); + } } // --------------------------------------------------------------------------- @@ -801,9 +853,12 @@ if ( aApHandler ) { //use both inCall and InCallOrRinging() conditions to make sure if it is in call state - aApHandler->SetItemVisible( ECamCmdSend, !( /*inCall &&*/ iController.InCallOrRinging() ) ); - aApHandler->SetItemVisible( ECamCmdSendToCallerMultimedia, ( /*inCall &&*/ iController.InCallOrRinging() ) ); - + + // In-Call-Send no longer used. Always use ECamCmdSend regardless of phone call state. + //aApHandler->SetItemVisible( ECamCmdSend, !( /*inCall &&*/ iController.InCallOrRinging() ) ); + //aApHandler->SetItemVisible( ECamCmdSendToCallerMultimedia, ( /*inCall &&*/ iController.InCallOrRinging() ) ); + aApHandler->SetItemVisible( ECamCmdSend, ETrue ); + TBool uploadSupported = EFalse; if ( iOneClickUploadUtility && iOneClickUploadUtility->OneClickUploadSupported() ) @@ -928,18 +983,33 @@ state->SetHelpTextL( *tooltipText ); CleanupStack::PopAndDestroy( tooltipText ); } - } + } button = dynamic_cast( toolbar->ControlOrNull( ECamCmdOneClickUpload ) ); - if ( button ) + if ( button && iOneClickUploadUtility->OneClickUploadSupported()) { CAknButtonState* state = button->State(); if ( state ) { state->SetHelpTextL( iOneClickUploadUtility->ButtonTooltipL() ); + } } + button = dynamic_cast(toolbar->ControlOrNull( ECamCmdEdit )); + if( button ) + { + CAknButtonState* state = button->State(); + if( state ) + { + TInt resource = (Id().iUid == ECamViewIdStillPostCapture)? + R_QTN_LCAM_TT_IMAGE_EDITOR: + R_QTN_LCAM_TT_VIDEO_EDITOR; + HBufC* helpText = StringLoader::LoadLC( resource ); + state->SetHelpTextL(*helpText); + CleanupStack::PopAndDestroy(helpText); + } + } } } PRINT( _L("Camera <= CCamPostCaptureViewBase::UpdateToolbarIconsL") ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -387,7 +387,8 @@ StartViewFinder(); } } - + // Check if currently selected storagemedia has available memory for next capturing + appUi->CheckMemoryAvailableForCapturing(); // // if ( iController.EngineState() == ECamEngineStillCapturePrepared || @@ -1362,7 +1363,9 @@ // Need to update appui viewstate PRINT( _L("Camera <> CCamPreCaptureViewBase::ExitStandbyModeL: emit ECamCmdSwitchToPrecapture" ) ) appUi->HandleCommandL( ECamCmdSwitchToPrecapture ); - + // Check if currently selected storagemedia has available memory for next capturing + appUi->CheckMemoryAvailableForCapturing(); + if ( uiOverride ) { appUi->SetActivePaletteVisibility( EFalse ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamSceneListBox.cpp --- a/camerauis/cameraapp/generic/src/CamSceneListBox.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamSceneListBox.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -37,8 +37,9 @@ */ CCamSceneListBox::CCamSceneListBox( TCamCameraMode aMode, MCamSettingValueObserver* aObserver, - CCamAppController& aController ) - : CCamCaptureSetupListBox( aObserver, aController ), + CCamAppController& aController, + TBool aFullySkinned ) + : CCamCaptureSetupListBox( aObserver, aController, aFullySkinned ), iMode( aMode ) { } @@ -65,7 +66,7 @@ Rect() ); CCamCaptureSetupListItemDrawer* itemDrawer = - CCamCaptureSetupListItemDrawer::NewL( *model ); + CCamCaptureSetupListItemDrawer::NewL( *model, iSkinnedBackGround ); itemDrawer->SetParentControl( aParent ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamSettingsModel.cpp --- a/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamSettingsModel.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -137,6 +137,7 @@ } iStaticModel->ResetSettingItem( KCamCrUserSceneContrast ); iStaticModel->ResetSettingItem( KCamCrUserSceneImageSharpness ); + iStaticModel->ResetSettingItem( KCamCrUserSceneDefault ); // Reload the static user scene settings iUserSceneSettings.ResetAndDestroy(); @@ -397,7 +398,7 @@ // If there is only one setting changed other than scene mode setting // and if the Dynamic Scene mode is "User Scene" we update the new setting // value to the camera dynamic settings - if ( !userSceneModeSettingChanged ) + if ( !userSceneModeSettingChanged && settingId != ECamSettingItemUserSceneDefault ) { TInt scene = IntegerSettingValue( ECamSettingItemDynamicPhotoScene ); // If user scene is the currently active photo scene then activate the @@ -733,9 +734,9 @@ // The model registers with the AppUi which is created after the model. // Registration is done here so we can guarantee that the AppUi has // been created. - CCamAppUiBase* appUi = static_cast - ( iEnv->AppUi() ); - appUi->AddBurstModeObserverL( this ); + + CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); + appUi->AddBurstModeObserverL( this ); // Free all memory currently used by the static settings. UnloadStaticSettings(); @@ -746,6 +747,10 @@ iUserSceneSettings ); iStaticModel->LoadStaticSettingsL( aIsEmbedded ); + if ( appUi->ReturningFromPretendExit() || appUi->IsFirstBoot() ) + { + SetUserSceneDefault(); + } PRINT(_L("Camera <= CCamSettingsModel::LoadStaticSettingsL" )) @@ -1289,16 +1294,21 @@ if ( iUiConfigManager->IsFaceTrackingSupported() ) // FT supported { - if ( ECamSceneScenery == aSceneId || ECamSceneSports == aSceneId ) + if ( ECamSceneScenery == aSceneId || + ECamSceneSports == aSceneId || + ECamSceneMacro == aSceneId) { - if ( ECamSceneScenery != iPreviousSceneMode && ECamSceneSports != iPreviousSceneMode ) // <- DATAMAKE + if ( ECamSceneScenery != iPreviousSceneMode && + ECamSceneSports != iPreviousSceneMode && + ECamSceneMacro != iPreviousSceneMode ) { iPreviousFaceTrack = TCamSettingsOnOff( IntegerSettingValue( ECamSettingItemFaceTracking ) ); } SetIntegerSettingValueL( ECamSettingItemFaceTracking, ECamSettOff ); } else if ( ( ECamSceneScenery == iPreviousSceneMode || - ECamSceneSports == iPreviousSceneMode ) && + ECamSceneSports == iPreviousSceneMode || + ECamSceneMacro == iPreviousSceneMode ) && ( ECamSettOff == TCamSettingsOnOff( IntegerSettingValue( ECamSettingItemFaceTracking ) ) ) ) { SetIntegerSettingValueL( ECamSettingItemFaceTracking, iPreviousFaceTrack ); @@ -2305,7 +2315,9 @@ return; } TInt activeScene = IntegerSettingValue( ECamSettingItemDynamicPhotoScene ); - if ( ECamSceneScenery == activeScene || ECamSceneSports == activeScene ) + if ( ECamSceneScenery == activeScene || + ECamSceneSports == activeScene || + ECamSceneMacro == activeScene) { PRINT( _L("Camera <> CCamSettingsModel::StoreFaceTrackingValue(), Scenery or Sports mode" ) ) if ( iPreviousFaceTrack != TCamSettingsOnOff( IntegerSettingValue( ECamSettingItemFaceTracking ) ) ) @@ -2374,5 +2386,40 @@ CopySettingsL(iUserSceneSettings, iUserSceneSettingsBackup); } +// --------------------------------------------------------------------------- +// CCamSettingsModel::SetUserSceneDefault +// +// Set userScene as default +// --------------------------------------------------------------------------- +// +void CCamSettingsModel::SetUserSceneDefault() + { + PRINT( _L("Camera => CCamSettingsModel::SetUserSceneDefault ") ); + TInt settingsCount = iDynamicPhotoIntSettings.Count(); + TInt userVal; + for ( TInt i = 0; i < settingsCount; ++i ) + { + if ( iDynamicPhotoIntSettings[i]->iItemId == ECamSettingItemDynamicPhotoScene ) + { + TInt sceneSetCount = iUserSceneSettings.Count(); + for ( TInt j = 0; j < sceneSetCount; ++j ) + { + if ( iUserSceneSettings[j]->iItemId == ECamSettingItemUserSceneDefault ) + { + userVal = iUserSceneSettings[j]->iValueId; + } + } + if ( userVal ) + { + PRINT1( _L("Camera <> CCamSettingsModel::SetUserSceneDefault set userVal= %d"), userVal); + iDynamicPhotoIntSettings[i]->iValueId = ECamSceneUser; + ActivateUserSceneSettingsL(); + } + + } + } + + PRINT( _L("Camera <= CCamSettingsModel::SetUserSceneDefault ") ); + } // =========================================================================== // end of File diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamShootingModeContainer.cpp --- a/camerauis/cameraapp/generic/src/CamShootingModeContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamShootingModeContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -43,6 +43,8 @@ const TInt KInfoTooltipDelay = 0; // time (milliseconds) delay when showing the tooltip const TInt KInfoTooltipDisplayTime = 5000; // maximum time (milliseconds) the tooltip is displayed const TInt KExplTxtGranularity = 6; +const TUint32 KToolbarExtensionBgColor = 0x00000000; +const TInt KToolBarExtensionBgAlpha = 0x7F; // ================= MEMBER FUNCTIONS ======================= @@ -69,6 +71,27 @@ return self; } + +CCamShootingModeContainer* +CCamShootingModeContainer::NewL( const TRect& aRect, + TBool aFullySkinned, + CAknView& aView, + TCamCameraMode aMode, + CCamAppController& aController, + TBool aUserBaseScenes ) + { + CCamShootingModeContainer* self = + new( ELeave ) CCamShootingModeContainer( aMode, + aController, + aView, + aUserBaseScenes, + aFullySkinned ); + CleanupStack::PushL( self ); + self->ConstructL( aRect ); + CleanupStack::Pop( self ); + return self; + } + // --------------------------------------------------------------------------- // CCamShootingModeContainer::~CCamShootingModeContainer // Destructor @@ -155,7 +178,7 @@ } // construct the listbox - iListBox = new( ELeave ) CCamSceneListBox( iMode, this, iController ); + iListBox = new( ELeave ) CCamSceneListBox( iMode, this, iController, iFullySkinned ); iListBox->ConstructL( iController, this, iTitleArray, iDescArray, iUserBaseScenes ); iListBox->InitializeL( iController.IntegerSettingValue( scene ) ); @@ -315,11 +338,13 @@ TCamCameraMode aMode, CCamAppController& aController, CAknView& aView, - TBool aUserBaseScenes ) + TBool aUserBaseScenes, + TBool aFullySkinned ) : CCamContainerBase( aController, aView ), iListBox( NULL ), iMode( aMode ), iUserBaseScenes( aUserBaseScenes ), + iFullySkinned( aFullySkinned ), iTooltipController( NULL ), iListboxTitle( NULL ), iTooltipIndex( -1 ), @@ -498,11 +523,35 @@ CWindowGc& gc = SystemGc(); if ( CamUtility::IsNhdDevice() ) { + TRgb color; + if( iFullySkinned ) + { MAknsSkinInstance* skin = AknsUtils::SkinInstance(); AknsDrawUtils::Background( skin, iBgContext, gc, aRect ); - TRgb color; AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 ); + } + else + { + // Fill control with transparency bg colour + gc.SetPenStyle( CGraphicsContext::ENullPen ); + gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); + color = TRgb( 0,0 ); + gc.SetBrushColor( color ); + gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + gc.DrawRect( aRect ); + gc.SetBrushColor( color ); + gc.DrawRect( iTitleTextRectLayout.TextRect() ); + gc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) ); + gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + gc.DrawRect( TRect( iLayoutAreaRect.iTl.iX, + iLayoutAreaRect.iTl.iY, + iLayoutAreaRect.iBr.iX, + iTitleTextRectLayout.TextRect().iBr.iY ) ); + + gc.SetBrushStyle( CGraphicsContext::ENullBrush ); + color = TRgb( KRgbWhite ); + } iTitleTextRectLayout.DrawText( gc, *iListboxTitle, ETrue, color ); } else diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamStandbyContainer.cpp --- a/camerauis/cameraapp/generic/src/CamStandbyContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStandbyContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -316,7 +316,7 @@ else { // set text label as blank - TRAP_IGNORE( iText->SetTextL( KNullDesC ) ); + //TRAP_IGNORE( iText->SetTextL( KNullDesC ) ); // cancel timer if active if ( iForegroundTimer->IsActive() ) diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillPostCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -28,6 +28,7 @@ #include #include #include +#include #include "CamUtility.h" #include "Cam.hrh" @@ -137,12 +138,14 @@ } break; case ECamCmdSendToCallerMultimedia: +/* In-Call-Send no longer used, skip to case ECamQuickSend. { #ifndef __WINS__ DoInCallSendL(); #endif } break; +*/ case ECamCmdQuickSend: { /*#ifndef __WINS__ @@ -285,7 +288,7 @@ ROID(R_CAM_STILL_POST_CAPTURE_MENUBAR_ID)); } } - if ( iController.IsTouchScreenSupported() ) + /*if ( iController.IsTouchScreenSupported() ) { if ( appUi->IsSecondCameraEnabled() ) { @@ -294,7 +297,7 @@ TInt resourceId = appUi->IsQwerty2ndCamera()? R_CAM_STILL_POSTCAPTURE_TOOLBAR_LANDSCAPE_UPLOAD: R_CAM_STILL_POSTCAPTURE_TOOLBAR_PORTRAIT_UPLOAD; - CreateAndSetToolbarL( resourceId ); + //CreateAndSetToolbarL( resourceId ); } else { @@ -317,13 +320,14 @@ R_CAM_STILL_POSTCAPTURE_TOOLBAR ); } } - } + }*/ + iAiwServiceHandler->Reset(); CCamPostCaptureViewBase::DoActivateL( aPreViewId, aCustomMessageId, aCustomMessage ); PERF_EVENT_END_L2( EPerfEventStillPostCaptureViewActivation ); - iAiwServiceHandler->Reset(); + //iAiwServiceHandler->Reset(); // attach interest for PRINT from Active Toolbar iAiwServiceHandler->AttachL( R_CAM_MOVE_TO_STILL_IMAGE_INTEREST_AT ); @@ -333,6 +337,10 @@ iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), R_CAM_SHARE_ON_OVI_INTEREST ); + // SHARE_AIW + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), + R_CAM_AIW_VIEW_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" ); @@ -422,6 +430,9 @@ CCamPostCaptureViewBase::ConstructL(); iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), R_CAM_SHARE_ON_OVI_INTEREST ); + // SHARE_AIW + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), R_CAM_AIW_VIEW_INTEREST ); + iRockerKeyPress = EFalse; } @@ -569,7 +580,12 @@ aMenuPane->SetItemDimmed( ECamCmdSendToCallerMultimedia, !showSendToCaller ); } - + + if(iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport)) + { + showSend = ETrue; + } + if ( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) ) { aMenuPane->SetItemDimmed( @@ -632,14 +648,49 @@ PRINT2( _L("Camera => CCamStillPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar ); (void)aResourceId; //remove compiler warning - if( iEmbedded && aToolbar && iController.IsTouchScreenSupported() ) + if( aToolbar && iController.IsTouchScreenSupported() ) { // HideItem will not do anything if a button for the given // command ID is not found. - aToolbar->HideItem( ECamCmdSend, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdPhotos, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse ); + if( iEmbedded ) + { + aToolbar->HideItem( ECamCmdSend, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdEdit, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdPhotos, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse ); + } + else + { + if(iController.IntegerSettingValue(ECamSettingItemPhotoEditorSupport)) + { + aToolbar->RemoveItem( ECamCmdSend ); + CAknButton* editButton = dynamic_cast(aToolbar->ControlOrNull( ECamCmdEdit )); + if( editButton ) + { + CAknButtonState* state = editButton->State(); + if( state ) + { + HBufC* helpText = StringLoader::LoadLC( R_QTN_LCAM_TT_IMAGE_EDITOR ); + state->SetHelpTextL(*helpText); + CleanupStack::PopAndDestroy(helpText); + } + } + } + else + { + aToolbar->RemoveItem( ECamCmdEdit ); + } + + if(iOneClickUploadUtility->OneClickUploadSupported()) + { + aToolbar->RemoveItem( ECamCmdPhotos ); + } + else + { + aToolbar->RemoveItem( ECamCmdOneClickUpload ); + } + } } PRINT2( _L("Camera <= CCamStillPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp --- a/camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -616,8 +616,16 @@ } } #endif // __WINS__ - } - + } + else + { + // in case AF is not supported, check memory here before capturing + if ( !iController.IsViewFinding() || !appui->CheckMemoryL() ) + { + return EKeyWasConsumed; + } + } + if( iXenonFlashSupported && !appui->IsSecondCameraEnabled() && !MSKCapture diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillPreCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -164,7 +164,6 @@ } case ECamCmdCaptureImage: { - OstTrace0( CAMERAAPP_PERFORMANCE, DUP9_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_AF_LOCK 1" ); OstTrace0( CAMERAAPP_PERFORMANCE, DUP10_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_SHUTTER_RELEASE_LAG 1" ); if ( iController.IsViewFinding() && appUi->CheckMemoryL() && !iController.CaptureModeTransitionInProgress() && @@ -190,6 +189,8 @@ && iController.UiConfigManagerPtr()->IsAutoFocusSupported() && !iController.CurrentSceneHasForcedFocus() ) { + // Next trace should be just before "e_CAM_PRI_SHUTTER_RELEASE_LAG 1", but only when AF is supported + OstTrace0( CAMERAAPP_PERFORMANCE, DUP9_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_AF_LOCK 1" ); if( iController.CurrentOperation() == ECamNoOperation ) { iController.SetAfNeeded( ETrue ); @@ -197,6 +198,16 @@ OstTrace0( CAMERAAPP_PERFORMANCE, DUP7_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_APP_AF 1" ); iController.StartAutoFocus(); } + else // AF not needed, capture will start next + { + OstTrace0( CAMERAAPP_PERFORMANCE, DUP11_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_APP_SHOT_TO_SNAPSHOT 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP12_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_SHOT_TO_SNAPSHOT 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP13_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_SHOT_TO_SAVE 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP14_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_SHOT_TO_SHOT 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP15_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_APP_SHOT_TO_STILL 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP16_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_APP_CAPTURE_START 1" ); + OstTrace0( CAMERAAPP_PERFORMANCE, DUP17_CCAMSTILLPRECAPTUREVIEW_HANDLECOMMANDL, "e_CAM_PRI_SERIAL_SHOOTING 1" ); + } TKeyEvent keyEvent; appUi->StartCaptureL( keyEvent ); @@ -338,7 +349,7 @@ SetMenuBar(); - if ( iContinueInBackground ) + if ( iContinueInBackground && !iStandbyModeActive ) { // make sure that CCamAppController is in view finder mode if ( iController.CurrentImageMode() == ECamImageCaptureNone ) @@ -679,7 +690,7 @@ // if the view is in capture setup mode else if ( iCaptureSetupModeActive ) { - SetSoftKeysL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); + SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_CANCEL ); } // if the view is in scene settings mode else if ( iSceneSettingModeActive ) @@ -696,7 +707,14 @@ } else if( iInfoListBoxActive ) { - SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); + if( !iForceAvkonCBA ) + { + SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT ); + } + else + { + SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); + } } else if ( ( operation == ECamFocusing || operation == ECamFocused || operation == ECamFocusFailed ) && !iController.CurrentSceneHasForcedFocus() ) @@ -1031,6 +1049,7 @@ TInt summaryResource; TInt initialValue; TInt titleResource; + TBool skinnedbackground = EFalse; switch( aMode ) { @@ -1071,6 +1090,7 @@ } titleResource = R_CAM_LIGHT_SENSITIVITY_TITLE; modeSelected = ETrue; + skinnedbackground = EFalse; } break; @@ -1085,8 +1105,11 @@ iController, listBoxResource, summaryResource, - initialValue, titleResource ); + initialValue, titleResource, + skinnedbackground ); + iInfoListBoxContainer->DrawableWindow()->SetOrdinalPosition(-1); + iInfoListBoxContainer->SetMopParent( this ); iInfoListBoxMode = aMode; iSettingModeTitleResourceId = titleResource; @@ -1100,14 +1123,16 @@ } // Remove the view's main container, and add the capture setup // control associated with the input command to the container stack. - CCamCaptureSetupViewBase::SwitchToInfoListBoxL( aMode ); + CCamCaptureSetupViewBase::SwitchToInfoListBoxL( aMode, skinnedbackground ); // only remove the capture setup menu container after // the switch completes successfully RemoveCaptureSetupMenuContainers(); - + if( skinnedbackground ) + { // Stop the viewfinder StopViewFinder(); + } } } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp --- a/camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -195,7 +195,7 @@ // CCamStillUserSceneSetupView::SwitchToInfoListBoxL // --------------------------------------------------------------------------- // -void CCamStillUserSceneSetupView::SwitchToInfoListBoxL( TCamInfoListBoxMode aMode ) +void CCamStillUserSceneSetupView::SwitchToInfoListBoxL( TCamInfoListBoxMode aMode, TBool aFullySkinned ) { CCamAppUi* appUi = static_cast( iCoeEnv->AppUi() ); @@ -246,7 +246,12 @@ listBoxResource, summaryResource, initialValue, - titleResource ); + titleResource, + aFullySkinned); + if( !aFullySkinned ) + { + StartViewFinder(); + } iInfoListBoxMode = aMode; iSettingModeTitleResourceId = titleResource; @@ -254,7 +259,7 @@ // Remove the view's main container, and add the capture setup // control associated with the input command to the container stack. - CCamCaptureSetupViewBase::SwitchToInfoListBoxL( aMode ); + CCamCaptureSetupViewBase::SwitchToInfoListBoxL( aMode, aFullySkinned ); } } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamUserSceneSetupContainer.cpp --- a/camerauis/cameraapp/generic/src/CamUserSceneSetupContainer.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamUserSceneSetupContainer.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -391,6 +391,11 @@ commandId = ECamCmdCaptureSetupLightSensitivityUser; } break; + case ECamSettingItemUserSceneDefault: + { + commandId = ECamCmdSetUserDefault; + } + break; default: { CamPanic( ECamPanicCaptureSetupMenuUnknownItem ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp --- a/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamUserSceneSetupViewBase.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -25,6 +25,7 @@ #include "CamPreCaptureContainerBase.h" +#include #include #include #include @@ -88,6 +89,23 @@ userSceneSetup->UpdateListItems(); break; } + case ECamCmdSetUserDefault: + { + TInt currentVal = iController.IntegerSettingValue( ECamSettingItemUserSceneDefault ); + if ( currentVal ) + { + currentVal = ECamSettNo; + } + else + { + currentVal = ECamSettYes; + } + TRAP_IGNORE( iController.SetIntegerSettingValueL( ECamSettingItemUserSceneDefault, currentVal) ); + CCamUserSceneSetupContainer* userSceneSetup = static_cast( iContainer ); + userSceneSetup->UpdateListItems(); + userSceneSetup->UpdateDisplayL(); + } + break; case ECamCmdUserSceneReset: { DisplayResetUserSceneDlgL(); @@ -113,7 +131,7 @@ break; case ECamCmdCaptureSetupLightSensitivityUser: { - SwitchToInfoListBoxL( EInfoListBoxModeISO ); + SwitchToInfoListBoxL( EInfoListBoxModeISO, ETrue ); } break; // If capture setup menu is active and user presses softkey cancel, @@ -424,15 +442,32 @@ // if the view is in capture setup mode else if ( iCaptureSetupModeActive ) { - SetSoftKeysL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); + if( iForceAvkonCBA ) + { + SetSoftKeysL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); //Avkon softkeys. Not transparent + } + else + { + SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_CANCEL ); + } } else if ( iSceneSettingModeActive ) { SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); + if( iForceAvkonCBA ) + { + EikSoftkeyPostingTransparency::MakeTransparent( + *ViewCba(), EFalse ); + } } else if ( iInfoListBoxActive ) { SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); + if( iForceAvkonCBA ) + { + EikSoftkeyPostingTransparency::MakeTransparent( + *ViewCba(), EFalse ); + } } // if the view is user scene setup else @@ -482,6 +517,7 @@ StatusPane()->MakeVisible( ETrue ); // Update the command button array. + iForceAvkonCBA=ETrue; UpdateCbaL(); SetTitlePaneTextL(); PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToUserSceneSetupModeL()") ); @@ -508,7 +544,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 ); + CCamCaptureSetupViewBase::SwitchToCaptureSetupModeL( aSetupCommand, EFalse ); StatusPane()->MakeVisible( EFalse ); PRINT( _L("Camera <= CCamUserSceneSetupViewBase::SwitchToCaptureSetupModeL()") ); } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamVideoPostCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -24,6 +24,7 @@ #include #include #include +#include #ifndef __WINS__ //#include #include // CAknInformationNote @@ -233,8 +234,7 @@ } CCamAppUi* appUi = static_cast( AppUi() ); - - if ( iController.IsTouchScreenSupported() ) + /*if ( iController.IsTouchScreenSupported() ) { if ( appUi->IsSecondCameraEnabled() ) { @@ -264,11 +264,15 @@ CreateAndSetToolbarL( R_CAM_VIDEO_POSTCAPTURE_TOOLBAR ); } } - } + }*/ iAiwServiceHandler->Reset(); iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), R_CAM_SHARE_ON_OVI_INTEREST ); + + // SHARE_AIW + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), + R_CAM_AIW_VIEW_INTEREST ); CCamPostCaptureViewBase::DoActivateL( aPreViewId, aCustomMessageId, aCustomMessage ); @@ -330,6 +334,8 @@ CCamPostCaptureViewBase::ConstructL(); iAiwServiceHandler->AttachMenuL( ROID( R_CAM_VIDEO_POST_CAPTURE_MENU_ID ), R_CAM_SHARE_ON_OVI_INTEREST ); + // SHARE_AIW + iAiwServiceHandler->AttachMenuL( ROID( R_CAM_STILL_POST_CAPTURE_MENU_ID), R_CAM_AIW_VIEW_INTEREST ); PRINT( _L("Camera <= CCamVideoPostCaptureView::ConstructL")) } @@ -493,6 +499,11 @@ ECamCmdSendToCallerMultimedia, !showSendToCaller ); } + if(iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport)) + { + showSend = ETrue; + } + if( aMenuPane->MenuItemExists( ECamCmdSend, itemPos ) ) { aMenuPane->SetItemDimmed( @@ -556,14 +567,50 @@ (void)aResourceId; // remove compiler warning // fixed toolbar is used only with touch devices - if ( iController.IsTouchScreenSupported() && iEmbedded && aToolbar ) + if ( iController.IsTouchScreenSupported() && aToolbar ) { // HideItem will not do anything if a button for the given // command ID is not found. - aToolbar->HideItem( ECamCmdSend, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse ); - aToolbar->HideItem( ECamCmdPlay, ETrue, EFalse ); + if( iEmbedded ) + { + aToolbar->HideItem( ECamCmdSend, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdEdit, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdDelete, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdOneClickUpload, ETrue, EFalse ); + aToolbar->HideItem( ECamCmdPlay, ETrue, EFalse ); + } + else + { + if(iController.IntegerSettingValue(ECamSettingItemVideoEditorSupport)) + { + aToolbar->RemoveItem( ECamCmdSend ); + CAknButton* editButton = dynamic_cast(aToolbar->ControlOrNull( ECamCmdEdit )); + if( editButton ) + { + CAknButtonState* state = editButton->State(); + if( state ) + { + HBufC* helpText = StringLoader::LoadLC( R_QTN_LCAM_TT_VIDEO_EDITOR ); + state->SetHelpTextL(*helpText); + CleanupStack::PopAndDestroy(helpText); + } + } + } + else + { + aToolbar->RemoveItem( ECamCmdEdit ); + } + + if(iOneClickUploadUtility->OneClickUploadSupported()) + { + aToolbar->RemoveItem( ECamCmdPhotos ); + } + else + { + aToolbar->RemoveItem( ECamCmdOneClickUpload ); + } + + } } PRINT2( _L("Camera <= CCamVideoPostCaptureView::DynInitToolbarL(%d, 0x%X)" ), aResourceId, aToolbar ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp --- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -657,13 +657,20 @@ // if the view is in capture setup mode else if ( iCaptureSetupModeActive ) { - SetSoftKeysL( R_AVKON_SOFTKEYS_OK_CANCEL__OK ); + SetSoftKeysL( R_CAM_SOFTKEYS_SELECT_CANCEL ); } // if the view is in scene settings mode else if ( iSceneSettingModeActive ) { // R_AVKON_SOFTKEYS_OPTIONS_BACK + if( !iForceAvkonCBA ) + { + SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE_TRANSPARENT ); + } + else + { SetSoftKeysL( R_CAM_SOFTKEYS_SETTINGS_SELECT_BACK__CHANGE ); //R_CAM_SOFTKEYS_OPTIONS_BACK__CHANGE ); + } } else if ( iStandbyModeActive ) { @@ -995,9 +1002,12 @@ { // Create the scene setting container for video mode. iSceneSettingContainer = CCamShootingModeContainer::NewL( AppUi()->ApplicationRect(), + EFalse, //Notskinned background *this, ECamControllerVideo, - iController ); + iController, + EFalse ); + iSceneSettingContainer->DrawableWindow()->SetOrdinalPosition(-1); } @@ -1020,7 +1030,7 @@ RemoveCaptureSetupMenuContainers(); // Stop the viewfinder as it isn't required for scene settings - StopViewFinder(); + //StopViewFinder(); } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2010 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" @@ -55,7 +55,7 @@ #include #include -#include +#include // ------------------------------------- // Own #include "camcameracontroller.pan" @@ -63,7 +63,7 @@ #include "cambuffershare.h" #include "cambuffersharecleanup.h" #include "cambuffercleanup.h" -#include "cambuffer.h" +#include "cambuffer.h" #include "camsnapshotprovider.h" #include "camimageencoder.h" @@ -99,7 +99,7 @@ #include "CamPanic.h" // =========================================================================== // Local constants -const TInt KIveRecoveryCountMax = 2; +const TInt KIveRecoveryCountMax = 2; typedef CCamera::CCameraAdvancedSettings CAS; typedef CCamera::CCameraImageProcessing CIP; @@ -108,25 +108,25 @@ static const TInt KPrimaryCameraIndex = 0; //static const TInt KSecondaryCameraIndex = 1; static const TInt KInvalidCameraIndex = -1; - + #ifdef CAMERAAPP_CAE_FOR_VIDEO // static const TInt KCameraDisplayIndex = 0; #endif #ifdef CAMERAAPP_CAPI_V2 static const TInt KCameraClientPriority = 100; // -100...100 #endif - + static const TInt KCamCallBackPriority = EPriorityHigh; - + static const TInt KCamSequenceGranularity = 2; static const TInt KResolutionArrayGranularity = 8; #ifdef CAMERAAPP_CAPI_V2_ADV static const TInt KAdvArrayGranularity = 5; - #endif - + #endif + static const CCamera::TFormat KCamJpegAlternativeFormat1 = CCamera::EFormatFbsBitmapColor16M; static const CCamera::TFormat KCamJpegAlternativeFormat2 = CCamera::EFormatFbsBitmapColor64K; - + static const TInt KCamReserveTryAgainMaxCount = 50; static const TInt KCamReserveTryAgainWaitInterval = 50000; // 50 milliseconds #ifdef _DEBUG @@ -153,7 +153,7 @@ #define CAMERAAPP_PERF_CONTROLLER_STOP_ONCE( AAA, BBB ) #endif // CAMERAAPP_PERFORMANCE_CONTROLLER -// Helper methods +// Helper methods #include "camflagutility.inl" #include "campointerutility.inl" @@ -164,20 +164,20 @@ inline void SetFalse( TAny* aTBool ) { TBool* boolean = static_cast( aTBool ); - + if( boolean ) *boolean = EFalse; } */ - + inline void SetNotBusy( TAny* aTUint ) { TUint* flags = static_cast( aTUint ); - + if( flags ) *flags = ECamBusyOff; }; - + inline void ReleaseAndNull( MCameraBuffer*& aBuffer ) { if( aBuffer ) @@ -189,13 +189,13 @@ #ifdef CAMERAAPP_CAPI_V2_ADV inline void ResetInfo( TAny* aInfo ) { - TCamAdvancedSettingInfo* info = + TCamAdvancedSettingInfo* info = static_cast( aInfo ); if( info ) { info->Reset(); - } + } }; @@ -252,7 +252,7 @@ if( !aPreserveBusyFlag ) { - iBusy = ECamBusyOff; + iBusy = ECamBusyOff; } } @@ -260,7 +260,7 @@ // PrintInfo // --------------------------------------------------------------------------- // -void +void TCamControllerInfo::PrintInfo() const { PRINT ( _L("Camera <> --------------------------------------------------") ); @@ -305,7 +305,7 @@ iResolutions.Close(); } -void +void TCamCameraResolutionSupport::Reset() { iForCameraIndex = KInvalidCameraIndex; @@ -330,7 +330,7 @@ iIsoRatesSupport.Close(); } -void +void TCamAdvancedSettingInfo::Reset() { iForCameraIndex = KInvalidCameraIndex; @@ -361,7 +361,7 @@ // PrintInfo // --------------------------------------------------------------------------- // -void +void TCamAdvancedSettingInfo::PrintInfo() const { #ifdef _DEBUG @@ -398,7 +398,7 @@ PRINT2( _L("Camera <> step[%3d]: %4d"), i, iEvStepsSupport[i] ); } - PRINT ( _L("Camera <> --------------------------------------------------") ); + PRINT ( _L("Camera <> --------------------------------------------------") ); PRINT1( _L("Camera <> Advanced EV modes support : %016b"), iEvModesSupport ); PRINT1( _L("Camera <> EExposureAuto : %016b"), CCamera::EExposureAuto ); PRINT1( _L("Camera <> EExposureNight : %016b"), CCamera::EExposureNight ); @@ -440,7 +440,7 @@ PRINT ( _L("Camera <> --------------------------------------------------") ); #endif // CAMERAAPP_CAPI_V2_IP - PRINT ( _L("Camera <> --------------------------------------------------") ); + PRINT ( _L("Camera <> --------------------------------------------------") ); PRINT1( _L("Camera <> Stabilization modes support : %016b"), iStabilizationModeSupport ); PRINT1( _L("Camera <> EStabilizationModeOff : %016b"), CAS::EStabilizationModeOff ); PRINT1( _L("Camera <> EStabilizationModeHorizontal : %016b"), CAS::EStabilizationModeHorizontal ); @@ -459,7 +459,7 @@ PRINT1( _L("Camera <> EStabilizationComplexityLow : %016b"), CAS::EStabilizationComplexityLow ); PRINT1( _L("Camera <> EStabilizationComplexityMedium : %016b"), CAS::EStabilizationComplexityMedium ); PRINT1( _L("Camera <> EStabilizationComplexityHigh : %016b"), CAS::EStabilizationComplexityHigh ); - PRINT ( _L("Camera <> --------------------------------------------------") ); + PRINT ( _L("Camera <> --------------------------------------------------") ); #endif // _DEBUG } @@ -474,12 +474,12 @@ // --------------------------------------------------------------------------- // CCamCameraController* -CCamCameraController::NewL( MCamSettingProvider& aProvider, - CCamAppController& aAppController, - TInt aCameraIndex /*= 0*/ ) +CCamCameraController::NewL( MCamSettingProvider& aProvider, + CCamAppController& aAppController, + TInt aCameraIndex /*= 0*/ ) { - CCamCameraController* self - = new (ELeave) CCamCameraController( aProvider, aAppController ); + CCamCameraController* self + = new (ELeave) CCamCameraController( aProvider, aAppController ); CleanupStack::PushL( self ); self->ConstructL( aCameraIndex ); @@ -487,7 +487,7 @@ return self; } - + // --------------------------------------------------------------------------- @@ -500,13 +500,13 @@ #ifdef CAMERAAPP_FLASH_SIMULATOR delete iFlashSimulator; -#endif +#endif #ifdef CAMERAAPP_PERFORMANCE_CONTROLLER delete iPerformanceLogger; #endif // CAMERAAPP_PERFORMANCE_CONTROLLER - - delete iIdle; + + delete iIdle; iSettingArray.Close(); // Remove all observers. @@ -518,10 +518,10 @@ ClearSettingQueue(); - PRINT( _L("Camera <> CCamCameraController: release current camera..") ); + PRINT( _L("Camera <> CCamCameraController: release current camera..") ); // Release and null CCamera related objects. ReleaseCurrentCamera(); - PRINT( _L("Camera <> CCamCameraController: ..done") ); + PRINT( _L("Camera <> CCamCameraController: ..done") ); delete iActive; @@ -547,19 +547,19 @@ // HandleEvent // --------------------------------------------------------------------------- // -void +void CCamCameraController::HandleEvent( const TECAMEvent& aEvent ) { // TUid iEventType; // TInt iErrorCode; - PRINT2( _L("Camera => CCamCameraController::HandleEvent, event uid(0x%08x) error(%d)"), - aEvent.iEventType.iUid, + PRINT2( _L("Camera => CCamCameraController::HandleEvent, event uid(0x%08x) error(%d)"), + aEvent.iEventType.iUid, aEvent.iErrorCode ); // If we are getting zoom event while saving video, - // we must not handle the event + // we must not handle the event TInt uidValue( aEvent.iEventType.iUid ); - if ( uidValue == KUidECamEventCameraSettingDigitalZoomUidValue + if ( uidValue == KUidECamEventCameraSettingDigitalZoomUidValue && IsFlagOn( iInfo.iBusy, ECamBusySingle ) ) { return; @@ -584,22 +584,22 @@ } // ------------------------------------------------------- else if( !(IsFlagOn( iInfo.iState , ECamPowerOn ))) - { + { //If camera is in background then all the rest events will be ignored. Should return without leaving - return; - } + return; + } // ------------------------------------------------------- else if( aEvent.iEventType == KUidECamEventCameraSnapshot ) { HandleSnapshotEvent( aEvent.iErrorCode ); } // ------------------------------------------------------- - else if( aEvent.iEventType == KUidECamEventCameraSettingsOptimalFocus + else if( aEvent.iEventType == KUidECamEventCameraSettingsOptimalFocus || aEvent.iEventType == KUidECamEventCameraSettingAutoFocusType2 ) { HandleAutoFocusEvent( aEvent.iErrorCode, aEvent.iEventType ); - } - // ------------------------------------------------------- + } + // ------------------------------------------------------- else { #ifdef CAMERAAPP_CAPI_V2_ADV @@ -622,12 +622,12 @@ case KUidECamEventImageProcessingEffectUidValue: case KUidECamEventSettingsStabilizationAlgorithmComplexityUidValue: { - TCamCameraSettingId id = + TCamCameraSettingId id = CCamSettingConversion::Map2CameraSetting( uidValue ); - HandleCallbackEvent( aEvent.iErrorCode, - ECamCameraEventSettingsSingle, - ECamCameraEventClassSettings, + HandleCallbackEvent( aEvent.iErrorCode, + ECamCameraEventSettingsSingle, + ECamCameraEventClassSettings, &id ); break; } @@ -640,7 +640,7 @@ HandleFlashStatusEvent( aEvent.iErrorCode, ECamCameraEventFlashNotReady ); break; // ------------------------------- - default: + default: break; // ------------------------------- } @@ -671,7 +671,7 @@ // ViewFinderReady // --------------------------------------------------------------------------- // -void +void CCamCameraController::ViewFinderReady( MCameraBuffer& aCameraBuffer, TInt aError ) { HandleViewfinderEvent( &aCameraBuffer, aError ); @@ -682,7 +682,7 @@ // ImageBufferReady // --------------------------------------------------------------------------- // -void +void CCamCameraController::ImageBufferReady( MCameraBuffer& aCameraBuffer, TInt aError ) { HandleImageCaptureEvent( &aCameraBuffer, aError ); @@ -693,7 +693,7 @@ // VideoBufferReady // --------------------------------------------------------------------------- // -void +void CCamCameraController::VideoBufferReady( MCameraBuffer& aCameraBuffer, TInt aError ) { if( KErrNone == aError ) @@ -713,8 +713,8 @@ // ReserveComplete // --------------------------------------------------------------------------- // -void -CCamCameraController::ReserveComplete( TInt aError ) +void +CCamCameraController::ReserveComplete( TInt aError ) { HandleReserveGainEvent( aError ); } @@ -724,7 +724,7 @@ // PowerOnComplete // --------------------------------------------------------------------------- // -void +void CCamCameraController::PowerOnComplete( TInt aError ) { HandlePowerOnEvent( aError ); @@ -735,18 +735,18 @@ // ViewFinderFrameReady // --------------------------------------------------------------------------- // -void +void CCamCameraController::ViewFinderFrameReady( CFbsBitmap& aFrame ) { PRINT( _L("CamTest => CCamCameraController::ViewFinderFrameReady") ); CCamBuffer* buffer = NULL; - + TRAPD( error, buffer = CCamBuffer::NewL( aFrame, NULL ) ); // Releases buffer HandleViewfinderEvent( buffer, error ); - + PRINT( _L("CamTest <= CCamCameraController::ViewFinderFrameReady") ); } @@ -755,15 +755,15 @@ // ImageReady // --------------------------------------------------------------------------- // -void -CCamCameraController::ImageReady( CFbsBitmap* aBitmap, +void +CCamCameraController::ImageReady( CFbsBitmap* aBitmap, HBufC8* aData, TInt aError ) { PRINT( _L("Camera => CCamCameraController::ImageReady") ); CCamBuffer* buffer = NULL; - + // If no error so far, wrap the data to MCameraBuffer compatible wrapper. // New API provides these buffers already from CCamera callbacks. if( KErrNone == aError ) @@ -794,8 +794,8 @@ // FrameBufferReady // --------------------------------------------------------------------------- // -void -CCamCameraController::FrameBufferReady( MFrameBuffer* aFrameBuffer, +void +CCamCameraController::FrameBufferReady( MFrameBuffer* aFrameBuffer, TInt /*aError*/ ) { // Release the buffer if one is provided to make sure @@ -816,7 +816,7 @@ // McaeoInitComplete // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoInitComplete( TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoInitComplete") ); @@ -833,7 +833,7 @@ // McaeoStillPrepareComplete // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoStillPrepareComplete( TInt /*aError*/ ) { PRINT( _L("Camera =><= CCamCameraController::McaeoStillPrepareComplete, PANIC!") ); @@ -843,29 +843,29 @@ // --------------------------------------------------------------------------- // McaeoVideoPrepareComplete -// +// // This method is called asynchronously after a call has been made to // CCaeEngine::PrepareVideoRecordingL. // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoVideoPrepareComplete( TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoVideoPrepareComplete") ); -#ifdef CAMERAAPP_CAE_ERR_SIMULATION +#ifdef CAMERAAPP_CAE_ERR_SIMULATION HandleVideoEvent( ECamCameraEventVideoInit, aError ); // DelayCallback( ECamCameraEventVideoInit, aError, 500000 ); -#else +#else if( aError && ( iIveCancel || ( !iIveSequenceActive && iIveRecoveryOngoing ) ) ) - // Return if error and recovering process has been started, - // but this video prepare complete is not part of recovery - // i.e. iIveSequenceActive is not active yet. + // Return if error and recovering process has been started, + // but this video prepare complete is not part of recovery + // i.e. iIveSequenceActive is not active yet. { PRINT1( _L("Camera => CCamCameraController::McaeoVideoPrepareComplete - Ignore err %d"), aError ); - return; + return; } - HandleVideoEvent( ECamCameraEventVideoInit, aError ); + HandleVideoEvent( ECamCameraEventVideoInit, aError ); #endif // CAMERAAPP_CAE_ERR_SIMULATION PRINT( _L("Camera <= CCamCameraController::McaeoVideoPrepareComplete") ); @@ -875,8 +875,8 @@ // McaeoViewFinderFrameReady // --------------------------------------------------------------------------- // -void -CCamCameraController::McaeoViewFinderFrameReady( CFbsBitmap& aFrame, +void +CCamCameraController::McaeoViewFinderFrameReady( CFbsBitmap& aFrame, TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoViewFinderFrameReady") ); @@ -896,17 +896,17 @@ // McaeoSnapImageReady // --------------------------------------------------------------------------- // -void -CCamCameraController::McaeoSnapImageReady( const CFbsBitmap& aBitmap, +void +CCamCameraController::McaeoSnapImageReady( const CFbsBitmap& aBitmap, TInt aError ) { PRINT1( _L("Camera => CCamCameraController::McaeoSnapImageReady, status: %d"), aError ); //__ASSERT_DEBUG( EFalse, Panic( ECamCameraControllerCaeUnsupported ) ); - if( + if( #ifdef CAMERAAPP_CAE_FIX ECamModeChangeInactive == iModeChange && #endif - IsFlagOn( iInfo.iState, ECamVideoOn ) + IsFlagOn( iInfo.iState, ECamVideoOn ) ) { CAMERAAPP_PERF_CONTROLLER_STOP( ECamRequestSsStart ); @@ -924,7 +924,7 @@ NotifyObservers( aError, ECamCameraEventSsReady, ECamCameraEventClassSsData, - copy ); + copy ); delete copy; copy = NULL; } @@ -935,9 +935,9 @@ // McaeoStillImageReady // --------------------------------------------------------------------------- // -void -CCamCameraController::McaeoStillImageReady( CFbsBitmap* /*aBitmap*/, - HBufC8* /*aData */, +void +CCamCameraController::McaeoStillImageReady( CFbsBitmap* /*aBitmap*/, + HBufC8* /*aData */, TInt /*aError */ ) { // Still images are not captured through CCaeEngine. @@ -948,7 +948,7 @@ // McaeoVideoRecordingOn // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoVideoRecordingOn( TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoVideoRecordingOn") ); @@ -956,9 +956,9 @@ #ifdef CAMERAAPP_CAE_ERR_SIMULATION HandleVideoEvent( ECamCameraEventVideoStart, aError ); #else - HandleVideoEvent( ECamCameraEventVideoStart, aError ); + HandleVideoEvent( ECamCameraEventVideoStart, aError ); #endif // CAMERAAPP_CAE_ERR_SIMULATION - + PRINT( _L("Camera <= CCamCameraController::McaeoVideoRecordingOn") ); } @@ -967,7 +967,7 @@ // McaeoVideoRecordingPaused // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoVideoRecordingPaused( TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoVideoRecordingPaused") ); @@ -977,7 +977,7 @@ #else HandleVideoEvent( ECamCameraEventVideoPause, aError ); #endif // CAMERAAPP_CAE_ERR_SIMULATION - + PRINT( _L("Camera <= CCamCameraController::McaeoVideoRecordingPaused") ); } @@ -986,7 +986,7 @@ // McaeoVideoRecordingComplete // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoVideoRecordingComplete( TInt aError ) { PRINT( _L("Camera => CCamCameraController::McaeoVideoRecordingComplete") ); @@ -1005,8 +1005,8 @@ } iAsyncVideoStopModeSupported = EFalse; } - - PRINT( _L("Camera <= CCamCameraController::McaeoVideoRecordingComplete") ); + + PRINT( _L("Camera <= CCamCameraController::McaeoVideoRecordingComplete") ); } @@ -1014,10 +1014,10 @@ // McaeoVideoRecordingTimes // --------------------------------------------------------------------------- // -void -CCamCameraController::McaeoVideoRecordingTimes( - TTimeIntervalMicroSeconds aTimeElapsed, - TTimeIntervalMicroSeconds aTimeRemaining, +void +CCamCameraController::McaeoVideoRecordingTimes( + TTimeIntervalMicroSeconds aTimeElapsed, + TTimeIntervalMicroSeconds aTimeRemaining, TInt aError ) { HandleVideoTimeEvent( aError, aTimeElapsed, aTimeRemaining ); @@ -1027,7 +1027,7 @@ // McaeoVideoRecordingStopped // --------------------------------------------------------------------------- // -void +void CCamCameraController::McaeoVideoRecordingStopped() { PRINT( _L("Camera => CCamCameraController::McaeoVideoRecordingStopped") ); @@ -1049,7 +1049,7 @@ // ImageEncoded // --------------------------------------------------------------------------- // -void +void CCamCameraController::ImageEncoded( TInt aStatus, HBufC8* aData ) { PRINT( _L("Camera => CCamCameraController::ImageEncoded") ); @@ -1069,8 +1069,8 @@ } else { - aStatus = KErrNotFound; - } + aStatus = KErrNotFound; + } } else { @@ -1092,7 +1092,7 @@ // AttachObserverL // --------------------------------------------------------------------------- // -void +void CCamCameraController::AttachObserverL( const MCamCameraObserver* aObserver, const TUint& aInterest ) { @@ -1101,7 +1101,7 @@ // event interest being ECamCameraEventClassNone. if( aObserver && ECamCameraEventClassNone != aInterest - && KErrNotFound == iObservers.Find( aObserver ) + && KErrNotFound == iObservers.Find( aObserver ) ) { // Try to add the observer to our list. @@ -1112,7 +1112,7 @@ { error = iObserverInterests.Append( aInterest ); // If we are unable to add the interest info, - // remove also the observer. + // remove also the observer. if( KErrNone != error ) { iObservers.Remove( iObservers.Count() - 1 ); @@ -1122,12 +1122,12 @@ User::LeaveIfError( error ); } } - + // --------------------------------------------------------------------------- // DetachObserver // --------------------------------------------------------------------------- // -void +void CCamCameraController::DetachObserver( const MCamCameraObserver* aObserver ) { if( aObserver ) @@ -1149,7 +1149,7 @@ // Issue request for one operation. // --------------------------------------------------------------------------- // -void +void CCamCameraController::RequestL( const TCamCameraRequestId& aRequestId ) { PRINT1( _L("Camera => CCamCameraController::RequestL, request:[%s]"), KCamRequestNames[aRequestId] ); @@ -1163,7 +1163,7 @@ PRINT( _L("Camera <> process request..") ); proceed = ProcessOneRequestL( aRequestId ); CleanupStack::Pop(); - + // If this request will be responded through MCameraObserver(2) callback, // new requests cannot be accepted until that call arrives and // notification to our observers will be sent there. @@ -1176,7 +1176,7 @@ // as observer might want to issue a new request during // the notification callback. ClearFlags( iInfo.iBusy, ECamBusySingle ); - + if( ECamRequestVideoStop == aRequestId || ECamRequestSetAsyncVideoStopMode == aRequestId || ECamRequestImageCancel == aRequestId ) @@ -1185,8 +1185,8 @@ // has been given. No need to do anything here. } else - { - // Give notification to observers + { + // Give notification to observers TCamCameraEventId event( Request2Event( aRequestId ) ); NotifyObservers( KErrNone, event, EventClass( event ) ); } @@ -1201,11 +1201,11 @@ // --------------------------------------------------------------------------- // DirectRequestL -// +// // Issue request even when busy. // --------------------------------------------------------------------------- // -void +void CCamCameraController::DirectRequestL( const TCamCameraRequestId& aRequestId ) { PRINT( _L("Camera => CCamCameraController::DirectRequestL") ); @@ -1269,7 +1269,7 @@ // ----------------------------------------------------- default: Panic( ECamCameraControllerUnsupported ); - break; + break; } if( notify ) @@ -1290,11 +1290,11 @@ // associated event codes to observers. If any errors happen during the // sequence, the notification will reflect this with the status code. // When sequence ends, observers will be notified with event -// ECamCameraEventSequenceEnd. No new requests are accepted before +// ECamCameraEventSequenceEnd. No new requests are accepted before // ECamCameraEventSequenceEnd notification is sent. // --------------------------------------------------------------------------- // -void +void CCamCameraController ::RequestSequenceL( const RCamRequestArray& aSequence ) { @@ -1322,7 +1322,7 @@ // RequestSettingsChangeL // --------------------------------------------------------------------------- // -void +void CCamCameraController::RequestSettingsChangeL() { PRINT ( _L("Camera => CCamCameraController::RequestSettingsChangeL") ); @@ -1358,7 +1358,7 @@ if( !callback ) { TCamCameraSettingId setting = aSettingId; - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventSettingsSingle, ECamCameraEventClassSettings, &setting ); @@ -1372,7 +1372,7 @@ // CancelSequence // --------------------------------------------------------------------------- // -void +void CCamCameraController::CancelSequence() { PRINT( _L("Camera => CCamCameraController::CancelSequence") ); @@ -1393,9 +1393,9 @@ // Clears busy flag, if we were processing a sequence of requests / settings. // If iBusy is set because one request is on the way, // we must not clear it here - when that request is processed, - // the flag will be cleared. + // the flag will be cleared. EndSequence( KErrCancel ); - } + } PRINT( _L("Camera <= CCamCameraController::CancelSequence") ); } @@ -1408,12 +1408,12 @@ { PRINT1( _L("Camera => CCamCameraController::SwitchCameraL%d"),aCameraIndex ); #ifdef _DEBUG - if( aCameraIndex == iInfo.iCurrentCamera ) + if( aCameraIndex == iInfo.iCurrentCamera ) { PRINT( _L("Camera <> CCamCameraController::SwitchCameraL - Changing Secondary camera orientation") ); } #endif // _DEBUG - + if( aCameraIndex < 0 || aCameraIndex >= CamerasAvailable() ) { User::Leave( KErrNotSupported ); @@ -1426,17 +1426,17 @@ { ReleaseCurrentCamera(); } - - // used in CompleteSwitchCamera + + // used in CompleteSwitchCamera iCurrentCameraIndex = aCameraIndex; - + // ----------------------------------------------------- // Then create new camera: PRINT ( _L("############################################################") ); #ifdef CAMERAAPP_CAE_FOR_VIDEO PRINT1( _L("Camera <> Creating CCaeEngine, camera index: %d .."), aCameraIndex ); - iCaeEngine = NewCaeEngineL( aCameraIndex ); + iCaeEngine = NewCaeEngineL( aCameraIndex ); #else @@ -1467,7 +1467,7 @@ return; } -#ifdef CAMERAAPP_CAE_FOR_VIDEO +#ifdef CAMERAAPP_CAE_FOR_VIDEO #ifdef CAMERAAPP_CAE_FIX PRINT ( _L("Camera <> Creating new CCamera..") ); iCamera = NewCameraL( iCurrentCameraIndex ); @@ -1488,7 +1488,7 @@ if( KPrimaryCameraIndex == iInfo.iCurrentCamera ) { // Support only for primary camera. - // Ignore error in instantiation: If NewL leaves, there's no + // Ignore error in instantiation: If NewL leaves, there's no // support for Image Processing available. Report error to client // if settings requiring it are used. PRINT ( _L("Camera <> Create CCameraImageProcessing..") ); @@ -1503,8 +1503,8 @@ GetAdvancedSettingsInfoL(); PRINT ( _L("Camera <> Get i/f MCameraOrientation..") ) - iCustomInterfaceOrientation = - static_cast ( + iCustomInterfaceOrientation = + static_cast ( iCamera->CustomInterface( KCameraOrientationUid ) ); PRINT1( _L("Camera <> Orientation custom i/f pointer:%d"), iCustomInterfaceOrientation ); @@ -1532,42 +1532,42 @@ PRINT1( _L("Camera => CCamCameraController::SetOrientationModeL %d"), aOrientation ); #ifdef CAMERAAPP_CAE_FOR_VIDEO PRINT( _L("Camera <> CCameraController: Get i/f MUIOrientationOverride from iCaeEngine..") ) - iCustomInterfaceUIOrientationOverride = - static_cast ( + iCustomInterfaceUIOrientationOverride = + static_cast ( iCaeEngine->CustomInterface( KCameraUIOrientationOverrideUid ) ); #else PRINT( _L("Camera <> CCameraController: Get i/f MUIOrientationOverride from iCamera..") ) - iCustomInterfaceUIOrientationOverride = - static_cast ( + iCustomInterfaceUIOrientationOverride = + static_cast ( iCamera->CustomInterface( KCameraUIOrientationOverrideUid ) ); #endif // CAMERAAPP_CAE_FOR_VIDEO PRINT1( _L("Camera <> OrientationOverride custom i/f pointer:%d"), iCustomInterfaceUIOrientationOverride ); TRAP_IGNORE(iCustomInterfaceUIOrientationOverride->SetOrientationModeL( aOrientation )); - + PRINT( _L("Camera <= CCamCameraController::SetOrientationModeL") ); } // --------------------------------------------------------------------------- -// CamerasAvailable <> +// CamerasAvailable <> // --------------------------------------------------------------------------- // -TInt -CCamCameraController::CamerasAvailable() - { -#ifndef CAMERAAPP_CAPI_EMULATOR +TInt +CCamCameraController::CamerasAvailable() + { +#ifndef CAMERAAPP_CAPI_EMULATOR return CCamera::CamerasAvailable(); #else // Temporary return 2; -#endif +#endif } // --------------------------------------------------------------------------- // CameraHandle // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController::CameraHandle() { if( iCamera ) @@ -1581,7 +1581,7 @@ // CameraInfo // --------------------------------------------------------------------------- // -const TCameraInfo& +const TCameraInfo& CCamCameraController::CameraInfo() const { return iCameraInfo; @@ -1591,7 +1591,7 @@ // ControllerInfo // --------------------------------------------------------------------------- // -const TCamControllerInfo& +const TCamControllerInfo& CCamCameraController::ControllerInfo() const { return iInfo; @@ -1601,7 +1601,7 @@ // // --------------------------------------------------------------------------- // -TUint +TUint CCamCameraController::State() const { return iInfo.iState; @@ -1611,7 +1611,7 @@ // // --------------------------------------------------------------------------- // -TCamViewfinderMode +TCamViewfinderMode CCamCameraController::ViewfinderMode() const { return iInfo.iVfMode; @@ -1627,7 +1627,7 @@ return iInfo.iVfState; } - + // --------------------------------------------------------------------------- // // --------------------------------------------------------------------------- @@ -1635,7 +1635,7 @@ TCamCameraTriState CCamCameraController::SnapshotState() const { - return iInfo.iSsState; + return iInfo.iSsState; } @@ -1643,11 +1643,11 @@ // // --------------------------------------------------------------------------- // -TCamCameraReadyState +TCamCameraReadyState CCamCameraController::FlashState() const { TCamCameraReadyState state = ECamUnknown; - + #ifdef CAMERAAPP_CAPI_V2_ADV if( iAdvancedSettings ) { @@ -1698,7 +1698,7 @@ case ECameraSettingExposure: case ECameraUserSceneSettingExposure: { - TPckgBuf* exposure = + TPckgBuf* exposure = static_cast*>( aSettingData ); #ifdef CAMERAAPP_CAE_FIX if( iCaeInUse ) @@ -1724,11 +1724,11 @@ *iso = iAdvancedSettings->IsoRate(); break; } - case ECameraSettingContAF: + case ECameraSettingContAF: { TInt* contAF = static_cast( aSettingData ); *contAF = iAdvancedSettings->AutoFocusType() & //bitwise - CAS::EAutoFocusTypeContinuous; + CAS::EAutoFocusTypeContinuous; break; } #endif @@ -1736,7 +1736,7 @@ case ECameraSettingWhiteBalance: case ECameraUserSceneSettingWhiteBalance: { - TPckgBuf* wb = + TPckgBuf* wb = static_cast*>( aSettingData ); #ifdef CAMERAAPP_CAE_FIX @@ -1757,7 +1757,7 @@ CheckNonNullL( iImageProcessor, KErrNotSupported ); CIP::TEffect* effect = static_cast( aSettingData ); - *effect = + *effect = (CIP::TEffect) iImageProcessor->TransformationValue( KUidECamEventImageProcessingEffect ); break; @@ -1852,7 +1852,7 @@ case ECameraSettingBrightness: case ECameraUserSceneSettingBrightness: { - CCamera::TBrightness* brightness = + CCamera::TBrightness* brightness = static_cast( aSettingData ); #ifdef CAMERAAPP_CAE_FIX if( iCaeInUse ) @@ -1866,7 +1866,7 @@ case ECameraSettingContrast: case ECameraUserSceneSettingContrast: { - CCamera::TContrast* contrast = + CCamera::TContrast* contrast = static_cast( aSettingData ); #ifdef CAMERAAPP_CAE_FIX if( iCaeInUse ) @@ -1880,7 +1880,7 @@ // ----------------------------------------------------- case ECameraSettingStabilization: { - TPckgBuf* pckg = + TPckgBuf* pckg = static_cast*>( aSettingData ); TCamSettingDataStabilization& stabilization = (*pckg)(); @@ -1895,7 +1895,7 @@ case ECameraSettingOrientation: { CheckNonNullL( iCustomInterfaceOrientation, KErrNotSupported ); - + MCameraOrientation::TOrientation* orientation = static_cast( aSettingData ); @@ -1927,7 +1927,7 @@ // Leave here will cause iActive to call EndSequence with the error code. // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController::ProcessNextRequestL() { PRINT( _L("Camera => CCamCameraController::ProcessNextRequestL") ); @@ -1970,7 +1970,7 @@ if( iSequenceIndex < iSequenceArray.Count() ) { const TCamCameraRequestId& requestId( iSequenceArray[iSequenceIndex] ); - + PRINT( _L("Camera <> process request..") ); // If this request will be responded through MCameraObserver(2) callback, // iActive will be requested a new callback there and also @@ -1979,7 +1979,7 @@ readyForNextStep = ProcessOneRequestL( requestId ); if( readyForNextStep ) - { + { if( ECamRequestVideoStop == requestId || ECamRequestImageCancel == requestId ) { @@ -1988,8 +1988,8 @@ PRINT( _L("Camera <> CCamCameraController::RequestL .. Skipping commmon notification, is done already.") ); } else - { - TCamCameraEventId event( Request2Event( requestId ) ); + { + TCamCameraEventId event( Request2Event( requestId ) ); NotifyObservers( KErrNone, event, EventClass( event ) ); } } @@ -2018,10 +2018,10 @@ // ProcessSettingL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController::ProcessSettingL( const TCamCameraSettingId& aSettingId ) { - PRINT1( _L("Camera => CCamCameraController::ProcessSettingL [%s]"), + PRINT1( _L("Camera => CCamCameraController::ProcessSettingL [%s]"), KCameraSettingNames[aSettingId] ); TInt callback( EFalse ); @@ -2037,30 +2037,30 @@ case ECameraSettingFlash: case ECameraUserSceneSettingFlash: { - if ( IsFlagOn( iInfo.iState, ECamVideoOn ) ) + if ( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { CCamera::TFlash flash( CCamera::EFlashNone ); - TCamFlashId currentFlashSetting( ECamFlashOff ); + TCamFlashId currentFlashSetting( ECamFlashOff ); // Video light setting has values ECamFlashOff/ECamFlashForced - iSettingProvider.ProvideCameraSettingL( aSettingId, - ¤tFlashSetting ); - PRINT2( _L("Camera => Video Flash now = %d, new = %d"), + iSettingProvider.ProvideCameraSettingL( aSettingId, + ¤tFlashSetting ); + PRINT2( _L("Camera => Video Flash now = %d, new = %d"), iCamera->Flash(), currentFlashSetting ); // Camera uses values EFlashNone/EFlashVideoLight - flash = (currentFlashSetting == ECamFlashOff)? + flash = (currentFlashSetting == ECamFlashOff)? CCamera::EFlashNone:CCamera::EFlashVideoLight; - PRINT1( _L("Camera => iCamera->SetFlashL( %d )"), flash ); + PRINT1( _L("Camera => iCamera->SetFlashL( %d )"), flash ); iCamera->SetFlashL( flash ); } else { - // Still image flash + // Still image flash CCamera::TFlash flash( CCamera::EFlashAuto ); iSettingProvider.ProvideCameraSettingL( aSettingId, &flash ); #ifdef CAMERAAPP_CAE_FIX if( iCaeInUse ) { - iCaeEngine->SetFlashModeL( flash ); + iCaeEngine->SetFlashModeL( flash ); } else #endif @@ -2097,7 +2097,7 @@ { iAdvancedSettings->SetExposureMode( mode ); // iCamera->SetExposureL( mode ); - + TInt step = ResolveEvStep( params().iExposureStep ); // Value needs to be multiplied by KECamFineResolutionFactor. // Setting provider does this for us. @@ -2129,25 +2129,25 @@ iSettingProvider.ProvideCameraSettingL( aSettingId, &iso ); callback = ETrue; CleanupStack::PopAndDestroy( &ISOarray ); - + PRINT1( _L("Camera <> Setting ISO rate to: %d"), iso ); if( !iso ) { // ISO Auto - iAdvancedSettings->SetISORateL( - CCamera::CCameraAdvancedSettings::EISOAutoUnPrioritised, iso ); + iAdvancedSettings->SetISORateL( + CCamera::CCameraAdvancedSettings::EISOAutoUnPrioritised, iso ); } - else if( IsSupportedValue( iso, + else if( IsSupportedValue( iso, iAdvancedSettingInfo.iIsoRatesSupport, - EDiscreteSteps ) ) + EDiscreteSteps ) ) { - // Selected ISO rate - iAdvancedSettings->SetISORateL( + // Selected ISO rate + iAdvancedSettings->SetISORateL( CCamera::CCameraAdvancedSettings::EISOManual, iso ); } else { - User::Leave( KErrNotSupported ); + User::Leave( KErrNotSupported ); } break; } @@ -2167,7 +2167,7 @@ iCamera->SetWhiteBalanceL( params().iWhiteBalanceMode ); #ifdef CAMERAAPP_CAPI_V2 callback = ETrue; -#endif +#endif } break; } @@ -2180,8 +2180,8 @@ CIP::TEffect effect( CIP::EEffectNone ); iSettingProvider.ProvideCameraSettingL( aSettingId, &effect ); - if( IsSupportedValue( effect, - iAdvancedSettingInfo.iColourEffectSupport, + if( IsSupportedValue( effect, + iAdvancedSettingInfo.iColourEffectSupport, iAdvancedSettingInfo.iColourEffectValueInfo ) ) { iImageProcessor->SetTransformationValue( KUidECamEventImageProcessingEffect, effect ); @@ -2199,8 +2199,8 @@ TInt sharpness( 0 ); iSettingProvider.ProvideCameraSettingL( aSettingId, &sharpness ); - if( IsSupportedValue( sharpness, - iAdvancedSettingInfo.iSharpnessSupport, + if( IsSupportedValue( sharpness, + iAdvancedSettingInfo.iSharpnessSupport, iAdvancedSettingInfo.iSharpnessValueInfo ) ) { iImageProcessor->SetTransformationValue( KUidECamEventImageProcessingAdjustSharpness, sharpness ); @@ -2244,17 +2244,17 @@ #ifdef CAMERAAPP_CAPI_V2_ADV if( iAdvancedSettingInfo.iDigitalZoomSupport.Count() > zoom ) iAdvancedSettings->SetDigitalZoom( iAdvancedSettingInfo.iDigitalZoomSupport[zoom] ); - else + else User::Leave( KErrNotSupported ); callback = ETrue; - + #else // Note: Even if the method is misleadingly named // CCamera::SetDigitalZoomFactorL, the values are // zoom steps, not zoom factors. iCamera->SetDigitalZoomFactorL( zoom ); #endif - + } break; } @@ -2275,13 +2275,13 @@ PRINT( _L("Camera <> CCamCameraController::ProcessSettingL ECameraSettingStabilization") ); TPckgBuf stabilization; iSettingProvider.ProvideCameraSettingL( aSettingId, &stabilization ); - + // Check that the values are supported.. TBool modeOk = ( CAS::EStabilizationModeOff == stabilization().iMode || iAdvancedSettingInfo.iStabilizationModeSupport & stabilization().iMode ); TBool effectOk = ( CAS::EStabilizationOff == stabilization().iEffect || iAdvancedSettingInfo.iStabilizationEffectSupport & stabilization().iEffect ); - TBool complexOk = ( CAS::EStabilizationComplexityAuto == stabilization().iComplexity + TBool complexOk = ( CAS::EStabilizationComplexityAuto == stabilization().iComplexity || iAdvancedSettingInfo.iStabilizationComplexitySupport & stabilization().iComplexity ); if( modeOk && effectOk && complexOk ) @@ -2291,9 +2291,9 @@ iAdvancedSettings->SetStabilizationEffect ( stabilization().iEffect ); iAdvancedSettings->SetStabilizationComplexity( stabilization().iComplexity ); // Events: - // KUidECamEventCameraSettingStabilizationMode - // KUidECamEventCameraSettingsStabilizationEffect - // KUidECamEventSettingsStabilizationAlgorithmComplexity + // KUidECamEventCameraSettingStabilizationMode + // KUidECamEventCameraSettingsStabilizationEffect + // KUidECamEventSettingsStabilizationAlgorithmComplexity // We use the latest one to determine when we can continue. // Do not change above order unless CCamSettingConversion::Map2EventUidValue // is edited.. @@ -2307,12 +2307,12 @@ break; } // ------------------------------- - case ECameraSettingContAF: + case ECameraSettingContAF: { CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); if ( appUi->AppController().UiConfigManagerPtr()->IsContinuosAutofocusSupported() ) { - TBool isContAFon( iAdvancedSettings->AutoFocusType() & + TBool isContAFon( iAdvancedSettings->AutoFocusType() & CAS::EAutoFocusTypeContinuous ); if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { @@ -2349,8 +2349,8 @@ } else { - // - PRINT( _L("Camera <> Video file size too early, NOT SET!!") ); + // + PRINT( _L("Camera <> Video file size too early, NOT SET!!") ); } break; } @@ -2376,7 +2376,7 @@ } else { - PRINT( _L("Camera <> Video name too early, NOT SET!!") ); + PRINT( _L("Camera <> Video name too early, NOT SET!!") ); } break; } @@ -2398,8 +2398,8 @@ } else { - PRINT( _L("Camera <> Video mute too early, NOT SET!!") ); - } + PRINT( _L("Camera <> Video mute too early, NOT SET!!") ); + } break; } // ------------------------------- @@ -2421,11 +2421,11 @@ case ECameraSettingOrientation: { CheckNonNullL( iCustomInterfaceOrientation, KErrNotSupported ); - MCameraOrientation::TOrientation + MCameraOrientation::TOrientation orientation( MCameraOrientation::EOrientation0 ); iSettingProvider.ProvideCameraSettingL( aSettingId, &orientation ); - if ( iInfo.iCurrentCamera != KPrimaryCameraIndex && + if ( iInfo.iCurrentCamera != KPrimaryCameraIndex && orientation == MCameraOrientation::EOrientation90 ) { PRINT( _L("Camera <> Rotate portrait secondary camera image 270 degrees") ); @@ -2458,18 +2458,18 @@ // // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessOneRequestL( const TCamCameraRequestId& aRequestId ) { PRINT( _L("Camera => CCamCameraController::ProcessOneRequestL") ); - PRINT2( _L("Camera <> processing request [%s] id:%d "), - KCamRequestNames[aRequestId], + PRINT2( _L("Camera <> processing request [%s] id:%d "), + KCamRequestNames[aRequestId], aRequestId ); TInt readyForNext( ETrue ); - - // Order from most time critical / frequent + + // Order from most time critical / frequent // to less time critical / seldom. // Handled in submethods to preserve readability. // ----------------------------------------------------- @@ -2530,7 +2530,7 @@ // ProcessControlStartupRequestL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessControlStartupRequestL( const TCamCameraRequestId& aRequestId ) { @@ -2547,9 +2547,9 @@ // If UIOrientationOverrideAPI is used, ui construction is completed while // waiting for Reserve to complete, event sent here to continue ui construction CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); - if ( appUi->AppController().UiConfigManagerPtr()->IsUIOrientationOverrideSupported() ) - { - NotifyObservers( KErrNone, + if ( appUi->AppController().UiConfigManagerPtr()->IsUIOrientationOverrideSupported() ) + { + NotifyObservers( KErrNone, ECamCameraEventReserveRequested, ECamCameraEventClassBasicControl ); } @@ -2563,7 +2563,7 @@ CAMERAAPP_PERF_CONTROLLER_START( ECamRequestPowerOn ); - iCamera->PowerOn(); + iCamera->PowerOn(); } // ------------------------------------------------------- // Unknown @@ -2572,7 +2572,7 @@ Panic( ECamCameraControllerCorrupt ); } // ------------------------------------------------------- - iReleasedByUi = EFalse; + iReleasedByUi = EFalse; PRINT( _L("Camera <= CCamCameraController::ProcessControlStartupRequestL") ); // Callback needs to be received before we can continue. return EFalse; @@ -2582,16 +2582,16 @@ // ProcessControlShutdownRequest // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessControlShutdownRequest( const TCamCameraRequestId& aRequestId ) { - PRINT( _L("Camera => CCamCameraController::ProcessControlShutdownRequest") ); + PRINT( _L("Camera => CCamCameraController::ProcessControlShutdownRequest") ); // ------------------------------------------------------- // Power off if( ECamRequestPowerOff == aRequestId ) { - if( IsFlagOn( iInfo.iState, ECamPowerOn ) ) + if( IsFlagOn( iInfo.iState, ECamPowerOn ) ) { // ------------------------------- // Release image or video capture @@ -2599,14 +2599,14 @@ { // Leaves only if state is wrong (already checked here). ProcessImageShutdownRequest( ECamRequestImageRelease ); - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventImageRelease, ECamCameraEventClassImage ); } else if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { TRAP_IGNORE( ProcessVideoRequestL( ECamRequestVideoRelease ) ); - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventVideoRelease, ECamCameraEventClassVideo ); } @@ -2639,10 +2639,10 @@ { iCaeEngine->PowerOff(); } - else + else #endif // CAMERAAPP_CAE_FIX { - iCamera->PowerOff(); + iCamera->PowerOff(); } // ------------------------------- } @@ -2674,18 +2674,18 @@ #endif // CAMERAAPP_CAE_FIX { iCamera->Release(); - iReleasedByUi = ETrue; + iReleasedByUi = ETrue; if( iIveRecoveryCount > 0 ) { HandleReserveLostEvent( KErrNone ); } } } - PRINT( _L("Camera <> released, reset info") ); + PRINT( _L("Camera <> released, reset info") ); // Reset our info, but preserve busy flag and camera index. // Sets iInfo.iState to ECamIdle. - iInfo.Reset( ETrue, ETrue ); + iInfo.Reset( ETrue, ETrue ); } // ------------------------------------------------------- // Unknown @@ -2694,8 +2694,8 @@ Panic( ECamCameraControllerCorrupt ); } // ------------------------------------------------------- - PRINT( _L("Camera <= CCamCameraController::ProcessControlShutdownRequest") ); - + PRINT( _L("Camera <= CCamCameraController::ProcessControlShutdownRequest") ); + // No callback needs to be waited. return ETrue; } @@ -2704,7 +2704,7 @@ // ProcessViewfinderRequestL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessVfRequestL( const TCamCameraRequestId& aRequestId ) { @@ -2752,7 +2752,7 @@ void CCamCameraController::InitViewfinderL( const TCamViewfinderMode& aMode ) { - PRINT( _L("Camera => CCamCameraController::InitViewfinderL") ); + PRINT( _L("Camera => CCamCameraController::InitViewfinderL") ); // Check the old viewfinder is released now. // No further checks made here. @@ -2765,10 +2765,10 @@ case ECamViewfinderDirect: { // Don't proceed if not supported by camera. - CheckFlagOnL( iCameraInfo.iOptionsSupported, + CheckFlagOnL( iCameraInfo.iOptionsSupported, TCameraInfo::EViewFinderDirectSupported, KErrNotSupported ); - + #ifdef CAMERAAPP_CAPI_V2_DVF PRINT( _L("Camera <> Creating CCameraDirectViewFinder instance") ); if( iDirectViewfinder ) @@ -2778,8 +2778,8 @@ } iDirectViewfinder = CCamera::CCameraDirectViewFinder::NewL( *iCamera ); #else - // not implemented - Panic( ECamCameraControllerUnsupported ); + // not implemented + Panic( ECamCameraControllerUnsupported ); #endif iInfo.iVfState = ECamTriInactive; iInfo.iVfMode = ECamViewfinderDirect; @@ -2789,10 +2789,10 @@ case ECamViewfinderBitmap: { // Don't proceed if not supported by camera. - CheckFlagOnL( iCameraInfo.iOptionsSupported, + CheckFlagOnL( iCameraInfo.iOptionsSupported, TCameraInfo::EViewFinderBitmapsSupported, KErrNotSupported ); - + iInfo.iVfState = ECamTriInactive; iInfo.iVfMode = ECamViewfinderBitmap; break; @@ -2804,11 +2804,11 @@ // --------------------------------- default: // Unknown mode - Panic( ECamCameraControllerUnsupported ); - break; + Panic( ECamCameraControllerUnsupported ); + break; // --------------------------------- } - PRINT( _L("Camera <= CCamCameraController::InitViewfinderL") ); + PRINT( _L("Camera <= CCamCameraController::InitViewfinderL") ); } // --------------------------------------------------------------------------- @@ -2821,11 +2821,11 @@ #ifdef __WINSCW__ const TCamViewfinderMode KTargetMode( ECamViewfinderBitmap ); -#else - +#else + TPckgBuf mode; iSettingProvider.ProvideCameraParamL( ECameraParamVfMode, &mode ); - + // If the viewfinder mode needs to be changed, // first stop and release resources related to the old viewfinder type. const TCamViewfinderMode KTargetMode( mode() ); @@ -2837,25 +2837,29 @@ ProcessVfRelaseRequest(); } - // Check that application is still in foreground, if not then return + // Check that application is still in foreground, if not, then vf not started. CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); - - if ( !appUi->AppInBackground( ETrue ) ) + if ( appUi && appUi->AppInBackground( ETrue ) ) + { + // Notify appUi that we did not start viewfinder although asked to do so. + appUi->SetViewFinderStoppedStatus( iInfo.iVfState != ECamTriActive ); + } + else { switch( iInfo.iVfState ) { // ----------------------------------------------------- case ECamTriIdle: PRINT( _L("Camera <> case ECamTriIdle") ); - + InitViewfinderL( KTargetMode ); // << fall through >> - + case ECamTriInactive: { // ------------------------------- PRINT( _L("Camera <> case ECamTriInactive") ); - + if( ECamViewfinderDirect == iInfo.iVfMode ) #ifdef CAMERAAPP_CAPI_V2_DVF { @@ -2868,16 +2872,16 @@ PRINT( _L("Camera <> CCamCameraController::iViewfinderWindow is NULL - cannot start VF!") ); User::Leave( KErrNotReady ); } - + // Use the same viewfinder position and size as for bitmap viewfinder TPckgBuf params; iSettingProvider.ProvideCameraParamL( ECameraParamVfBitmap, ¶ms ); - + CEikonEnv* env = CEikonEnv::Static(); - + OstTrace0( CAMERAAPP_PERFORMANCE, CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_VF_INIT 0" ); //CCORAPP_APP_VF_INIT_END OstTrace0( CAMERAAPP_PERFORMANCE, DUP1_CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_OVERLAY_INIT 0" ); //CCORAPP_APP_OVERLAY_INIT_END - + TInt orgPos = SetVfWindowOrdinal(); // Set visible iCamera->StartViewFinderDirectL( env->WsSession(), @@ -2885,16 +2889,15 @@ *iViewfinderWindow, params().iRect ); (void) SetVfWindowOrdinal( orgPos ); // back to original - - CCamAppUi* appUi = static_cast( env->AppUi() ); - if ( ECamActiveCameraSecondary == appUi->ActiveCamera() ) + + if ( ECamActiveCameraSecondary == appUi->ActiveCamera() ) { - iCamera->SetViewFinderMirrorL(ETrue); + iCamera->SetViewFinderMirrorL(ETrue); } // VF started succesfully, reset recovery counter - delete iIdle; + delete iIdle; iIdle = NULL; - iIveRecoveryCount = KIveRecoveryCountMax; + iIveRecoveryCount = KIveRecoveryCountMax; break; } case CCamera::CCameraDirectViewFinder::EViewFinderPause: @@ -2906,7 +2909,7 @@ { // Already running. Not considered as error. break; - } + } default: { Panic( ECamCameraControllerUnsupported ); @@ -2917,14 +2920,14 @@ #else // CAMERAAPP_CAPI_V2_DVF { // No controller support for direct vf. - Panic( ECamCameraControllerUnsupported ); + Panic( ECamCameraControllerUnsupported ); } #endif // CAMERAAPP_CAPI_V2_DVF // ------------------------------- else { PRINT( _L("Camera <> Get bitmap vf details..") ); - + TPckgBuf params; iSettingProvider.ProvideCameraParamL( ECameraParamVfBitmap, ¶ms ); iInfo.iViewfinderFormat = params().iFormat; @@ -2933,7 +2936,7 @@ if( iCaeInUse ) { PRINT( _L("Camera <> Call CCaeEngine::StartViewFinderBitmapsL..") ); - + OstTrace0( CAMERAAPP_PERFORMANCE, DUP2_CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_VF_INIT 0" ); //CCORAPP_APP_VF_INIT_END OstTrace0( CAMERAAPP_PERFORMANCE, DUP3_CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_OVERLAY_INIT 0" ); //CCORAPP_APP_OVERLAY_INIT_END iCaeEngine->StartViewFinderBitmapsL( iInfo.iViewfinderSize ); @@ -2944,16 +2947,16 @@ PRINT( _L("Camera <> Call CCamera::StartViewFinderBitmapsL..") ); OstTrace0( CAMERAAPP_PERFORMANCE, DUP4_CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_VF_INIT 0" ); //CCORAPP_APP_VF_INIT_END OstTrace0( CAMERAAPP_PERFORMANCE, DUP5_CCAMCAMERACONTROLLER_PROCESSVFSTARTREQUESTL, "e_CAM_APP_OVERLAY_INIT 0" ); //CCORAPP_APP_OVERLAY_INIT_END - iCamera->StartViewFinderBitmapsL( iInfo.iViewfinderSize ); - + iCamera->StartViewFinderBitmapsL( iInfo.iViewfinderSize ); + if ( params().iMirrorImage ) { - iCamera->SetViewFinderMirrorL( params().iMirrorImage ); + iCamera->SetViewFinderMirrorL( params().iMirrorImage ); } } } // ------------------------------- - + iInfo.iVfState = ECamTriActive; //view finder started now(set stop status as false) appUi->SetViewFinderStoppedStatus( EFalse ); @@ -2972,8 +2975,8 @@ Panic( ECamCameraControllerCorrupt ); break; // ----------------------------------------------------- - } - } + } + } PRINT( _L("Camera <= CCamCameraController::ProcessVfStartRequestL") ); } @@ -3078,9 +3081,9 @@ // Do the stopping first and continue then with release. // Leaves only if iVfState is ECamVfIdle, which is not the case here. TRAP_IGNORE( ProcessVfStopRequestL() ); - + // Need to notify here, because done as a part of other request. - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventVfStop, ECamCameraEventClassVfControl ); // << fall through >> @@ -3101,7 +3104,7 @@ } // These may very well remain as they are. // Atleast for the format there is no "zero" value available. - // iInfo.iViewfinderSize + // iInfo.iViewfinderSize // iInfo.iViewfinderFormat iInfo.iVfState = ECamTriIdle; iInfo.iVfMode = ECamViewfinderNone; @@ -3124,7 +3127,7 @@ // ProcessImageRequestL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessImageRequestL( const TCamCameraRequestId& aRequestId ) { @@ -3138,7 +3141,7 @@ case ECamRequestImageInit: { // When camera engine still capture don't Init a new capture - + if ( ECamCaptureOn == iInfo.iCaptureState ) { return EFalse; @@ -3152,9 +3155,9 @@ iModeChange = ECamModeChangeVideo2Image; iModeChangePhase = ECamModeChangePhaseIdle; // incremented before first step iModeChangeStatus = KErrNone; - iActive->IssueRequest(); + iActive->IssueRequest(); } - else + else #else if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { @@ -3169,8 +3172,8 @@ CheckEqualsL( iInfo.iCaptureState, ECamCaptureOff, KErrInUse ); PRINT( _L("Camera <> Checking that image capture supported..") ); - CheckFlagOnL( iCameraInfo.iOptionsSupported, - TCameraInfo::EImageCaptureSupported, + CheckFlagOnL( iCameraInfo.iOptionsSupported, + TCameraInfo::EImageCaptureSupported, KErrNotSupported ); PRINT( _L("Camera <> Ask image parameters..") ); @@ -3187,25 +3190,25 @@ User::LeaveIfError( index ); PRINT( _L("Camera <> Call CCamera::PrepareImageCaptureL..") ); - PRINT2( _L("Camera <> Image size: (%d, %d)"), + PRINT2( _L("Camera <> Image size: (%d, %d)"), params().iSize.iWidth, params().iSize.iHeight ); - + OstTrace0( CAMERAAPP_PERFORMANCE, CCAMCAMERACONTROLLER_PROCESSIMAGEREQUESTL, "e_CAM_APP_CONFIGURATIONS 0" ); //CCORAPP_APP_CONFIGS_END iCamera->PrepareImageCaptureL( format, index ); OstTrace0( CAMERAAPP_PERFORMANCE, DUP1_CCAMCAMERACONTROLLER_PROCESSIMAGEREQUESTL, "e_CAM_APP_STILL_INIT 0" ); //CCORAPP_APP_STILL_INIT_END OstTrace0( CAMERAAPP_PERFORMANCE, DUP2_CCAMCAMERACONTROLLER_PROCESSIMAGEREQUESTL, "e_CAM_APP_OVERLAY_INIT 1" ); //CCORAPP_APP_OVERLAY_INIT_START - + iCamera->SetJpegQuality( params().iQualityFactor ); SetFlags( iInfo.iState, ECamImageOn ); - -#ifdef CAMERAAPP_CAPI_V2_ADV + +#ifdef CAMERAAPP_CAPI_V2_ADV // Set current autofocus range to invalid value to force focusing - iInfo.iCurrentFocusRange = static_cast( -1 ); + iInfo.iCurrentFocusRange = static_cast( -1 ); GetAdvancedSettingsInfoL(); #endif // CAMERAAPP_CAPI_V2_ADV - + iInfo.iCaptureCount = 0; iInfo.iSnapshotCount = 0; callback = EFalse; // No callback to wait for. @@ -3227,12 +3230,12 @@ PRINT1( _L("Camera <> CCamCameraController .. About to start capture, total shared buffers in use: %d"), CCamBufferShare::TotalBufferShareCount() ); iCamera->CaptureImage(); - + // When image data is received from CCamera, // an event is generated for that. We need to notify - // here as other places check if the request has associated + // here as other places check if the request has associated // callback, and send no notification yet if callback exist. - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventImageStart, ECamCameraEventClassImage ); break; @@ -3247,14 +3250,14 @@ } PRINT1( _L("Camera <= CCamCameraController::ProcessImageRequestL, continue now:%d"), !callback ); return !callback; - } + } // --------------------------------------------------------------------------- // ProcessImageShutdownRequest // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessImageShutdownRequest( const TCamCameraRequestId& aRequestId ) { @@ -3266,19 +3269,19 @@ case ECamRequestImageCancel: { if( IsFlagOn( iInfo.iState, ECamImageOn ) -// && ECamCaptureOn == iInfo.iCaptureState +// && ECamCaptureOn == iInfo.iCaptureState ) { const TCamCameraCaptureState previousState( iInfo.iCaptureState ); - if( iEncoder ) + if( iEncoder ) { iEncoder->Cancel(); delete iEncoder; iEncoder = NULL; } - + PRINT( _L("Camera <> Calling iCamera->CancelCaptureImage()") ); iCamera->CancelCaptureImage(); @@ -3293,8 +3296,8 @@ ClearFlags( iInfo.iBusy, ECamBusySingle ); TInt fullCaptures( Min( iInfo.iCaptureCount, iInfo.iSnapshotCount ) ); - NotifyObservers( KErrNone, - ECamCameraEventImageStop, + NotifyObservers( KErrNone, + ECamCameraEventImageStop, ECamCameraEventClassImage, &fullCaptures ); } @@ -3308,7 +3311,7 @@ ProcessImageShutdownRequest( ECamRequestImageCancel ); // Nothing else really needed for image, just set flags. - ClearFlags( iInfo.iState, ECamImageOn ); + ClearFlags( iInfo.iState, ECamImageOn ); iInfo.iCaptureCount = 0; iInfo.iSnapshotCount = 0; iInfo.iCaptureState = ECamCaptureOff; @@ -3325,7 +3328,7 @@ } PRINT( _L("Camera <= CCamCameraController::ProcessImageShutdownRequest") ); return ETrue; // can continue sequence, if needed - } + } @@ -3333,7 +3336,7 @@ // ProcessVideoRequestL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessVideoRequestL( const TCamCameraRequestId& aRequestId ) { @@ -3383,17 +3386,17 @@ // _LIT( KTempFilename, "C:\\video.3gp" ); // TPtrC ptr; // ptr.Set( KTempFilename() ); - PRINT1( _L("Camera <> Set filename [%S]"), &ptr ); + PRINT1( _L("Camera <> Set filename [%S]"), &ptr ); iCaeEngine->SetVideoRecordingFileNameL( ptr ); CleanupStack::PopAndDestroy( filename ); - + // Set max video clip size - ProcessSettingL( ECameraSettingFileMaxSize ); + ProcessSettingL( ECameraSettingFileMaxSize ); TPckgBuf params; PRINT( _L("Camera <> Getting params from setting provider..") ); iSettingProvider.ProvideCameraParamL( ECameraParamVideoCae, ¶ms ); - // The audioOn value is defined On==0 and Off==1, but the engine expects + // The audioOn value is defined On==0 and Off==1, but the engine expects // ETrue if audio recording is On params().iAudioOn = ( ECamSettOn == params().iAudioOn ) ? ETrue @@ -3414,12 +3417,12 @@ params().iVideoType, params().iAudioType ); } - -#ifdef CAMERAAPP_CAPI_V2_ADV + +#ifdef CAMERAAPP_CAPI_V2_ADV // Set current autofocus range to invalid value to force focusing - iInfo.iCurrentFocusRange = static_cast( -1 ); + iInfo.iCurrentFocusRange = static_cast( -1 ); #endif // CAMERAAPP_CAPI_V2_ADV - + iAppController.SetVideoInitNeeded( EFalse ); // iState is updated in the callback. PRINT( _L("Camera <> ..waiting for callback") ); @@ -3437,7 +3440,7 @@ case ECamCaptureOff: iCaeEngine->StartVideoRecording(); break; //case ECamCaptureOff: iCaeEngine->ResumeVideoRecording(); break; case ECamCapturePaused: iCaeEngine->ResumeVideoRecording(); break; - default: + default: Panic( ECamCameraControllerCorrupt ); break; } @@ -3460,18 +3463,18 @@ switch( iInfo.iCaptureState ) { case ECamCaptureOn: // << fall through >> - case ECamCapturePaused: + case ECamCapturePaused: PRINT( _L("Camera <> call CCaeEngine::StopVideoRecording..") ); - iCaeEngine->StopVideoRecording(); + iCaeEngine->StopVideoRecording(); // If we got the callback during above call, // we should not wait for it anymore. // Check the capture state to be sure. callback = (ECamCaptureOff != iInfo.iCaptureState); break; - case ECamCaptureOff: + case ECamCaptureOff: // no action, already stopped break; - default: + default: Panic( ECamCameraControllerCorrupt ); break; } @@ -3483,10 +3486,10 @@ { // Need to be stopped. CheckEqualsL( iInfo.iCaptureState, ECamCaptureOff, KErrInUse ); - + if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) iCaeEngine->CloseVideoRecording(); - + ClearFlags( iInfo.iState, ECamVideoOn ); callback = EFalse; #ifdef CAMERAAPP_CAPI_V2_ADV @@ -3504,8 +3507,8 @@ break; } // ----------------------------------------------------- - default: - Panic( ECamCameraControllerCorrupt ); + default: + Panic( ECamCameraControllerCorrupt ); break; // ----------------------------------------------------- } @@ -3525,7 +3528,7 @@ // ProcessSnapshotRequestL // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController ::ProcessSnapshotRequestL( const TCamCameraRequestId& aRequestId ) { @@ -3547,15 +3550,15 @@ // << fall through >> case ECamTriInactive: { - PRINT( _L("Camera <> ECamTriInactive") ); + PRINT( _L("Camera <> ECamTriInactive") ); iSnapshotProvider->StartSnapshot(); break; } - case ECamTriActive: // Already active, no action - PRINT( _L("Camera <> ECamTriActive") ); + case ECamTriActive: // Already active, no action + PRINT( _L("Camera <> ECamTriActive") ); break; default: - Panic( ECamCameraControllerCorrupt ); + Panic( ECamCameraControllerCorrupt ); break; } iInfo.iSsState = ECamTriActive; @@ -3603,12 +3606,12 @@ case ECamTriInactive: // Already inactive, no action. PRINT( _L("Camera <> Snapshot idle/inactive, no need to stop") ); break; - case ECamTriActive: + case ECamTriActive: PRINT( _L("Camera <> Snapshot ECamTriActive -> need to stop") ); iSnapshotProvider->StopSnapshot(); break; default: - Panic( ECamCameraControllerCorrupt ); + Panic( ECamCameraControllerCorrupt ); break; } iInfo.iSsState = ECamTriInactive; @@ -3629,28 +3632,28 @@ break; case ECamTriActive: iSnapshotProvider->StopSnapshot(); - NotifyObservers( KErrNone, - ECamCameraEventSsStop, + NotifyObservers( KErrNone, + ECamCameraEventSsStop, ECamCameraEventClassSsControl ); // << fall through >> case ECamTriInactive: delete iSnapshotProvider; iSnapshotProvider = NULL; break; - default: - Panic( ECamCameraControllerCorrupt ); + default: + Panic( ECamCameraControllerCorrupt ); break; } iInfo.iSsState = ECamTriIdle; PRINT( _L("Camera <= CCamCameraController::ProcessSsReleaseRequest") ); - } + } // --------------------------------------------------------------------------- // InitSnapshotL // --------------------------------------------------------------------------- // -void +void CCamCameraController::InitSnapshotL() { PRINT( _L("Camera => CCamCameraController::InitSnapshotL") ); @@ -3671,11 +3674,11 @@ // ------------------------------------------------------- - // Initialize the snapshot parameters + // Initialize the snapshot parameters TPckgBuf params; iSettingProvider.ProvideCameraParamL( ECameraParamSnapshot, ¶ms ); - // Try to get the best, still supported, snapshot format. + // Try to get the best, still supported, snapshot format. iInfo.iSnapshotFormat = ResolveSnapshotFormatL( params().iFormat ); iInfo.iSnapshotSize = params().iSize; iInfo.iSnapshotAspectMaintain = params().iMaintainAspect; @@ -3697,65 +3700,65 @@ // void CCamCameraController::ProcessAutofocusRequestL( const TCamCameraRequestId& aRequestId ) { - PRINT( _L("Camera => CCamCameraController::ProcessAutofocusRequestL") ); + PRINT( _L("Camera => CCamCameraController::ProcessAutofocusRequestL") ); #ifdef CAMERAAPP_CAPI_V2_ADV CheckNonNullL( iAdvancedSettings, KErrNotReady ); if( ECamRequestStartAutofocus == aRequestId ) { - PRINT( _L("Camera <> SetAutoFocusType( EAutoFocusTypeSingle )") ); - iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeSingle ); - iAfInProgress = ETrue; + PRINT( _L("Camera <> SetAutoFocusType( EAutoFocusTypeSingle )") ); + iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeSingle ); + iAfInProgress = ETrue; iFirstAfEventReceived = EFalse; } else if( ECamRequestCancelAutofocus == aRequestId ) { - if( iAfInProgress ) + if( iAfInProgress ) { // Autofocus in progress, need to cancel it before setting range to hyperfocal PRINT( _L("Camera <> Cancel ongoing autofocus request") ); iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeOff ); iAfHyperfocalPending = ETrue; } - else - { + else + { // If focustype is set to continuous, need to change it to off // before continuing - PRINT( _L("Camera <> SetAutoFocusType( EAutoFocusTypeOff )") ); + PRINT( _L("Camera <> SetAutoFocusType( EAutoFocusTypeOff )") ); if ( iAdvancedSettings->AutoFocusType() & CAS::EAutoFocusTypeContinuous ) { - iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeOff ); + iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeOff ); } - - PRINT( _L("Camera <> Cancel autofocus - set focus range to hyperfocal") ); - iInfo.iCurrentFocusRange = CAS::EFocusRangeHyperfocal; - iAdvancedSettings->SetFocusRange( CAS::EFocusRangeHyperfocal ); - - // Then start the focus. The callback of this cancel request sets + + PRINT( _L("Camera <> Cancel autofocus - set focus range to hyperfocal") ); + iInfo.iCurrentFocusRange = CAS::EFocusRangeHyperfocal; + iAdvancedSettings->SetFocusRange( CAS::EFocusRangeHyperfocal ); + + // Then start the focus. The callback of this cancel request sets // a boolean in CamAppController, so the resulting optimal // focus event does not change reticule/focus state. - iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeSingle ); - iAfInProgress = ETrue; + iAdvancedSettings->SetAutoFocusType( CAS::EAutoFocusTypeSingle ); + iAfInProgress = ETrue; } } else if( ECamRequestSetAfRange == aRequestId ) { PRINT( _L("Camera <> Set autofocus range") ); // Get autofocus mode from settings provider - + CAS::TFocusRange afRange; iSettingProvider.ProvideCameraSettingL( ECameraSettingFocusRange, &afRange ); - + if( iInfo.iCurrentFocusRange != afRange ) - { + { iAdvancedSettings->SetFocusRange( afRange ); - + // Should this be done in the callback?: iInfo.iCurrentFocusRange = afRange; } else { - // Correct range already set. No need to do anything. + // Correct range already set. No need to do anything. } } else @@ -3763,8 +3766,8 @@ // Other request must not end up here __ASSERT_DEBUG( EFalse, Panic( ECamCameraControllerCorrupt ) ); } -#endif // CAMERAAPP_CAPI_V2_ADV - +#endif // CAMERAAPP_CAPI_V2_ADV + (void)aRequestId; // removes compiler warning PRINT( _L("Camera <= CCamCameraController::ProcessAutofocusRequestL") ); } @@ -3782,10 +3785,10 @@ #ifdef CAMERAAPP_CAPI_V2_ADV // Check that we are prepared for image mode. CheckFlagOnL( iInfo.iState, ECamImageOn, KErrNotReady ); - + // Get requested capture count and determine current and target drive modes. TInt requestedLimit( 1 ); - iSettingProvider.ProvideCameraSettingL( ECameraSettingCaptureLimit, &requestedLimit ); + iSettingProvider.ProvideCameraSettingL( ECameraSettingCaptureLimit, &requestedLimit ); if( requestedLimit < 1 ) User::Leave( KErrArgument ); const CAS::TDriveMode& currentMode( iAdvancedSettings->DriveMode() ); @@ -3806,7 +3809,7 @@ // ------------------------------------------------------- // Determine needed changes and when to issue them - // + // // During burst capture, we may receive snapshots and // image data on mixed order, e.g: // @@ -3814,9 +3817,9 @@ // --------------^^--------------------------^^ // // C-API starts new burst capture when we adjust the - // capture limit. To avoid problems and to get equal - // amount of snapshots and images, capture count is - // only changed when we image data is received, + // capture limit. To avoid problems and to get equal + // amount of snapshots and images, capture count is + // only changed when we image data is received, // and as many images as snapshots have arrived. // In the chart above ^ marks a place where capture limit // can be updated. @@ -3833,7 +3836,7 @@ PRINT( _L("Camera <> CCamCameraController .. Drive mode update not possible now, LEAVE!") ); User::Leave( KErrInUse ); } - else if ( CAS::EDriveModeBurst == currentMode ) + else if ( CAS::EDriveModeBurst == currentMode ) { if( cameraLimit != requestedLimit ) { @@ -3851,17 +3854,17 @@ { // No action needed. Capture limit of 1 image kept. PRINT( _L("Camera <> CCamCameraController .. Single shot mode kept, no action") ); - } + } } // ----------------------------------- - // Not capturing - // + // Not capturing + // else { PRINT( _L("Camera <> CCamCameraController .. No capture ongoing..") ); iInfo.iCaptureLimit = requestedLimit; - // Capture limit has changed, + // Capture limit has changed, // check if drive mode also needs to be changed.. if( targetMode != currentMode ) { @@ -3876,13 +3879,13 @@ } // ------------------------------------------------------- - // Notify user that the change is done + // Notify user that the change is done // or wait for camera callbacks to finish. PRINT1( _L("Camera <> CCamCameraController .. Should wait callback = %d"), callback ); if( !callback ) { TInt setting( ECameraSettingCaptureLimit ); - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventSettingsSingle, ECamCameraEventClassSettings, &setting ); @@ -3899,7 +3902,7 @@ // EndSequence // --------------------------------------------------------------------------- // -void +void CCamCameraController::EndSequence( TInt aStatus ) { PRINT1( _L("Camera => CCamCameraController::EndSequence, status:%d"), aStatus ); @@ -3922,14 +3925,14 @@ ClearRequestQueue(); iReserveTryAgainCount = KCamReserveTryAgainMaxCount; - + // Need to first clear busy flag as observer might issue // new requests in notification callback. ClearFlags( iInfo.iBusy, ECamBusySequence ); PRINT( _L("Camera <> send notification..") ); - NotifyObservers( aStatus, - ECamCameraEventSequenceEnd, + NotifyObservers( aStatus, + ECamCameraEventSequenceEnd, ECamCameraEventClassBasicControl ); } // ------------------------------------------------------- @@ -3949,8 +3952,8 @@ ClearSettingQueue(); ClearFlags( iInfo.iBusy, ECamBusySetting ); - - NotifyObservers( aStatus, + + NotifyObservers( aStatus, ECamCameraEventSettingsDone, ECamCameraEventClassSettings, &last ); @@ -3973,7 +3976,7 @@ void CCamCameraController::ClearRequestQueue() { - iSequenceArray.Reset(); + iSequenceArray.Reset(); iSequenceIndex = -1; } @@ -3984,7 +3987,7 @@ void CCamCameraController::ClearSettingQueue() { - iSettingArray.Reset(); + iSettingArray.Reset(); iSettingIndex = -1; } @@ -4008,25 +4011,25 @@ OstTrace0( CAMERAAPP_PERFORMANCE, DUP1_CCAMCAMERACONTROLLER_HANDLEPOWERONEVENT, "e_CAM_APP_VF_INIT 1" ); //CCORAPP_APP_VF_INIT_START OstTrace0( CAMERAAPP_PERFORMANCE, DUP2_CCAMCAMERACONTROLLER_HANDLEPOWERONEVENT, "e_CAM_APP_CONFIGURATIONS 1" ); //CCORAPP_APP_CONFIGS_START OstTrace0( CAMERAAPP_PERFORMANCE, DUP3_CCAMCAMERACONTROLLER_HANDLEPOWERONEVENT, "e_CAM_APP_STILL_INIT 1" ); //CCORAPP_APP_STILL_INIT_START - + CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); - + if ( appUi->AppController().UiConfigManagerPtr()->IsFaceTrackingSupported() ) { PRINT( _L("Camera <> CCamAppController: Get i/f MCameraFaceTracking..") ) - iCustomInterfaceFaceTracking = - static_cast ( + iCustomInterfaceFaceTracking = + static_cast ( iCamera->CustomInterface( KCameraFaceTrackingUid ) ); PRINT1( _L("Camera <> Face Tracking custom i/f pointer:%d"), iCustomInterfaceFaceTracking ); } - + if( KErrNone == aStatus ) { 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 + // We need to tell to CCaeEngine that the CCamera has been reserved // and powered on "behind its back". if( iCaeEngine ) { @@ -4068,31 +4071,31 @@ { PRINT( _L("Camera <> no mode change ongoing") ); HandleCallbackEvent( aStatus, - ECamCameraEventPowerOn, + ECamCameraEventPowerOn, ECamCameraEventClassBasicControl ); } #else HandleCallbackEvent( aStatus, - ECamCameraEventPowerOn, + ECamCameraEventPowerOn, ECamCameraEventClassBasicControl ); #endif // CAMERAAPP_CAE_FIX - + if ( appUi->AppController().UiConfigManagerPtr()->IsOrientationSensorSupported() ) { PRINT( _L("Camera <> CCamCameraController: Get i/f MCameraOrientation..") ) - + if(!iCustomInterfaceOrientation ) { - iCustomInterfaceOrientation = - static_cast ( + iCustomInterfaceOrientation = + static_cast ( iCamera->CustomInterface( KCameraOrientationUid ) ); } - - PRINT1( _L("Camera <> Orientation custom i/f pointer:%d"), iCustomInterfaceOrientation ); - } - + + PRINT1( _L("Camera <> Orientation custom i/f pointer:%d"), iCustomInterfaceOrientation ); + } + PRINT( _L("Camera <= CCamCameraController::HandlePowerOnEvent") ); } @@ -4143,12 +4146,12 @@ { PRINT( _L("Camera <> no mode change ongoing") ); HandleCallbackEvent( aStatus, - ECamCameraEventReserveGain, + ECamCameraEventReserveGain, ECamCameraEventClassBasicControl ); } #else HandleCallbackEvent( aStatus, - ECamCameraEventReserveGain, + ECamCameraEventReserveGain, ECamCameraEventClassBasicControl ); #endif // CAMERAAPP_CAE_FIX PRINT( _L("Camera <= CCamCameraController::HandleReserveGainEvent") ); @@ -4167,7 +4170,7 @@ iInfo.iState = ECamIdle; iInfo.iVfState = ECamTriIdle; iInfo.iSsState = ECamTriIdle; - + #pragma message("CCamCameraController: Reserve lost event does not stop sequence") // These are not valid anymore. @@ -4189,25 +4192,25 @@ #endif // CAMERAAPP_CAPI_V2 { PRINT( _L("Camera <> no mode change ongoing") ); - NotifyObservers( aStatus, + NotifyObservers( aStatus, ECamCameraEventReserveLose, ECamCameraEventClassBasicControl ); } #else // CAMERAAPP_CAE_FIX /* - // We need to tell to CCaeEngine that the CCamera + // We need to tell to CCaeEngine that the CCamera // has been released "behind its back". if( iCaeEngine ) { iCaeEngine->DisableVideoRecording(); } -*/ +*/ #endif // CAMERAAPP_CAE_FIX // ------------------------------------------------------- #else - NotifyObservers( aStatus, + NotifyObservers( aStatus, ECamCameraEventReserveLose, ECamCameraEventClassBasicControl ); // ------------------------------------------------------- @@ -4226,16 +4229,16 @@ iIveRecoveryCount && // Give up eventually !appUi->AppInBackground( EFalse ) && // Only if on the foreground ( !iReleasedByUi || // Try recover if unknown reason - appUi->StandbyStatus() ) && // or known error + appUi->StandbyStatus() ) && // or known error !iAppController.InVideocallOrRinging() && // Video telephony parallel use case !iIveRecoveryOngoing // processing recovery sequence ) { PRINT( _L("Camera <> CCamCameraController::HandleReserveLostEvent - Start recovery") ); - NotifyObservers( aStatus, + NotifyObservers( aStatus, ECamCameraEventReserveLose, ECamCameraEventClassBasicControl ); - iIdle->Start( TCallBack( IdleCallback, this ) ); + iIdle->Start( TCallBack( IdleCallback, this ) ); } PRINT( _L("Camera <= CCamCameraController::HandleReserveLostEvent") ); } @@ -4245,7 +4248,7 @@ // --------------------------------------------------------------------------- // void -CCamCameraController::HandleViewfinderEvent( MCameraBuffer* aCameraBuffer, +CCamCameraController::HandleViewfinderEvent( MCameraBuffer* aCameraBuffer, TInt aStatus ) { PRINT_FRQ1( _L("Camera => CCamCameraController::HandleViewfinderEvent, status in:%d"), aStatus ); @@ -4265,10 +4268,10 @@ }); PRINT_FRQ1( _L("Camera <> ..status after getting bitmap data: %d"), aStatus ); } - - NotifyObservers( aStatus, - ECamCameraEventVfFrameReady, - ECamCameraEventClassVfData, + + NotifyObservers( aStatus, + ECamCameraEventVfFrameReady, + ECamCameraEventClassVfData, vfFrame ); ReleaseAndNull( aCameraBuffer ); @@ -4282,7 +4285,7 @@ // --------------------------------------------------------------------------- // void -CCamCameraController::HandleImageCaptureEvent( MCameraBuffer* aCameraBuffer, +CCamCameraController::HandleImageCaptureEvent( MCameraBuffer* aCameraBuffer, TInt aStatus ) { PRINT1( _L("Camera => CCamCameraController::HandleImageCaptureEvent, status in: %d"), aStatus ); @@ -4292,8 +4295,8 @@ if( ECamCaptureOn == iInfo.iCaptureState ) { // Store flags - TUint busyFlags( iInfo.iBusy ); - + TUint busyFlags( iInfo.iBusy ); + // ----------------------------------------------------- // Try to get the image data. if( KErrNone == aStatus ) @@ -4301,8 +4304,8 @@ // Takes ownership of aCameraBuffer and NULLs the pointer. TRAP( aStatus, HandleImageCaptureEventL( aCameraBuffer ) ); PRINT1( _L("Camera <> status after handling data: %d"), aStatus ); - } - + } + // Release if not NULLed in HandleImageCaptureEventL. ReleaseAndNull( aCameraBuffer ); @@ -4318,8 +4321,8 @@ // See HandleCallbackEvent for comments. // ClearFlags( iInfo.iBusy, ECamBusySingle ); - NotifyObservers( aStatus, - ECamCameraEventImageData, + NotifyObservers( aStatus, + ECamCameraEventImageData, ECamCameraEventClassImage ); } // ----------------------------------------------------- @@ -4332,8 +4335,8 @@ ClearFlags( iInfo.iBusy, ECamBusySingle ); TInt fullCaptures( Min( iInfo.iCaptureCount, iInfo.iSnapshotCount ) ); - NotifyObservers( aStatus, - ECamCameraEventImageStop, + NotifyObservers( aStatus, + ECamCameraEventImageStop, ECamCameraEventClassImage, &fullCaptures ); @@ -4349,7 +4352,7 @@ { PRINT( _L("Camera <> CCamCameraController ... [WARNING] Unexpected image data event!") ); iInfo.PrintInfo(); - + // Stop capture to be safe. PRINT( _L("Camera <> CCamCameraController ... Calling CancelCaptureImage..") ); iCamera->CancelCaptureImage(); @@ -4384,10 +4387,10 @@ CleanupStack::PushL( TCleanupItem( CamBufferShareCleanup, share ) ); PRINT( _L("Camera <> CCamCameraController .. Checking encoded data availability..") ); - TRAPD( dataStatus, + TRAPD( dataStatus, { TDesC8* data = share->SharedBuffer()->DataL( 0 ); - if( !data ) + if( !data ) User::Leave( KErrNotFound ); }); @@ -4402,7 +4405,7 @@ PRINT1( _L("Camera <> CCamCameraController ... Incremented capture counter to: %d"), iInfo.iCaptureCount ); // If we have needed amount of snapshots and images, end capture. - if( iInfo.iCaptureCount >= iInfo.iCaptureLimit + if( iInfo.iCaptureCount >= iInfo.iCaptureLimit && ( (iInfo.iSnapshotCount >= iInfo.iCaptureLimit) || iInfo.iSsState != ECamTriActive ) ) { PRINT( _L("Camera <> CCamCameraController ... Capture limit met, calling CancelCaptureImage..") ); @@ -4415,7 +4418,7 @@ // If we are in burst mode and need to increase capture limit, // do it now. If we have just decreased the capture limit, // we just cancel once the limit is met. - else if( iAdvancedSettings + else if( iAdvancedSettings && iAdvancedSettings->DriveMode() == CAS::EDriveModeBurst ) { const TInt cameraLimit( iAdvancedSettings->BurstImages() ); @@ -4441,9 +4444,9 @@ // See HandleCallbackEvent for comments. // ClearFlags( iInfo.iBusy, ECamBusySingle ); - NotifyObservers( KErrNone, + NotifyObservers( KErrNone, ECamCameraEventImageData, - ECamCameraEventClassImage, + ECamCameraEventClassImage, share ); } // ------------------------------------------------------- @@ -4486,11 +4489,11 @@ // CCameraSnapshot sends atleast event with KErrCancel status // when releasing the camera. TBool videoSsExpected( IsFlagOn( iInfo.iState, ECamVideoOn ) ); - TBool imageSsExpected( IsFlagOn( iInfo.iState, ECamImageOn ) + TBool imageSsExpected( IsFlagOn( iInfo.iState, ECamImageOn ) && ECamCaptureOn == iInfo.iCaptureState && iInfo.iSnapshotCount < iInfo.iCaptureLimit ); - if( + if( #ifdef CAMERAAPP_CAE_FIX ECamModeChangeInactive == iModeChange && #endif @@ -4506,14 +4509,14 @@ TRAP( aStatus, HandleSnapshotEventL() ); PRINT1( _L("Camera <> CCamCameraController ... status after handling snapshot data: %d"), aStatus ); } - + // ----------------------------------------------------- // If snapshot was received and notified ok, // check if capture ended. if( KErrNone == aStatus ) { // If we have needed amount of snapshots and images, end capture. - if( iInfo.iCaptureCount >= iInfo.iCaptureLimit + if( iInfo.iCaptureCount >= iInfo.iCaptureLimit && iInfo.iSnapshotCount >= iInfo.iCaptureLimit ) { PRINT( _L("Camera <> CCamCameraController ... Setting capture state to OFF..") ); @@ -4525,8 +4528,8 @@ else { PRINT( _L("Camera <> CCamCameraController ... error encountered, notify and set capture state off..") ); - NotifyObservers( aStatus, - ECamCameraEventSsReady, + NotifyObservers( aStatus, + ECamCameraEventSsReady, ECamCameraEventClassSsData ); iInfo.iCaptureState = ECamCaptureOff; } @@ -4541,8 +4544,8 @@ ClearFlags( iInfo.iBusy, ECamBusySingle ); TInt fullCaptures( Min( iInfo.iCaptureCount, iInfo.iSnapshotCount ) ); - NotifyObservers( aStatus, - ECamCameraEventImageStop, + NotifyObservers( aStatus, + ECamCameraEventImageStop, ECamCameraEventClassImage, &fullCaptures ); } @@ -4557,11 +4560,11 @@ { // For burst stopping: // We have more snapshots already than requested.. - // All needed captures have to have started, + // All needed captures have to have started, // so we can call cancel here. - // Note: + // Note: // Cannot use ">=" as last image might not be provided then. - // + // PRINT( _L("Camera <> CCamCameraController ... Snapshot limit passed, calling CancelCaptureImage..") ); iCamera->CancelCaptureImage(); } @@ -4580,7 +4583,7 @@ // Helper method for leaving part of HandleSnapshotEvent. // --------------------------------------------------------------------------- // -void +void CCamCameraController::HandleSnapshotEventL( TBool aIgnore ) { PRINT1( _L("Camera => CCamCameraController::HandleSnapshotEventL ignore %d"),aIgnore); @@ -4595,11 +4598,11 @@ CleanupStack::PopAndDestroy(); // temp.Close() if( !aIgnore ) - { + { CleanupStack::PushL( TCleanupItem( CameraBufferCleanup, buffer ) ); CFbsBitmap& snapshot = buffer->BitmapL( firstImageIndex ); - PRINT2( _L("Camera <> CCamCameraController ... snapshot size: (%dx%d)"), + PRINT2( _L("Camera <> CCamCameraController ... snapshot size: (%dx%d)"), snapshot.SizeInPixels().iWidth, snapshot.SizeInPixels().iHeight ); // Increase received snapshots count. @@ -4616,7 +4619,7 @@ CleanupStack::PopAndDestroy(); // buffer->Release() } - else + else { ReleaseAndNull(buffer); } @@ -4630,14 +4633,14 @@ // HandleVideoInitEvent // --------------------------------------------------------------------------- // -void +void CCamCameraController::HandleVideoEvent( const TCamCameraEventId& aEventId, TInt aStatus ) { - PRINT2( _L("Camera => CCamCameraController::HandleVideoEvent, status:%d, event[%s]"), - aStatus, + PRINT2( _L("Camera => CCamCameraController::HandleVideoEvent, status:%d, event[%s]"), + aStatus, KCamCameraEventNames[aEventId] ); - + // Only video stop of these events may come without our explicit request. /* if( ECamCameraEventVideoStop != aEventId ) @@ -4659,7 +4662,7 @@ else ClearFlags( iInfo.iState, ECamVideoOn ); } #ifdef CAMERAAPP_CAPI_V2_ADV - TRAP_IGNORE( GetAdvancedSettingsInfoL() ); + TRAP_IGNORE( GetAdvancedSettingsInfoL() ); #endif #ifdef CAMERAAPP_CAE_FIX if( ECamModeChangeImage2Video == iModeChange ) @@ -4672,14 +4675,14 @@ break; // ----------------------------------------------------- case ECamCameraEventVideoStart: - if( KErrNone == aStatus ) + if( KErrNone == aStatus ) { iInfo.iCaptureState = ECamCaptureOn; } break; // ----------------------------------------------------- case ECamCameraEventVideoPause: - if( KErrNone == aStatus ) + if( KErrNone == aStatus ) { iInfo.iCaptureState = ECamCapturePaused; } @@ -4696,11 +4699,11 @@ iInfo.iCaptureState = ECamCaptureOff; // We may receive this event from CCaeEngine, even though we have not // issued a request to stop the video recording. If e.g. there is not - // enough space in the disk to continue recording, this event is + // enough space in the disk to continue recording, this event is // generated without explicit request. // - // We must not continue any pending operations if this event is not - // a response to our stop request. + // We must not continue any pending operations if this event is not + // a response to our stop request. // HandleCallbackEvent takes care of that. break; // ----------------------------------------------------- @@ -4717,8 +4720,8 @@ // ----------------------------------------------------- } - HandleCallbackEvent( aStatus, - aEventId, + HandleCallbackEvent( aStatus, + aEventId, ECamCameraEventClassVideo ); PRINT( _L("Camera <= CCamCameraController::HandleVideoEvent") ); } @@ -4729,10 +4732,10 @@ // HandleVideoTimeEvent // --------------------------------------------------------------------------- // -void +void CCamCameraController -::HandleVideoTimeEvent( TInt aStatus, - TTimeIntervalMicroSeconds aTimeElapsed, +::HandleVideoTimeEvent( TInt aStatus, + TTimeIntervalMicroSeconds aTimeElapsed, TTimeIntervalMicroSeconds aTimeRemaining ) { // If capture has already stopped, we don't echo this to our observers. @@ -4740,9 +4743,9 @@ { iVideoTimes.iTimeElapsed = aTimeElapsed.Int64(); iVideoTimes.iTimeRemaining = aTimeRemaining.Int64(); - - NotifyObservers( aStatus, - ECamCameraEventVideoTimes, + + NotifyObservers( aStatus, + ECamCameraEventVideoTimes, ECamCameraEventClassVideoTimes, &iVideoTimes ); } @@ -4754,14 +4757,14 @@ // // --------------------------------------------------------------------------- // -void +void CCamCameraController::HandleAutoFocusEvent( TInt aStatus, const TUid& aEventUid ) { - PRINT1( _L("Camera => CCamCameraController::HandleAutoFocusEvent, status: %d"), aStatus ); + PRINT1( _L("Camera => CCamCameraController::HandleAutoFocusEvent, status: %d"), aStatus ); TBool proceed = EFalse; // ------------------------------------------------------- - // Check the event + // Check the event if( KUidECamEventCameraSettingsOptimalFocus == aEventUid ) { PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingsOptimalFocus") ); @@ -4774,24 +4777,24 @@ } else if( KUidECamEventCameraSettingAutoFocusType2 == aEventUid ) { - PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingsAutoFocusType2") ); + PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingsAutoFocusType2") ); // If AF started and canceled before finishing if( iAfInProgress && iAfHyperfocalPending && iFirstAfEventReceived ) { - // continue to set focus to hyperfocal - proceed = ETrue; - } - if( !iFirstAfEventReceived ) + // continue to set focus to hyperfocal + proceed = ETrue; + } + if( !iFirstAfEventReceived ) { // For the first time, this event means that the autofocusing has been started - iFirstAfEventReceived = ETrue; + iFirstAfEventReceived = ETrue; PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingAutoFocusType2 - first time, set iFirstAfEventReceived ") ); } else { - iFirstAfEventReceived = EFalse; - PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingAutoFocusType2 - second time") ); - } + iFirstAfEventReceived = EFalse; + PRINT( _L("Camera <> CCamCameraController: event KUidECamEventCameraSettingAutoFocusType2 - second time") ); + } } else { @@ -4806,20 +4809,20 @@ ? ECamCameraEventAutofocusSuccessful : ECamCameraEventAutofocusFailed; if( iAfHyperfocalPending ) - { + { PRINT( _L("Camera <> Cancelled active autofocus request.") ); - PRINT( _L("Camera <> Setting focus range to hyperfocal, no event to observers yet") ); - iAfHyperfocalPending = EFalse; + PRINT( _L("Camera <> Setting focus range to hyperfocal, no event to observers yet") ); + iAfHyperfocalPending = EFalse; iAfInProgress = EFalse; TRAP_IGNORE( ProcessAutofocusRequestL( ECamRequestCancelAutofocus ) ); - } - else + } + else { HandleCallbackEvent( KErrNone, - event, + event, ECamCameraEventClassAutofocus ); - } - + } + } else if(iFirstAfEventReceived && (aStatus != KErrNone) ) { @@ -4827,23 +4830,23 @@ //and no further autofocus events would occur. iFirstAfEventReceived = EFalse; iAfInProgress = EFalse; - + if( iAfHyperfocalPending ) - { + { PRINT( _L("Camera <> Cancelled active autofocus request.") ); - PRINT( _L("Camera <> Set focus range to hyperfocal, no event to observers yet") ); - iAfHyperfocalPending = EFalse; + PRINT( _L("Camera <> Set focus range to hyperfocal, no event to observers yet") ); + iAfHyperfocalPending = EFalse; TRAP_IGNORE( ProcessAutofocusRequestL( ECamRequestCancelAutofocus ) ); - } + } else { HandleCallbackEvent( KErrNone, - ECamCameraEventAutofocusFailed, - ECamCameraEventClassAutofocus ); - } + ECamCameraEventAutofocusFailed, + ECamCameraEventClassAutofocus ); + } } // ------------------------------------------------------- - PRINT( _L("Camera <= CCamCameraController::HandleAutoFocusEvent") ); + PRINT( _L("Camera <= CCamCameraController::HandleAutoFocusEvent") ); } @@ -4853,17 +4856,17 @@ // HandleFlashStatusEvent // // Helper method to handle flash status updates. -// +// // --------------------------------------------------------------------------- void CCamCameraController::HandleFlashStatusEvent( TInt aStatus, const TCamCameraEventId& aEventId ) { - PRINT2( _L("Camera => CCamCameraController::HandleFlashStatusEvent, event[%s] status:%d"), KCamCameraEventNames[aEventId], aStatus ); - NotifyObservers( aStatus, + PRINT2( _L("Camera => CCamCameraController::HandleFlashStatusEvent, event[%s] status:%d"), KCamCameraEventNames[aEventId], aStatus ); + NotifyObservers( aStatus, aEventId, EventClass( aEventId ) ); - PRINT ( _L("Camera <= CCamCameraController::HandleFlashStatusEvent" ) ); + PRINT ( _L("Camera <= CCamCameraController::HandleFlashStatusEvent" ) ); } @@ -4877,12 +4880,12 @@ // void CCamCameraController -::HandleCallbackEvent( TInt aStatus, - const TCamCameraEventId& aEventId, +::HandleCallbackEvent( TInt aStatus, + const TCamCameraEventId& aEventId, const TCamCameraEventClassId& aEventClass, TAny* aEventData /*= NULL*/ ) { - PRINT1( _L("Camera => CCamCameraController::HandleCallbackEvent, event[%s]"), + PRINT1( _L("Camera => CCamCameraController::HandleCallbackEvent, event[%s]"), KCamCameraEventNames[aEventId] ); // ------------------------------------------------------- // Clear single request busy flag before notification to observers, @@ -4891,7 +4894,7 @@ ClearFlags( iInfo.iBusy, ECamBusySingle ); // Observers might issue a new sequence during notification. - // We need to decide if sequence needs to continue here + // We need to decide if sequence needs to continue here // based on the status *before* notification. TBool proceedSequence = EFalse; TBool notify = ETrue; @@ -4903,44 +4906,44 @@ // There are events like "video stopped" or "reserve lost" // that may be received without our associated request. // In that case we must not proceed sequence processing now. - // 3) In case that aStatus is KErrInUse and the current event is - // Reserve, it means reserve failed for some reason + // 3) In case that aStatus is KErrInUse and the current event is + // Reserve, it means reserve failed for some reason if( IsFlagOn( iInfo.iBusy, ECamBusySequence ) ) // 1 { PRINT( _L("Camera <> Sequence is active") ); PRINT2( _L("Camera <> seq index: %d, seq array len: %d"), iSequenceIndex, iSequenceArray.Count() ); if( KErrNone != aStatus ) { - + if ( KErrInUse == aStatus // 3 - && aEventId == ECamCameraEventReserveGain + && aEventId == ECamCameraEventReserveGain && iSequenceIndex >= 0 - && Request2Event( iSequenceArray[iSequenceIndex] ) == ECamCameraEventReserveGain + && Request2Event( iSequenceArray[iSequenceIndex] ) == ECamCameraEventReserveGain && iReserveTryAgainCount > 0 ) { // Handle here only if reserve gain with error is part of a sequence and try again count is not zero - + iReserveTryAgainCount--; User::After( KCamReserveTryAgainWaitInterval ); - + // decrease index, to get the same request handled again iSequenceIndex--; notify = EFalse; proceedSequence = ETrue; PRINT1( _L( "Camera <> CCamCameraController::HandleCallbackEvent - %d reserve try again left" ), iReserveTryAgainCount ); - - } - else + + } + else { notify = EFalse; proceedSequence = EFalse; - EndSequence( aStatus ); + EndSequence( aStatus ); } - + } - else if( iSequenceIndex >= 0 && // Sequence has started + else if( iSequenceIndex >= 0 && // Sequence has started Request2Event( iSequenceArray[iSequenceIndex] ) == aEventId ) // 2 { notify = ETrue; @@ -4950,11 +4953,11 @@ { // Not the event we need yet. } - + } // ------------------------------------------------------- // Setting sequence ongoing - else if( IsFlagOn( iInfo.iBusy, ECamBusySetting ) + else if( IsFlagOn( iInfo.iBusy, ECamBusySetting ) && iSettingIndex >= 0 ) { PRINT( _L("Camera <> Settings change ongoing..") ); @@ -4970,12 +4973,12 @@ proceedSequence = EFalse; EndSequence( aStatus ); // does one notification } - else if( ECamCameraEventSettingsSingle == aEventId - && aEventData + else if( ECamCameraEventSettingsSingle == aEventId + && aEventData && iSettingArray[iSettingIndex] == *( static_cast( aEventData ) ) ) { - // We have checked already in HandleEvent that this is + // We have checked already in HandleEvent that this is // the right event for the setting we wait to finish. // Notification can be sent with the given data. PRINT( _L("Camera <> One setting finished, continue sequence") ); @@ -4984,8 +4987,8 @@ // Video init event repeated when filename or max file size set // after init already done else if( IsFlagOn( iInfo.iState, ECamVideoOn ) - && ECamCameraEventVideoInit == aEventId - && ( ECameraSettingFileName == iSettingArray[iSettingIndex] + && ECamCameraEventVideoInit == aEventId + && ( ECameraSettingFileName == iSettingArray[iSettingIndex] || ECameraSettingFileMaxSize == iSettingArray[iSettingIndex] || ECameraSettingAudioMute == iSettingArray[iSettingIndex] ) ) { @@ -5015,7 +5018,7 @@ // Notify the observers with data from the event. if( notify ) { - NotifyObservers( aStatus, aEventId, aEventClass, aEventData ); + NotifyObservers( aStatus, aEventId, aEventClass, aEventData ); } // ------------------------------------------------------- @@ -5037,9 +5040,9 @@ // Notify all our observers of an event. // --------------------------------------------------------------------------- // -void +void CCamCameraController -::NotifyObservers( TInt aStatus, +::NotifyObservers( TInt aStatus, TCamCameraEventId aEventId, TCamCameraEventClassId aEventClass, TAny* aEventData /*=NULL*/ ) @@ -5048,7 +5051,7 @@ // PRINT3( _L("Camera <> status:% 3d event:% 3d class:%032b"), aStatus, aEventId, aEventClass ); // NOTE: - // We might skip an observer, if during the notification some observer + // We might skip an observer, if during the notification some observer // is removed from the array (from smaller index than current one). // This is a commmon problem for all observable classes in this application. for( TInt i = 0; i < iObservers.Count(); i++ ) @@ -5073,7 +5076,7 @@ void CCamCameraController::ReleaseCurrentCamera() { - PRINT( _L("Camera => CCamCameraController::ReleaseCurrentCamera") ); + PRINT( _L("Camera => CCamCameraController::ReleaseCurrentCamera") ); // Cancel any outstanding sequence. if( IsFlagOn( iInfo.iBusy, ECamBusySequence ) #ifdef CAMERAAPP_CAE_FIX @@ -5088,7 +5091,7 @@ if( IsFlagOn( iInfo.iState, ECamReserved ) ) { - // Releases viewfinder and snapshot, cancels capture, + // Releases viewfinder and snapshot, cancels capture, // powers off and releases CCamera if needed. ProcessControlShutdownRequest( ECamRequestRelease ); } @@ -5132,7 +5135,7 @@ iResolutionSupport.Reset(); iInfo.iState = ECamIdle; - PRINT( _L("Camera <= CCamCameraController::ReleaseCurrentCamera") ); + PRINT( _L("Camera <= CCamCameraController::ReleaseCurrentCamera") ); } @@ -5161,7 +5164,7 @@ // GetResolutionIndexL // // Get quality index for prepare with given format and size. -// If current info is not for the given format, update the +// If current info is not for the given format, update the // supported resolutions info. After the support info is up to date, // find the index. Return KErrNotFound if not supported size. // @@ -5189,13 +5192,13 @@ iResolutionSupport.Reset(); // Get the resolution info for current camera with given format. - const TInt KResolutionCount( iCameraInfo.iNumImageSizesSupported ); + const TInt KResolutionCount( iCameraInfo.iNumImageSizesSupported ); RArray& resolutions( iResolutionSupport.iResolutions ); resolutions.ReserveL( KResolutionCount ); for( TInt i = 0; i < KResolutionCount; i++ ) { - // Reserve called, so should not leave. + // Reserve called, so should not leave. resolutions.AppendL( TSize() ); iCamera->EnumerateCaptureSizes( resolutions[i], i, aFormat ); } @@ -5219,7 +5222,7 @@ for( TInt i = 0; i < iResolutionSupport.iResolutions.Count(); i++ ) { const TSize& size( iResolutionSupport.iResolutions[i] ); - PRINT3( _L("Camera <> Size (%d): (%d,%d)"), i, size.iWidth, size.iHeight ); + PRINT3( _L("Camera <> Size (%d): (%d,%d)"), i, size.iWidth, size.iHeight ); } PRINT ( _L("Camera <> ==================================================") ); #endif @@ -5231,9 +5234,9 @@ // If JPEG format is not supported, but bitmap format is, // pretend to support the format anyway. // When capturing, we encode the JPEG from the bitmap. - if( CCamera::EFormatJpeg == aFormat + if( CCamera::EFormatJpeg == aFormat && KErrNotFound == index ) - { + { PRINT ( _L("Camera <> Jpeg not supported, trying bitmap format 1..") ); aFormat = KCamJpegAlternativeFormat1; index = GetResolutionIndexL( aFormat, aSize ); @@ -5272,8 +5275,8 @@ CCamCameraController::GetAdvancedSettingsInfoL() { PRINT ( _L("Camera => CCamCameraController::GetAdvancedSettingsInfoL") ); - PRINT2( _L("Camera <> current camera:%d, latest info for:%d"), - iInfo.iCurrentCamera, + PRINT2( _L("Camera <> current camera:%d, latest info for:%d"), + iInfo.iCurrentCamera, iAdvancedSettingInfo.iForCameraIndex ); @@ -5298,20 +5301,20 @@ TBool isInfluencePossible; // Not used PRINT( _L("Camera <> Get zoom steps for image") ); - TRAP( error, iAdvancedSettings->GetDigitalZoomStepsForStillL ( - iAdvancedSettingInfo.iDigitalZoomSupport, - iAdvancedSettingInfo.iDigitalZoomValueInfo, - index, - format, + TRAP( error, iAdvancedSettings->GetDigitalZoomStepsForStillL ( + iAdvancedSettingInfo.iDigitalZoomSupport, + iAdvancedSettingInfo.iDigitalZoomValueInfo, + index, + format, isInfluencePossible ) ); - + if( KErrNotSupported != error ) User::LeaveIfError( error ); } - else if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) + else if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { PRINT( _L("Camera <> Get zoom steps for video") ); - TRAP( error, iAdvancedSettings->GetDigitalZoomStepsL( - iAdvancedSettingInfo.iDigitalZoomSupport, + TRAP( error, iAdvancedSettings->GetDigitalZoomStepsL( + iAdvancedSettingInfo.iDigitalZoomSupport, iAdvancedSettingInfo.iDigitalZoomValueInfo ) ); if( KErrNotSupported != error ) User::LeaveIfError( error ); } @@ -5319,11 +5322,11 @@ // ----------------------------------------------------- // EV steps multiplied by KECamFineResolutionFactor. PRINT( _L("Camera <> Get EV support..") ); - iAdvancedSettingInfo.iEvModesSupport = + iAdvancedSettingInfo.iEvModesSupport = iAdvancedSettings->SupportedExposureModes(); - TRAP( error, iAdvancedSettings->GetExposureCompensationStepsL( - iAdvancedSettingInfo.iEvStepsSupport, + TRAP( error, iAdvancedSettings->GetExposureCompensationStepsL( + iAdvancedSettingInfo.iEvStepsSupport, iAdvancedSettingInfo.iEvStepsValueInfo ) ); // Ignore error if just not supported. // We check the support when setting is requested. @@ -5332,20 +5335,20 @@ // ----------------------------------------------------- // ISO rates (.. 50, 100, 200, ..) PRINT( _L("Camera <> Get ISO rates..") ); - TRAP( error, iAdvancedSettings->GetSupportedIsoRatesL( + TRAP( error, iAdvancedSettings->GetSupportedIsoRatesL( iAdvancedSettingInfo.iIsoRatesSupport ) ); if( KErrNotSupported != error ) User::LeaveIfError( error ); // ----------------------------------------------------- // Stabilization PRINT( _L("Camera <> Get Stabilization info..") ); - iAdvancedSettingInfo.iStabilizationModeSupport = + iAdvancedSettingInfo.iStabilizationModeSupport = iAdvancedSettings->SupportedStabilizationModes(); - iAdvancedSettingInfo.iStabilizationEffectSupport = + iAdvancedSettingInfo.iStabilizationEffectSupport = iAdvancedSettings->SupportedStabilizationEffects(); - iAdvancedSettingInfo.iStabilizationComplexitySupport = + iAdvancedSettingInfo.iStabilizationComplexitySupport = iAdvancedSettings->SupportedStabilizationComplexityValues(); // ----------------------------------------------------- @@ -5354,28 +5357,28 @@ if( KPrimaryCameraIndex == iInfo.iCurrentCamera ) { PRINT( _L("Camera <> Get image processing info..") ); - + if( iImageProcessor != NULL ) { // ----------------------------------------------------- PRINT( _L("Camera <> Get sharpness support..") ); - TRAP( error, iImageProcessor->GetTransformationSupportedValuesL( + TRAP( error, iImageProcessor->GetTransformationSupportedValuesL( KUidECamEventImageProcessingAdjustSharpness, iAdvancedSettingInfo.iSharpnessSupport, iAdvancedSettingInfo.iSharpnessValueInfo ) ); if( KErrNotSupported != error ) User::LeaveIfError( error ); - + // ----------------------------------------------------- PRINT( _L("Camera <> Get colour effect support..") ); - TRAP( error, iImageProcessor->GetTransformationSupportedValuesL( + TRAP( error, iImageProcessor->GetTransformationSupportedValuesL( KUidECamEventImageProcessingEffect, iAdvancedSettingInfo.iColourEffectSupport, iAdvancedSettingInfo.iColourEffectValueInfo ) ); if( KErrNotSupported != error ) User::LeaveIfError( error ); } - else + else { - PRINT( _L("Camera <> [WARNING] Image processing not supported") ); + PRINT( _L("Camera <> [WARNING] Image processing not supported") ); } } #endif // CAMERAAPP_CAPI_V2_IP @@ -5389,7 +5392,7 @@ #ifdef _DEBUG iAdvancedSettingInfo.PrintInfo(); #endif - + PRINT ( _L("Camera <= CCamCameraController::GetAdvancedSettingsInfoL") ); } @@ -5400,7 +5403,7 @@ // // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController::ResolveEvStep( TInt aEvProposedStep ) const { PRINT1( _L("Camera => CCamCameraController::ResolveEvStep( %d )"), aEvProposedStep ); @@ -5431,8 +5434,8 @@ // --------------------------------------------------------------------------- // TBool -CCamCameraController::IsSupportedValue( const TInt& aValue, - const RArray& aValueList, +CCamCameraController::IsSupportedValue( const TInt& aValue, + const RArray& aValueList, const TValueInfo& aValueInfo ) { TBool support( EFalse ); @@ -5448,7 +5451,7 @@ // that is always supported. // Array: [0] bitfield of supported bits support = ( 1 <= aValueList.Count() - && ( !aValue + && ( !aValue || (aValue & aValueList[0]) // 0 always supported ) ); @@ -5485,7 +5488,7 @@ // continuous range of values within those two is supported. // Array: [0] min supported value // [1] max supported value - support = + support = ( 2 <= aValueList.Count() // We need 2 items. && aValue >= aValueList[0] // aValue >= min && aValue <= aValueList[1] // aValue <= max @@ -5518,10 +5521,10 @@ PRINT ( _L("Camera => CCamCameraController::ResolveSnapshotFormatL") ); CheckNonNullL( iSnapshotProvider, KErrNotReady ); - + const TUint32 support = iSnapshotProvider->SupportedFormats(); CCamera::TFormat final = aPreferredFormat; - + // Return the preferred format if it is supported. // Otherwise return the "best" supported format. if ( support & aPreferredFormat ) final = aPreferredFormat; @@ -5535,7 +5538,7 @@ PRINT( _L("Camera <> CCamCameraController: No acceptable format available, LEAVE!") ); User::Leave( KErrNotSupported ); } - + PRINT1( _L("Camera <> Preferred format : %032b"), aPreferredFormat ); PRINT1( _L("Camera <> Supported formats: %032b"), support ); PRINT1( _L("Camera <> Selected format : %032b"), final ); @@ -5588,18 +5591,18 @@ // ----------------------------------------------------- // Autofocus case ECamRequestStartAutofocus: return ECamCameraEventStartAutofocus; - case ECamRequestCancelAutofocus: return ECamCameraEventCancelAutofocus; + case ECamRequestCancelAutofocus: return ECamCameraEventCancelAutofocus; case ECamRequestSetAfRange: return ECamCameraEventSetAfRange; // ----------------------------------------------------- - - // Unrecognised + + // Unrecognised default: { Panic( ECamCameraControllerUnknownRequest ); return ECamCameraEventNone; } // ----------------------------------------------------- - } + } } @@ -5627,7 +5630,7 @@ case ECamCameraEventVfRelease: return ECamCameraEventClassVfControl; // ------------------------------------------------------- - case ECamCameraEventVfFrameReady: + case ECamCameraEventVfFrameReady: return ECamCameraEventClassVfData; // ------------------------------------------------------- case ECamCameraEventSsStart: @@ -5635,7 +5638,7 @@ case ECamCameraEventSsRelease: return ECamCameraEventClassSsControl; // ------------------------------------------------------- - case ECamCameraEventSsReady: + case ECamCameraEventSsReady: return ECamCameraEventClassSsData; // ------------------------------------------------------- case ECamCameraEventImageInit: @@ -5653,7 +5656,7 @@ return ECamCameraEventClassVideo; // ------------------------------------------------------- case ECamCameraEventVideoTimes: - return ECamCameraEventClassVideoTimes; + return ECamCameraEventClassVideoTimes; // ------------------------------------------------------- case ECamCameraEventSettingsSingle: case ECamCameraEventSettingsDone: @@ -5672,7 +5675,7 @@ // ------------------------------------------------------- default: { - #ifdef _DEBUG + #ifdef _DEBUG Panic( ECamCameraControllerCorrupt ); #endif return ECamCameraEventClassAll; @@ -5719,7 +5722,7 @@ // CurrentSettingHasCallback // --------------------------------------------------------------------------- // -TBool +TBool CCamCameraController::CurrentSettingHasCallback() { TBool callback( EFalse ); @@ -5749,18 +5752,18 @@ // NewCaeEngineL // --------------------------------------------------------------------------- // -CCaeEngine* +CCaeEngine* CCamCameraController::NewCaeEngineL( TInt aCameraIndex ) { PRINT( _L("Camera => CCamCameraController::NewCaeEngineL") ); - -#ifndef FORCE_DUMMY_ENGINE - CCaeEngine* engine = CCaeEngine::NewL( aCameraIndex ); + +#ifndef FORCE_DUMMY_ENGINE + CCaeEngine* engine = CCaeEngine::NewL( aCameraIndex ); #else (void)aCameraIndex; // remove compiler warning CCaeEngine* engine = CCameraappDummyEngine::NewL(); #endif - + engine->SetCamAppEngineObserver( *this ); PRINT( _L("Camera <= CCamCameraController::NewCaeEngineL") ); @@ -5772,7 +5775,7 @@ // NewCameraL // --------------------------------------------------------------------------- // -CAMERA* +CAMERA* CCamCameraController::NewCameraL( TInt aCameraIndex ) { PRINT( _L("Camera => CCamCameraController::NewCameraL") ); @@ -5783,11 +5786,11 @@ // Both v1 and v2 observer interface implemented // Need to cast to avoid ambiguous call. - MCameraObserver* self( this ); + MCameraObserver* self( this ); PRINT1( _L("Camera <> Give observer pointer: %d"), self ); - + camera = CAMERA::NewL ( *self, aCameraIndex ); - + #endif // CAMERAAPP_CAPI_V2 PRINT( _L("Camera <= CCamCameraController::NewCameraL") ); @@ -5798,7 +5801,7 @@ // NewDuplicateCameraL // --------------------------------------------------------------------------- // -CAMERA* +CAMERA* CCamCameraController::NewDuplicateCameraL( TInt aCameraHandle ) { PRINT1( _L("Camera => CCamCameraController::NewDuplicateCameraL( %d )"), aCameraHandle ); @@ -5853,13 +5856,13 @@ // --------------------------------------------------------------------------- // CCamCameraController -::CCamCameraController( MCamSettingProvider& aSettingProvider, +::CCamCameraController( MCamSettingProvider& aSettingProvider, CCamAppController& aAppController ) : iSequenceArray ( KCamSequenceGranularity ), iReserveTryAgainCount( KCamReserveTryAgainMaxCount ), iSettingProvider ( aSettingProvider ), - iAppController ( aAppController ) - { + iAppController ( aAppController ) + { } @@ -5875,11 +5878,11 @@ { PRINT1( _L("Camera => CCamCameraController::ProceedModeSwitch, status in:%d"), iModeChangeStatus ); TInt proceed( EFalse ); - + // Update only after here, so any events arriving // in the middle get ignored if wanted. ++iModeChangePhase; - + if( KErrNone == iModeChangeStatus ) { TRAP( iModeChangeStatus, proceed = DoProceedModeSwitchL() ); @@ -5968,22 +5971,22 @@ TPtrC ptr; ptr.Set( KTempFilename() ); #pragma message( "Camera Controller: video filename hardcoded" ) - PRINT1( _L("Camera <> Set filename [%S]"), &ptr ); + PRINT1( _L("Camera <> Set filename [%S]"), &ptr ); iCaeEngine->SetVideoRecordingFileNameL( ptr ); // CleanupStack::PopAndDestroy( filename ); // Set max video clip size - ProcessSettingL( ECameraSettingFileMaxSize ); + ProcessSettingL( ECameraSettingFileMaxSize ); TPckgBuf params; iSettingProvider.ProvideCameraParamL( ECameraParamVideoCae, ¶ms ); - // The audioOn value is defined On==0 and Off==1, but the engine expects + // The audioOn value is defined On==0 and Off==1, but the engine expects // ETrue if audio recording is On params().iAudioOn = ( ECamSettOn == params().iAudioOn ) ? ETrue - : EFalse; + : EFalse; PRINT( _L("Camera <> Call prepare..") ); // McaeoVideoPrepareComplete will be called when prepare is ready. // The callback is allowed to come also *during* this call. @@ -6009,8 +6012,8 @@ iModeChangePhase = ECamModeChangePhaseIdle; callback = EFalse; - NotifyObservers( iModeChangeStatus, - ECamCameraEventVideoInit, + NotifyObservers( iModeChangeStatus, + ECamCameraEventVideoInit, ECamCameraEventClassVideo ); break; } @@ -6033,7 +6036,7 @@ case ECamModeChangePhase0: { PRINT( _L("Camera <> Phase0: Release camera..") ); - TInt cameraIndex = iInfo.iCurrentCamera; + TInt cameraIndex = iInfo.iCurrentCamera; ReleaseCurrentCamera(); SwitchCameraL( cameraIndex ); CompleteSwitchCameraL(); @@ -6061,17 +6064,17 @@ PRINT( _L("Camera <> Phase3: Prepare image..") ); TPckgBuf params; iSettingProvider.ProvideCameraParamL( ECameraParamImage, ¶ms ); - + // Query the supported resolutions for the selected format. TInt index = GetResolutionIndexL( params().iFormat, params().iSize ); User::LeaveIfError( index ); - PRINT2( _L("Camera <> Image size: (%d, %d)"), + PRINT2( _L("Camera <> Image size: (%d, %d)"), params().iSize.iWidth, params().iSize.iHeight ); iCamera->PrepareImageCaptureL( params().iFormat, index ); iCamera->SetJpegQuality( params().iQualityFactor ); - + SetFlags( iInfo.iState, ECamImageOn ); callback = EFalse; @@ -6085,10 +6088,10 @@ iModeChangePhase = ECamModeChangePhaseIdle; callback = EFalse; - NotifyObservers( iModeChangeStatus, + NotifyObservers( iModeChangeStatus, ECamCameraEventImageInit, ECamCameraEventClassImage ); - + break; } // ------------------------------- @@ -6118,7 +6121,7 @@ * Method to retrieve Remaining Recording time from CCaeEngine * which is used in AppController and AppUi during Video Rec Operation */ -TTimeIntervalMicroSeconds +TTimeIntervalMicroSeconds CCamCameraController::RemainingVideoRecordingTime() { if( iCaeEngine ) @@ -6130,7 +6133,7 @@ // =========================================================================== // Performance measurement related - + #ifdef CAMERAAPP_PERFORMANCE_CONTROLLER // --------------------------------------------------------------------------- @@ -6140,7 +6143,7 @@ // Used to record performance measurement data. // --------------------------------------------------------------------------- // -const CCamPerformanceLogger* +const CCamPerformanceLogger* CCamCameraController::PerformanceLogger() const { return iPerformanceLogger; @@ -6158,25 +6161,25 @@ // PrintCameraInfo // --------------------------------------------------------------------------- // -void +void CCamCameraController::PrintCameraInfo() const { PRINT ( _L("Camera <> ==================================================") ); - PRINT ( _L("Camera <> Camera info:") ); - PRINT3( _L("Camera <> Camera hw version[%d.%d.%d]"), + PRINT ( _L("Camera <> Camera info:") ); + PRINT3( _L("Camera <> Camera hw version[%d.%d.%d]"), iCameraInfo.iHardwareVersion.iMajor, iCameraInfo.iHardwareVersion.iMinor, iCameraInfo.iHardwareVersion.iBuild ); - PRINT3( _L("Camera <> Camera sw version[%d.%d.%d]"), + PRINT3( _L("Camera <> Camera sw version[%d.%d.%d]"), iCameraInfo.iSoftwareVersion.iMajor, iCameraInfo.iSoftwareVersion.iMinor, - iCameraInfo.iSoftwareVersion.iBuild ); + iCameraInfo.iSoftwareVersion.iBuild ); PRINT1( _L("Camera <> TCameraInfo.iMinZoom : %d"), iCameraInfo.iMinZoom ); - PRINT1( _L("Camera <> TCameraInfo.iMaxZoom : %d"), iCameraInfo.iMaxZoom ); - PRINT1( _L("Camera <> TCameraInfo.iMaxDigitalZoom : %d"), iCameraInfo.iMaxDigitalZoom ); + PRINT1( _L("Camera <> TCameraInfo.iMaxZoom : %d"), iCameraInfo.iMaxZoom ); + PRINT1( _L("Camera <> TCameraInfo.iMaxDigitalZoom : %d"), iCameraInfo.iMaxDigitalZoom ); PRINT1( _L("Camera <> TCameraInfo.iMinZoomFactor : %f"), iCameraInfo.iMinZoomFactor ); - PRINT1( _L("Camera <> TCameraInfo.iMaxZoomFactor : %f"), iCameraInfo.iMaxZoomFactor ); - PRINT1( _L("Camera <> TCameraInfo.iMaxDigitalZoomFactor: %f"), iCameraInfo.iMaxDigitalZoomFactor ); + PRINT1( _L("Camera <> TCameraInfo.iMaxZoomFactor : %f"), iCameraInfo.iMaxZoomFactor ); + PRINT1( _L("Camera <> TCameraInfo.iMaxDigitalZoomFactor: %f"), iCameraInfo.iMaxDigitalZoomFactor ); PRINT ( _L("Camera <> ==================================================") ); } @@ -6205,54 +6208,54 @@ // CCamCameraController::SettingValueUpToDateL // --------------------------------------------------------------------------- // -TBool +TBool CCamCameraController::SettingValueUpToDateL( const NCamCameraController::TCamCameraSettingId& aSettingId ) { PRINT( _L("Camera => CCamCameraController::SettingValueUpToDate") ); TBool upToDate = ETrue; - + switch( aSettingId ) - { + { case ECameraSettingFlash: case ECameraUserSceneSettingFlash: { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingFlash") ); - - // Supposed setting value from settings provider + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingFlash") ); + + // Supposed setting value from settings provider CCamera::TFlash flashSetting( CCamera::EFlashNone ); iSettingProvider.ProvideCameraSettingL( aSettingId, &flashSetting ); - - // Real settings value from camera + + // Real settings value from camera CCamera::TFlash flashValue( CCamera::EFlashNone ); - GetCameraSettingValueL( aSettingId, &flashValue ); - + GetCameraSettingValueL( aSettingId, &flashValue ); + PRINT2( _L("Camera <> flashValue = %d, flashSetting = %d"), flashValue, flashSetting ); - upToDate = ( flashValue == flashSetting ); - break; - } + upToDate = ( flashValue == flashSetting ); + break; + } case ECameraSettingExposure: case ECameraUserSceneSettingExposure: { PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingExposure") ); TPckgBuf exposureSetting; iSettingProvider.ProvideCameraSettingL( aSettingId, &exposureSetting ); - + TPckgBuf exposureValue; - GetCameraSettingValueL( aSettingId, &exposureValue ); - + GetCameraSettingValueL( aSettingId, &exposureValue ); + if ( exposureSetting().iExposureMode != exposureValue().iExposureMode || exposureSetting().iExposureStep != exposureValue().iExposureStep ) { - upToDate = EFalse; + upToDate = EFalse; } - + break; - } + } case ECameraSettingLightSensitivity: case ECameraUserSceneSettingLightSensitivity: - { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingLightSensitivity") ); - + { + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingLightSensitivity") ); + RArray ISOarray; CleanupClosePushL( ISOarray ); #ifdef CAMERAAPP_CAPI_V2 @@ -6264,114 +6267,114 @@ iSettingProvider.ProvideCameraSettingL( aSettingId, &isoSetting ); CleanupStack::PopAndDestroy( &ISOarray ); - + TInt* isoValue = 0; GetCameraSettingValueL( aSettingId, &isoValue ); - - upToDate = ( isoSetting == isoValue ); - break; - } + + upToDate = ( isoSetting == isoValue ); + break; + } case ECameraSettingWhiteBalance: case ECameraUserSceneSettingWhiteBalance: { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingWhiteBalance") ); - + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingWhiteBalance") ); + TPckgBuf wbSetting; iSettingProvider.ProvideCameraSettingL( aSettingId, &wbSetting ); - + TPckgBuf wbValue; - GetCameraSettingValueL( aSettingId, &wbValue ); - + GetCameraSettingValueL( aSettingId, &wbValue ); + upToDate = ( wbSetting().iWhiteBalanceMode == wbValue().iWhiteBalanceMode ); - break; - } + break; + } case ECameraSettingColourEffect: - case ECameraUserSceneSettingColourEffect: - { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingColourEffect") ); - + case ECameraUserSceneSettingColourEffect: + { + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingColourEffect") ); + CIP::TEffect effectSetting( CIP::EEffectNone ); iSettingProvider.ProvideCameraSettingL( aSettingId, &effectSetting ); - + CIP::TEffect effectValue( CIP::EEffectNone ); - // Can't leave here or other settings won't be restored - TRAP_IGNORE( GetCameraSettingValueL( aSettingId, &effectValue ) ); - - upToDate = ( effectSetting == effectValue ); - break; - } + // Can't leave here or other settings won't be restored + TRAP_IGNORE( GetCameraSettingValueL( aSettingId, &effectValue ) ); + + upToDate = ( effectSetting == effectValue ); + break; + } case ECameraSettingBrightness: case ECameraUserSceneSettingBrightness: - { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingBrightness") ); + { + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingBrightness") ); CCamera::TBrightness brightnessSetting; iSettingProvider.ProvideCameraSettingL( aSettingId, &brightnessSetting ); - - CCamera::TBrightness brightnessValue; - GetCameraSettingValueL( aSettingId, &brightnessValue ); - - upToDate = ( brightnessSetting == brightnessValue ); + + CCamera::TBrightness brightnessValue; + GetCameraSettingValueL( aSettingId, &brightnessValue ); + + upToDate = ( brightnessSetting == brightnessValue ); break; - } + } case ECameraSettingContrast: case ECameraUserSceneSettingContrast: { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingContrast") ); + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingContrast") ); CCamera::TContrast contrastSetting( CCamera::EContrastAuto ); iSettingProvider.ProvideCameraSettingL( aSettingId, &contrastSetting ); - + CCamera::TContrast contrastValue( CCamera::EContrastAuto ); - GetCameraSettingValueL( aSettingId, &contrastValue ); - - upToDate = ( contrastSetting == contrastValue ); - break; - } + GetCameraSettingValueL( aSettingId, &contrastValue ); + + upToDate = ( contrastSetting == contrastValue ); + break; + } case ECameraSettingSharpness: case ECameraUserSceneSettingSharpness: { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingSharpness") ); + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingSharpness") ); TInt sharpnessSetting( 0 ); iSettingProvider.ProvideCameraSettingL( aSettingId, &sharpnessSetting ); - + TInt sharpnessValue( 0 ); - // Can't leave here or other settings won't be restored - TRAP_IGNORE( GetCameraSettingValueL( aSettingId, &sharpnessValue ) ); - - upToDate = ( sharpnessSetting == sharpnessValue ); + // Can't leave here or other settings won't be restored + TRAP_IGNORE( GetCameraSettingValueL( aSettingId, &sharpnessValue ) ); + + upToDate = ( sharpnessSetting == sharpnessValue ); break; } case ECameraSettingDigitalZoom: { TInt zoomSetting( 0 ); - iSettingProvider.ProvideCameraSettingL( aSettingId, &zoomSetting ); - + iSettingProvider.ProvideCameraSettingL( aSettingId, &zoomSetting ); + TInt zoomValue( 0 ); - GetCameraSettingValueL( aSettingId, &zoomValue ); - + GetCameraSettingValueL( aSettingId, &zoomValue ); + upToDate = ( zoomSetting == zoomValue ); break; - } + } #ifdef CAMERAAPP_CAPI_V2 case ECameraSettingStabilization: { - PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingStabilization") ); - + PRINT( _L("Camera <> CCamCameraController::SettingValueUpToDate ECameraSettingStabilization") ); + TPckgBuf stabilizationSetting; iSettingProvider.ProvideCameraSettingL( aSettingId, &stabilizationSetting ); - + TPckgBuf stabilizationValue; GetCameraSettingValueL( aSettingId, &stabilizationValue ); if ( stabilizationSetting().iMode != stabilizationValue().iMode || stabilizationSetting().iEffect != stabilizationValue().iEffect || stabilizationSetting().iComplexity != stabilizationValue().iComplexity ) { - upToDate = EFalse; + upToDate = EFalse; } break; } - case ECameraSettingContAF: - { - TBool isContAFon( iAdvancedSettings->AutoFocusType() & + case ECameraSettingContAF: + { + TBool isContAFon( iAdvancedSettings->AutoFocusType() & CAS::EAutoFocusTypeContinuous ); if( IsFlagOn( iInfo.iState, ECamVideoOn ) ) { @@ -6379,24 +6382,24 @@ iSettingProvider.ProvideCameraSettingL( aSettingId, &contAF ); if( contAF != isContAFon ) { - upToDate = EFalse; + upToDate = EFalse; } } else { //Do nothing - - } + + } break; } -#endif +#endif default: { PRINT1( _L("CCamCameraController::SettingValueUpToDate - unknown setting id: %d"), aSettingId ); } - - } - + + } + PRINT1( _L("Camera <= CCamCameraController::SettingValueUpToDate returning %d"), upToDate ); return upToDate; } @@ -6422,7 +6425,7 @@ iInfo.iVfState = ECamTriInactive; // restart viewfinder - //TRAP_IGNORE( ProcessVfStartRequestL() ); + //TRAP_IGNORE( ProcessVfStartRequestL() ); iAppController.EnterViewfinderMode(iAppController.CurrentMode()); } iViewfinderWindow = aWindow; @@ -6459,10 +6462,10 @@ // CCamCameraController::SetVfWindowOrdinal // --------------------------------------------------------------------------- // -TInt CCamCameraController::SetVfWindowOrdinal( TInt aOrdinalPosition ) - { - TInt orgPos( KErrUnknown ); - CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); +TInt CCamCameraController::SetVfWindowOrdinal( TInt aOrdinalPosition ) + { + TInt orgPos( KErrUnknown ); + CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); if ( iViewfinderWindow ) { TInt cbaPos(0); @@ -6479,7 +6482,7 @@ // Find out other windows ordinal positions if ( cba ) { - cbaPos = cba->DrawableWindow()->OrdinalPosition(); + cbaPos = cba->DrawableWindow()->OrdinalPosition(); } CAknToolbar* toolbar = appUi->CurrentFixedToolbar(); if ( toolbar ) @@ -6489,7 +6492,7 @@ { toolbarPos = toolbarwindow->OrdinalPosition(); } - } + } // Calculate new viewfinder position, // just under fixed toolbar and CBA buttons TInt newPos = Max( toolbarPos, cbaPos ) + 1; @@ -6507,12 +6510,12 @@ // Static function called when the timer expires // --------------------------------------------------------------------------- // -TInt +TInt CCamCameraController::DelayedCaeCallback( TAny* aController ) { CCamCameraController* self = static_cast( aController ); self->CallAppropriateCallback(); - + return KErrNone; } @@ -6521,12 +6524,12 @@ // Helper function to call the appropriate callback handler. // --------------------------------------------------------------------------- // -void +void CCamCameraController::CallAppropriateCallback( const TCamCameraEventId aEventId, TInt aStatus ) { - PRINT2( _L("Camera => CCamCameraController::CallAppropriateCallback, event:%d, status:%d"), aEventId, aStatus ) - + PRINT2( _L("Camera => CCamCameraController::CallAppropriateCallback, event:%d, status:%d"), aEventId, aStatus ) + switch ( iSimEventId ) { case ECamCameraEventVideoInit: @@ -6538,25 +6541,25 @@ PRINT( _L("Camera <> CCamCameraController::CallAppropriateCallback - calling handler after delay") ) HandleVideoEvent( iSimEventId, iSimStatus ); } - else + else { PRINT( _L("Camera <> CCamCameraController::CallAppropriateCallback - calling handler without delay") ) HandleVideoEvent( aEventId, aStatus ); - } + } break; default: break; } - - // In case of being called by timer, stop and destro the timer + + // In case of being called by timer, stop and destro the timer if( aEventId == ECamCameraEventNone && iCallbackTimer ) { iCallbackTimer->Cancel(); delete iCallbackTimer; iCallbackTimer = NULL; } - - PRINT( _L("Camera <= CCamCameraController::CallAppropriateCallback") ) + + PRINT( _L("Camera <= CCamCameraController::CallAppropriateCallback") ) } #endif // CAMERAAPP_CAE_ERR_SIMULATION @@ -6565,7 +6568,7 @@ // CCamCameraController::AsyncVideoStopModeSupported // --------------------------------------------------------------------------- // -TBool +TBool CCamCameraController::AsyncVideoStopModeSupported() { PRINT1( _L("Camera <> CCamCameraController::AsyncVideoStopModeSupported = %d "), iAsyncVideoStopModeSupported ); @@ -6576,7 +6579,7 @@ // IdleCallback <> // --------------------------------------------------------------------------- // -// static +// static TInt CCamCameraController::IdleCallback( TAny* aSelf ) { CCamCameraController* self( static_cast( aSelf ) ); @@ -6592,7 +6595,7 @@ void CCamCameraController::DoIveRecovery() { PRINT( _L("Camera => CCamCameraController::DoIveRecovery") ) - if( iAppController.IsAppUiAvailable() + if( iAppController.IsAppUiAvailable() && !( iAppController.IsInShutdownMode() || iAppController.CheckExitStatus() ) ) { CCamAppUi* appUi = static_cast( CEikonEnv::Static()->AppUi() ); @@ -6608,19 +6611,19 @@ { //There was an error when getting active view ID. Propably camera //application went to background. In that case just return because - //camera resource should be released when going to background. + //camera resource should be released when going to background. return; } __ASSERT_DEBUG(view, CamPanic(ECamPanicNullPointer)); - if ( appUi->StandbyStatus() && view->IsInStandbyMode() ) + if ( appUi->StandbyStatus() && view->IsInStandbyMode() ) { - PRINT( _L("Camera <> CCamCameraController::DoIveRecovery - Standby mode active, try to exit") ) - TRAP_IGNORE( appUi->HandleControllerEventL( ECamEventCameraChanged, + PRINT( _L("Camera <> CCamCameraController::DoIveRecovery - Standby mode active, try to exit") ) + TRAP_IGNORE( appUi->HandleControllerEventL( ECamEventCameraChanged, KErrNone ) ); } else { - PRINT( _L("Camera <> CCamCameraController::DoIveRecovery - Start recovering from beginning") ) + PRINT( _L("Camera <> CCamCameraController::DoIveRecovery - Start recovering from beginning") ) iIveSequenceActive = EFalse; if( IsFlagOn( iInfo.iBusy, ECamBusySequence|ECamBusySetting ) ) { @@ -6631,15 +6634,15 @@ } iIveCancel = ETrue; EndSequence( KErrNone ); // Clears iIveRecoveryOngoing and iIveSequenceActive - } - NotifyObservers( KErrNone, ECamCameraEventIveRecover, + } + NotifyObservers( KErrNone, ECamCameraEventIveRecover, ECamCameraEventClassBasicControl ); } iIveRecoveryCount--; iIveRecoveryOngoing = ETrue; iIveCancel = EFalse; } - PRINT1( _L("Camera <= CCamCameraController::DoIveRecovery iIveRecoveryCount%d"),iIveRecoveryCount ) + PRINT1( _L("Camera <= CCamCameraController::DoIveRecovery iIveRecoveryCount%d"),iIveRecoveryCount ) } // --------------------------------------------------------------------------- @@ -6650,7 +6653,7 @@ { // ETrue if recovery is started, but not completed. // iIveRecoveryOngoing is set to false when last recovery command is executed - return (iIdle && iIdle->IsActive()) || + return (iIdle && iIdle->IsActive()) || iIveCancel || iIveRecoveryOngoing || iIveSequenceActive; } @@ -6661,7 +6664,7 @@ // void CCamCameraController::SetFaceTrackingL() { - if( iCustomInterfaceFaceTracking && + if( iCustomInterfaceFaceTracking && KPrimaryCameraIndex == iInfo.iCurrentCamera ) { TBool ftOn( EFalse ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/cameracontroller/camimagedecoder.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camimagedecoder.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/cameracontroller/camimagedecoder.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -16,13 +16,12 @@ */ - - #include #include #include // MCameraBuffer #include +#include #include "camlogging.h" #include "camfilesaveutility.h" @@ -79,11 +78,17 @@ delete iDecoder; SetImageData( NULL ); - if(iDecodedBitmap) + if(iDecodedBitmap) { delete iDecodedBitmap; iDecodedBitmap = NULL; } + if ( iDecodedMask ) + { + delete iDecodedMask; + iDecodedMask = NULL; + } + iFs.Close(); PRINT( _L("Camera <= ~CCamImageDecoder") ); } @@ -150,6 +155,67 @@ } +void CCamImageDecoder::StartIconConversionL( TDesC* aFilePath ) + { + PRINT( _L("Camera => CCamImageDecoder::StartConversionL 2") ); + + // Data for CImageDecoder must be available throughout the conversion. + // Need to stop any outstanding operation before deleting the descriptor. + Cancel(); + + PRINT( _L("Camera <> CCamImageDecoder: Creating decoder..") ); + + delete iDecoder; + iDecoder = NULL; + + CImageDecoder::TOptions options = (CImageDecoder::TOptions) (CImageDecoder::EOptionNoDither ); + iDecoder = CImageDecoder::FileNewL( iFs, *aFilePath , options, KImageTypeSVGUid ); + + if( iDecoder->FrameCount() > 0 ) + { + const TFrameInfo& info( iDecoder->FrameInfo() ); + +#ifdef _DEBUG + TSize size = info.iOverallSizeInPixels; + PRINT2( _L("Camera <> CCamImageDecoder: Bmp size(%d,%d)"), size.iWidth, size.iHeight ); + PRINT1( _L("Camera <> CCamImageDecoder: Bmp dispmode(%d)"), info.iFrameDisplayMode ); +#endif + + PRINT( _L("Camera <> CCamImageDecoder: Create bitmap for snapshot..") ); + if( !iDecodedBitmap ) iDecodedBitmap = new (ELeave) CFbsBitmap; + else iDecodedBitmap->Reset(); + + if( !iDecodedMask ) iDecodedMask = new (ELeave) CFbsBitmap; + else iDecodedMask->Reset(); + + TRAPD ( createError, + { + iDecodedBitmap->Create( info.iOverallSizeInPixels, info.iFrameDisplayMode ); + iDecodedMask->Create( info.iOverallSizeInPixels, EGray256 ); + } ); + if( KErrNone != createError ) + { + delete iDecodedBitmap; + iDecodedBitmap = NULL; + delete iDecodedMask; + iDecodedMask = NULL; + User::Leave( createError ); + } + + PRINT( _L("Camera <> CCamImageDecoder: start conversion..") ); + iRetryCounter = 0; + iDecoder->Convert( &iStatus, *iDecodedBitmap, *iDecodedMask, 0 ); + SetActive(); + } + else + { + PRINT( _L("Camera <> CCamImageDecoder: No frame provided, leave..") ); + User::Leave( KErrNotFound ); + } + + PRINT( _L("Camera <= CCamImageDecoder::StartConversionL 2") ); + } + // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // @@ -253,7 +319,7 @@ // CImageDecoder has finished using the data, // so we are able to free it. SetImageData( NULL ); - iObserver.ImageDecoded( iStatus.Int(), iDecodedBitmap ); + iObserver.ImageDecoded( iStatus.Int(), iDecodedBitmap, iDecodedMask ); break; } case KErrUnderflow : @@ -298,7 +364,7 @@ SetImageData( NULL ); // Leave has occurred in RunL. // Notify observer with error. - iObserver.ImageDecoded( aError, NULL ); + iObserver.ImageDecoded( aError, NULL, NULL ); PRINT( _L("Camera <= CCamImageDecoder::RunError") ); return KErrNone; diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/cameracontroller/camsnapshot.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camsnapshot.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/cameracontroller/camsnapshot.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -439,7 +439,7 @@ // --------------------------------------------------------------------------- // void -CCamSnapshot::ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap ) +CCamSnapshot::ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap, const CFbsBitmap* /*aMask*/ ) { PRINT1( _L("Camera => CCamSnapshot::ImageDecoded, status in: %d"), aStatus ); if( iSnapshotOn ) @@ -590,7 +590,7 @@ CFbsBitmap& bitmap = buffer->BitmapL( 0 ); PRINT( _L("Camera <> Using bitmap data, just scale..") ); // Simulate that the bitmap has been decoded now. - ImageDecoded( aError, &bitmap ); + ImageDecoded( aError, &bitmap, NULL ); }); // If problems with bitmap data, try encoded data. diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/camfolderutility.cpp --- a/camerauis/cameraapp/generic/src/camfolderutility.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/camfolderutility.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -126,7 +126,36 @@ { aPath.Append( PathInfo::ImagesPath() ); } - + // Copied from below + TBuf cameraFolder; // "Camera" + StringLoader::Load( cameraFolder, R_CAM_CAMERA_SUBFOLDER ); + + RFs rfs; + User::LeaveIfError( rfs.Connect() ); + CleanupClosePushL( rfs ); + + TFileName fn( aPath ); + fn.Append( cameraFolder ); + TEntry entry; + TInt err2 = rfs.Entry(fn, entry ); + + if( KErrNone == err2 ) + { + if (!entry.IsDir( )) + { + RBuf newName; + CleanupClosePushL( newName); + newName.CreateL( fn.Length() + 4 ); + newName.Copy( fn ); + newName.Append(_L(".bak")); + TInt error = rfs.Rename( fn, newName ); + if ( error != KErrNone ) + { + User::LeaveIfError( rfs.Delete( fn ) ); + } + CleanupStack::PopAndDestroy( &newName ); + } + } // Add a folder for the current month // Use the specified time to determine the year and month. // If this is 0 then use the current time. @@ -154,8 +183,8 @@ cr->Set( KCamCrLastUsedMonthFolder, monthFolder ); } CleanupStack::PopAndDestroy( cr ); - TBuf cameraFolder; - StringLoader::Load( cameraFolder, R_CAM_CAMERA_SUBFOLDER ); +// TBuf cameraFolder; +// StringLoader::Load( cameraFolder, R_CAM_CAMERA_SUBFOLDER ); aPath.Append( cameraFolder ); aPath.Append( KBackslash ); aPath.Append( monthFolder ); @@ -165,11 +194,7 @@ // This may be returned e.g.if the month counter destination folder (YYYYMMXX) is // not created TInt monthFolderLength = aPath.Length(); - - RFs rfs; - User::LeaveIfError( rfs.Connect() ); - CleanupClosePushL( rfs ); - + // ensure the path exists TInt err = rfs.MkDirAll( aPath ); @@ -207,7 +232,8 @@ aPath.Append( KDigitOffset()[0] + monthCounter%KBase10 ); aPath.Append( KBackslash ); // If the folder does not exist then remove the final folder name from the path - TEntry entry; + //TEntry entry; + if ( rfs.Entry( aPath, entry ) == KErrNotFound ) { aPath.SetLength( monthFolderLength ); diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp --- a/camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/generic/src/camoneclickuploadutility.cpp Mon Mar 15 12:39:00 2010 +0200 @@ -16,22 +16,35 @@ */ +#include +#include +#include + #include #include #include #include + #include "camoneclickuploadutility.h" #include "camlogging.h" #include "CamPanic.h" +#include "Cam.hrh" -const TUid KShareOnlineCrUid = { 0x2000BB53 }; +#include +#include "camutility.h" + +const TUid KShareOnlineCrUid = { 0x2002CC1F }; const TUint32 KShareCrApplicationVersion = 0x01010020; const TInt KCamShareOnlineVersionBufLen = 12; -const TVersion KShareOnlineMinimumVersion( 4, 3, 0 ); +const TVersion KShareOnlineMinimumVersion( 5, 0, 0 ); const TUid KOpenModeOneClick = { 2 }; const TUid KCmdGetOneClickToolTip = { 15 }; +const TUint32 KShareImageServiceIconFileName = 0x00000002; +const TUint32 KShareVideoServiceIconFileName = 0x00000003; +const TUint32 KShareCommonServiceIconFileName = 0x00000004; + // ======== MEMBER FUNCTIONS ======== @@ -92,6 +105,9 @@ { delete iAiwServiceHandler; delete iTooltip; + + if ( iDecoder ) + delete iDecoder; } @@ -274,3 +290,137 @@ iAiwServiceHandler = CAiwServiceHandler::NewL(); iAiwServiceHandler->AttachL( R_CAM_ONE_CLICK_UPLOAD_INTEREST ); } + +// --------------------------------------------------------------------------- +// Get the icon for Share AP item +// --------------------------------------------------------------------------- +// +void CCamOneClickUploadUtility::CurrentIconPathL( TCamCameraMode aMode, TDes& aPath ) + { + PRINT( _L("Camera => CCamOneClickUploadUtility::CurrentIconPathL") ); + TUint32 serviceIconId = KShareCommonServiceIconFileName; + + if ( ECamControllerVideo == aMode ) + { + serviceIconId = KShareVideoServiceIconFileName; + } + else // image + { + serviceIconId = KShareImageServiceIconFileName; + } + + CRepository* rep = CRepository::NewLC( KShareOnlineCrUid ); + User::LeaveIfError( rep->Get( serviceIconId, aPath ) ); + CleanupStack::PopAndDestroy( rep ); + PRINT1( _L("Camera <= CCamOneClickUploadUtility::CurrentIconPathL: %S"), &aPath ); + } + +// ----------------------------------------------------------------------------- +// CCamOneClickUploadUtility::UpdateUploadIcon +// ----------------------------------------------------------------------------- +// +void CCamOneClickUploadUtility::UpdateUploadIcon( CAknToolbar *aToolbar, + TCamCameraMode aMode ) + { + PRINT( _L("Camera => CCamOneClickUploadUtility::UpdateUploadIcon") ); + + TFileName currIcon; + CurrentIconPathL( aMode, currIcon ); + + // If the icons are different then load the icon + PRINT1( _L("Camera <> current icon: %S"), &iIconFileName ); + if ( currIcon.Compare(iIconFileName) != 0 ) + { + PRINT( _L("Camera <> Decoding icon") ); + iToolbar = aToolbar; + TRAPD( err, DecodeIconL( &currIcon ) ); + if (err) + { + PRINT1( _L("Camera <> CamOneClickUploadUtility - Icon decoding failed: %d"), err ); + } + } + else + { + if ( aToolbar && iIconImage ) + { + PRINT( _L("Camera <> Copying icon") ); + CAknButton* button = dynamic_cast( + aToolbar->ControlOrNull( ECamCmdOneClickUpload ) ); + CAknButtonState* state = button->State(); + + CGulIcon *icon = CGulIcon::NewL( iIconImage, iIconMask ); + state->SetIcon( icon ); + icon->SetBitmapsOwnedExternally( ETrue ); + + button->SetButtonFlags( KAknButtonNoFrame | KAknButtonPressedDownFrame ); + aToolbar->DrawNow(); + } + } + PRINT( _L("Camera <= CCamOneClickUploadUtility::UpdateUploadIcon") ); + } + +// ----------------------------------------------------------------------------- +// CCamOneClickUploadUtility::DecodeIconL() +// ----------------------------------------------------------------------------- +// +void CCamOneClickUploadUtility::DecodeIconL( TDesC* aPath ) + { + PRINT1( _L("Camera => CCamOneClickUploadUtility::DecodeIconL: %S"), aPath ); + + if ( !iDecoder ) + { + iDecoder = CCamImageDecoder::NewL( *this ); + } + iDecoder->StartIconConversionL( aPath ); + + // Mark the given file as the icon in use when decoding has started + iIconFileName.Copy( *aPath ); + + PRINT( _L("Camera <= CCamOneClickUploadUtility::DecodeIconL") ); + } + +// --------------------------------------------------------------------------- +// Image decoding complete notification +// --------------------------------------------------------------------------- +// +void CCamOneClickUploadUtility::ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap, const CFbsBitmap* aMask ) + { + PRINT( _L("Camera => CCamOneClickUploadUtility::ImageDecoded") ); + + if ( aStatus == KErrNone ) + { + delete iIconImage; + delete iIconMask; + + iIconImage = new (ELeave) CFbsBitmap; + iIconImage->Duplicate( aBitmap->Handle() ); + + if ( aMask ) + { + iIconMask = new (ELeave) CFbsBitmap; + iIconMask->Duplicate( aMask->Handle() ); + } + + if ( iToolbar ) + { + PRINT( _L("Displaying icon") ); + + CAknButton* uploadButton = + static_cast (iToolbar->ControlOrNull(ECamCmdOneClickUpload)); + CAknButtonState* currentState = uploadButton->State(); + + CGulIcon *icon = CGulIcon::NewL( iIconImage, iIconMask ); + icon->SetBitmapsOwnedExternally( ETrue ); + currentState->SetIcon( icon ); + + uploadButton->SetButtonFlags( KAknButtonNoFrame | KAknButtonPressedDownFrame ); + iToolbar->DrawNow(); + } + } + else + { + PRINT1( _L("Camera <> CCamOneClickUploadUtility::ImageDecoded - err:%d"), aStatus ); + } + + PRINT( _L("Camera <= CCamOneClickUploadUtility::ImageDecoded") ); + } diff -r 792dfc98fb3b -r 8c55c525d5d7 camerauis/cameraapp/loc/cam.loc --- a/camerauis/cameraapp/loc/cam.loc Fri Mar 12 15:41:04 2010 +0200 +++ b/camerauis/cameraapp/loc/cam.loc Mon Mar 15 12:39:00 2010 +0200 @@ -4241,5 +4241,10 @@ //l: popup_note_window #define qtn_lcam_insert_mmc_note "Please insert memory card in order to capture photos and videos" +//d:Capture tone off setting in photo settings list +//l:list_set_graphic_pane_t1 +// +#define qtn_lcam_shuttersound_off "Off" + // end of file