Revision: 201003 RCL_3 PDK_3.0.h
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Feb 2010 22:36:31 +0200
branchRCL_3
changeset 7 dbec5787fa68
parent 3 8b2d6d0384b0
child 10 eea064bd7703
child 11 792dfc98fb3b
Revision: 201003 Kit: 201007
camerauis/cameraapp/build/cameraapp.mmp
camerauis/cameraapp/conf/cameraapp.confml
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamPhotoSettingsView.h
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamVideoSettingsView.h
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPluginContainer.h
camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamdefaultnamesettingpage.h
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsView.cpp
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPluginContainer.cpp
camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp
camerauis/cameraapp/generic/camerauiconfigmanager/conf/camerauiconfigmanager.confml
camerauis/cameraapp/generic/common/data/CamSettings.ra
camerauis/cameraapp/generic/common/data/CamSettingsV2.ra
camerauis/cameraapp/generic/data/nhdcamsettings.rss
camerauis/cameraapp/generic/inc/CamAppUi.h
camerauis/cameraapp/generic/inc/CamVideoPreCaptureContainer.h
camerauis/cameraapp/generic/src/CamAppController.cpp
camerauis/cameraapp/generic/src/CamAppui.cpp
camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp
camerauis/cameraapp/generic/src/CamImageSaveActive.cpp
camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp
camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp
camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp
camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp
camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp
camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp
camerauis/cameraapp/generic/src/CamZoomModel.cpp
camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp
camerauis/cameraapp/generic/src/cameracontroller/camsettingprovider.cpp
camerauis/cameraapp/help/data/xhtml.zip
camerauis/cameraapp/help/inc/lcam.hlp.hrh
--- a/camerauis/cameraapp/build/cameraapp.mmp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/build/cameraapp.mmp	Fri Feb 19 22:36:31 2010 +0200
@@ -292,6 +292,7 @@
 LIBRARY CFServices.lib
 LIBRARY ActivePalette.lib
 LIBRARY aknlayout2.lib
+LIBRARY accmonitor.lib
 
 // Remote Controller framework
 LIBRARY RemConCoreApi.lib
Binary file camerauis/cameraapp/conf/cameraapp.confml has changed
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamPhotoSettingsView.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamPhotoSettingsView.h	Fri Feb 19 22:36:31 2010 +0200
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <aknview.h>
 #include <eiklbo.h>
-#include <GSTabbedView.h>
+#include <gstabbedview.h>
 #include "GSCamcorderSettingsBaseView.h"
 
 // CONSTANTS
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamVideoSettingsView.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamVideoSettingsView.h	Fri Feb 19 22:36:31 2010 +0200
@@ -23,7 +23,7 @@
 // INCLUDES
 #include <aknview.h>
 #include <eiklbo.h>
-#include <GSTabbedView.h>
+#include <gstabbedview.h>
 #include "GSCamcorderSettingsBaseView.h"
 
 // CONSTANTS
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPlugin.h	Fri Feb 19 22:36:31 2010 +0200
@@ -23,8 +23,8 @@
 #include <aknview.h>
 #include <eikclb.h>
 #include <ConeResLoader.h>
-#include <GSPluginInterface.h>
-#include <GSBaseView.h>
+#include <gsplugininterface.h>
+#include <gsbaseview.h>
 #include "CamStaticSettingsModel.h"
 
 // Classes referenced
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPluginContainer.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamcorderPluginContainer.h	Fri Feb 19 22:36:31 2010 +0200
@@ -21,7 +21,7 @@
 
 // INCLUDES
 // System includes
-#include <GSBaseContainer.h>
+#include <gsbasecontainer.h>
 
 // CONSTANTS
 const TInt KGSCamSettingsListImageIndex = 0;
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamdefaultnamesettingpage.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/inc/GSCamdefaultnamesettingpage.h	Fri Feb 19 22:36:31 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -97,6 +97,7 @@
         // The current mode of capture.
         TCamCameraMode iMode;
         TBool iCamera;
+        TBool iNameSelected;
     };
 
 #endif // GSCAMDEFAULTNAMESETTINGPAGE_H
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsList.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -88,16 +88,13 @@
     if ( iModel.UiConfigManagerPtr() &&
          iModel.UiConfigManagerPtr()->IsLocationSupported() )
         {
-        resId =  R_CAM_PHOTO_SETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER;
+        resId =  iLaunchedFromGS?R_CAM_PHOTO_GSSETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER:
+                                 R_CAM_PHOTO_SETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER;
         }
     else
         {
-        resId =  R_CAM_PHOTO_SETTINGS_ITEM_LIST_CAMCORDER;
-        }
-
-    if ( iSecondaryCameraSettings )
-        {
-        resId =  R_CAM_VIDEO_SETTINGS_ITEM_LIST_PORTRAIT;
+        resId =  iLaunchedFromGS?R_CAM_PHOTO_GSSETTINGS_ITEM_LIST_CAMCORDER:
+                                 R_CAM_PHOTO_SETTINGS_ITEM_LIST_CAMCORDER;
         }
     
     if ( iSecondaryCameraSettings )
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsView.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamPhotoSettingsView.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -27,7 +27,7 @@
 #include <barsread.h>
 #include <gscamerapluginrsc.rsg>
 #include <camerasettingsplugin.mbg>
-#include <GSTabHelper.h>
+#include <gstabhelper.h>
 #include "CamAppUid.h"
 #include "GSCamcorderPlugin.h"
 #include "GSCamcorderPlugin.hrh"
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -96,11 +96,13 @@
     if ( iModel.UiConfigManagerPtr() &&
          iModel.UiConfigManagerPtr()->IsLocationSupported() )
         {
-        resId =  R_CAM_VIDEO_SETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER;
+        resId =  iLaunchedFromGS?R_CAM_VIDEO_GSSETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER:
+                                 R_CAM_VIDEO_SETTINGS_WITH_LOCATION_ITEM_LIST_CAMCORDER;
         }
     else
         {
-        resId =  R_CAM_VIDEO_SETTINGS_ITEM_LIST_CAMCORDER;
+        resId =  iLaunchedFromGS?R_CAM_VIDEO_GSSETTINGS_ITEM_LIST_CAMCORDER:
+                                 R_CAM_VIDEO_SETTINGS_ITEM_LIST_CAMCORDER;
         }
 
     if ( iSecondaryCameraSettings )
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPlugin.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -31,9 +31,9 @@
 #include <bldvariant.hrh>
 #include <gscamerapluginrsc.rsg>
 #include <StringLoader.h>     //for stringloader
-#include <GSPrivatePluginProviderIds.h>
+#include <gsprivatepluginproviderids.h>
 #include <bautils.h>
-#include <GSFWViewUIDs.h>     //for kgsmainviewuid
+#include <gsfwviewuids.h>     //for kgsmainviewuid
 #include <aknnotewrappers.h>
 #include <hlplch.h>             // for hlplauncher
 
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPluginContainer.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamcorderPluginContainer.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -20,7 +20,7 @@
 #include <aknlists.h>               //for CAknSettingStyleListBox
 #include <gscamerapluginrsc.rsg>
 #include <camerasettingsplugin.mbg>
-#include <GSListbox.h>              //for listbox clases
+#include <gslistbox.h>              //for listbox clases
 #include <AknIconArray.h>   // CAknIconArray
 #include <eikclbd.h>        // CColumnListBoxData
 
--- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamdefaultnamesettingpage.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -52,6 +52,7 @@
       iMode( aMode ),
       iCamera ( aCamera )
     {
+    iNameSelected  = QueryValue()->CurrentValueIndex();
     }
     
 
@@ -105,6 +106,11 @@
             }
            
         }
+    else  
+        {
+        // Cancelled
+        QueryValue()->SetCurrentValueIndex( iNameSelected );
+        }
     return ETrue;
     }
  
Binary file camerauis/cameraapp/generic/camerauiconfigmanager/conf/camerauiconfigmanager.confml has changed
--- a/camerauis/cameraapp/generic/common/data/CamSettings.ra	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/common/data/CamSettings.ra	Fri Feb 19 22:36:31 2010 +0200
@@ -1040,6 +1040,22 @@
     flags = KAknSettingPageNoEmbeddedSoftKeys;
     }
 
+//----------------------------------------------------
+//
+//    r_cam_gssettings_quality_settings_page
+//	  setting page resource for the quality slider
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_cam_gssettings_quality_settings_page
+	{
+	// the type and editor resource are included so that the
+	// settings page can be constructed without crashing but are not used
+	// The custom quality control is used instead
+	type = EAknCtPopupSettingList;
+	editor_resource_id = r_cam_setting_listbox;
+	softkey_resource = R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT;
+	}
 
 //----------------------------------------------------
 //
@@ -1061,6 +1077,23 @@
 
 //----------------------------------------------------
 //
+//    r_cam_gssettings_location_settings_page 
+//   
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_cam_gssettings_location_settings_page
+    {
+    // the type and editor resource are included so that the
+    // settings page can be constructed without crashing but are not used
+    // The custom quality control is used instead
+    type = EAknCtPopupSettingList;
+    editor_resource_id = r_cam_setting_listbox;  
+    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;            
+    }
+
+//----------------------------------------------------
+//
 //    r_cam_settings_location_settings_page   
 //   
 //
@@ -1081,6 +1114,77 @@
 
 //----------------------------------------------------
 //
+//    r_cam_video_gssettings_item_list_camcorder   
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST r_cam_video_gssettings_item_list_camcorder
+	{
+	items =
+		{
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoQuality;
+			setting_page_resource = r_cam_gssettings_quality_settings_page;
+			associated_resource = r_cam_video_quality_texts;
+			name = qtn_lcam_sett_attr_vi_type;
+			},
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoStab;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource = r_cam_on_off_texts_vid_stable;
+			name = qtn_lcam_sett_attr_vid_stable;
+			},
+    AVKON_SETTING_ITEM
+          {
+          identifier            = ECamSettingItemVideoAudioRec;
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_audiomute_land;
+          name                  = qtn_lcam_sett_attr_audio_rec;
+          },
+
+     AVKON_SETTING_ITEM
+		 {
+          identifier            = ECamSettingItemContinuousAutofocus;  
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_continuous_af;
+          name                  = qtn_lcam_sett_attr_cont_af;
+          },
+     AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemVideoShowCapturedVideo;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_vid_showcap_land;
+			name                  = qtn_lcam_sett_attr_post_vi;
+			},
+
+		AVKON_SETTING_ITEM
+	    {
+      identifier = ECamSettingItemVideoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_video_name;
+      },
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoMediaStorage;
+			setting_page_resource = r_cam_image_memory_selection_dialog;
+			name = qtn_lcam_sett_attr_store;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemRestoreCameraSettings;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			name = qtn_lcam_sett_attr_reset;
+			}
+		};
+
+	}
+
+
+//----------------------------------------------------
+//
 //    r_cam_video_settings_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1151,6 +1255,86 @@
 
 //----------------------------------------------------
 //
+//    r_cam_video_gssettings_with_location_item_list_camcorder 
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST r_cam_video_gssettings_with_location_item_list_camcorder
+    {
+    items =
+        {
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoQuality;
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_video_quality_texts;
+            name = qtn_lcam_sett_attr_vi_type;
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRecLocation;
+            // The quality page resource is used to prevent crashing in the construction phase
+            // The type and editor resource are included but are not used
+            // The custom quality control is used instead
+            setting_page_resource = r_cam_gssettings_location_settings_page;
+            associated_resource = r_cam_photo_location_texts;
+            name = qtn_lcam_sett_attr_rec_location;
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoStab;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_on_off_texts_vid_stable;
+            name = qtn_lcam_sett_attr_vid_stable;
+            },
+    AVKON_SETTING_ITEM
+      {
+      identifier            = ECamSettingItemVideoAudioRec;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource   = r_cam_texts_vid_audiomute_land;
+      name                  = qtn_lcam_sett_attr_audio_rec;
+      },
+    AVKON_SETTING_ITEM   
+          {
+          identifier            = ECamSettingItemContinuousAutofocus;  
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_continuous_af;
+          name                  = qtn_lcam_sett_attr_cont_af;
+          },
+ 
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemVideoShowCapturedVideo;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_vid_showcap_land;
+            name                  = qtn_lcam_sett_attr_post_vi;
+            },
+
+        AVKON_SETTING_ITEM
+        {
+      identifier = ECamSettingItemVideoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_video_name;
+      },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoMediaStorage;
+            setting_page_resource = r_cam_image_memory_selection_dialog;
+            name = qtn_lcam_sett_attr_store;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRestoreCameraSettings;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            name = qtn_lcam_sett_attr_reset;
+            }
+        };
+
+    }
+
+//----------------------------------------------------
+//
 //    r_cam_video_settings_with_location_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1437,6 +1621,81 @@
 
 //----------------------------------------------------
 //
+//    r_cam_photo_gssettings_item_list_camcorder 
+//
+//----------------------------------------------------
+//
+
+RESOURCE AVKON_SETTING_ITEM_LIST
+r_cam_photo_gssettings_item_list_camcorder
+	{
+	items =
+		{
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoQuality;
+			setting_page_resource = r_cam_gssettings_quality_settings_page;
+			associated_resource = r_cam_photo_quality_texts;
+			name = qtn_lcam_sett_attr_quality;
+			},
+
+    AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemShowCapturedPhoto;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_img_showcap_land;
+			name                  = qtn_lcam_sett_attr_post_ph;
+			},
+
+		AVKON_SETTING_ITEM
+			{
+      identifier = ECamSettingItemPhotoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_name_base;
+      },
+
+      // If optical zoom is supported, could use setting for digital zoom only.
+      // If optical zoom not supported, this setting is needed for extended zoom only.
+
+	AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemPhotoDigitalZoom;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_ext_zoom_texts;
+			name                  = qtn_lcam_sett_attr_zoom;         // "Extended digital zoom"
+			},
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoCaptureTone;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource = r_cam_capture_tone_list_texts;
+			name = qtn_lcam_sett_attr_tone;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemImageRotation;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_img_rotate;
+			name                  = qtn_lcam_sett_attr_tsensor;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoMediaStorage;
+			setting_page_resource = r_cam_image_memory_selection_dialog;
+			name = qtn_lcam_sett_attr_store;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemRestoreCameraSettings;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			name = qtn_lcam_sett_attr_reset;
+			}
+		};
+	} 
+
+//----------------------------------------------------
+//
 //    r_cam_photo_settings_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1513,6 +1772,89 @@
 
 //----------------------------------------------------
 //
+//    r_cam_photo_gssettings_with_location_item_list_camcorder
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST
+r_cam_photo_gssettings_with_location_item_list_camcorder
+    {
+    items =
+        {
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoQuality;
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_photo_quality_texts;
+            name = qtn_lcam_sett_attr_quality;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRecLocation;
+            // The quality page resource is used to prevent crashing in the construction phase
+            // The type and editor resource are included but are not used
+            // The custom quality control is used instead
+            setting_page_resource = r_cam_gssettings_location_settings_page;
+            associated_resource = r_cam_photo_location_texts;
+            name = qtn_lcam_sett_attr_rec_location;
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemShowCapturedPhoto;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_img_showcap_land;
+            name                  = qtn_lcam_sett_attr_post_ph;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoNameBaseType;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_date_or_text_texts;
+            name = qtn_lcam_sett_attr_name_base;
+            },
+
+      // If optical zoom is supported, could use setting for digital zoom only.
+      // If optical zoom not supported, this setting is needed for extended zoom only.
+
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemPhotoDigitalZoom;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_ext_zoom_texts;
+            name                  = qtn_lcam_sett_attr_zoom;         // "Extended digital zoom"
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoCaptureTone;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_capture_tone_list_texts;
+            name = qtn_lcam_sett_attr_tone;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemImageRotation;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_img_rotate;
+            name                  = qtn_lcam_sett_attr_tsensor;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoMediaStorage;
+            setting_page_resource = r_cam_image_memory_selection_dialog;
+            name = qtn_lcam_sett_attr_store;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRestoreCameraSettings;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            name = qtn_lcam_sett_attr_reset;
+            }
+        };
+    }
+
+
+//----------------------------------------------------
+//
 //    r_cam_photo_settings_with_location_item_list_camcorder
 //
 //----------------------------------------------------
--- a/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/common/data/CamSettingsV2.ra	Fri Feb 19 22:36:31 2010 +0200
@@ -1046,6 +1046,22 @@
     flags = KAknSettingPageNoEmbeddedSoftKeys;
     }
 
+//----------------------------------------------------
+//
+//    r_cam_settings_quality_settings_page
+//	  setting page resource for the quality slider
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_cam_gssettings_quality_settings_page
+	{
+	// the type and editor resource are included so that the
+	// settings page can be constructed without crashing but are not used
+	// The custom quality control is used instead
+	type = EAknCtPopupSettingList;
+	editor_resource_id = r_cam_setting_listbox;
+	softkey_resource = R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT;
+	}
 
 //----------------------------------------------------
 //
@@ -1067,6 +1083,23 @@
 
 //----------------------------------------------------
 //
+//    r_cam_gssettings_location_settings_page  
+//   
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_PAGE r_cam_gssettings_location_settings_page
+    {
+    // the type and editor resource are included so that the
+    // settings page can be constructed without crashing but are not used
+    // The custom quality control is used instead
+    type = EAknCtPopupSettingList;
+    editor_resource_id = r_cam_setting_listbox;  
+    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;             
+    }
+
+//----------------------------------------------------
+//
 //    r_cam_settings_location_settings_page   
 //   
 //
@@ -1087,6 +1120,77 @@
 
 //----------------------------------------------------
 //
+//    r_cam_video_gssettings_item_list_camcorder
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST r_cam_video_gssettings_item_list_camcorder
+	{
+	items =
+		{
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoQuality;
+			setting_page_resource = r_cam_gssettings_quality_settings_page;
+			associated_resource = r_cam_video_quality_texts;
+			name = qtn_lcam_sett_attr_vi_type;
+			},
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoStab;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource = r_cam_on_off_texts_vid_stable;
+			name = qtn_lcam_sett_attr_vid_stable;
+			},
+    AVKON_SETTING_ITEM
+          {
+          identifier            = ECamSettingItemVideoAudioRec;
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_audiomute_land;
+          name                  = qtn_lcam_sett_attr_audio_rec;
+          },
+
+    AVKON_SETTING_ITEM
+			{
+          identifier            = ECamSettingItemContinuousAutofocus; 
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_continuous_af;
+          name                  = qtn_lcam_sett_attr_cont_af;
+          },
+    AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemVideoShowCapturedVideo;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_vid_showcap_land;
+			name                  = qtn_lcam_sett_attr_post_vi;
+			},
+
+		AVKON_SETTING_ITEM
+	    {
+      identifier = ECamSettingItemVideoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_video_name;
+      },
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemVideoMediaStorage;
+			setting_page_resource = r_cam_image_memory_selection_dialog;
+			name = qtn_lcam_sett_attr_store;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemRestoreCameraSettings;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			name = qtn_lcam_sett_attr_reset;
+			}
+		};
+
+	}
+
+
+//----------------------------------------------------
+//
 //    r_cam_video_settings_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1157,6 +1261,87 @@
 
 //----------------------------------------------------
 //
+//    r_cam_video_gsssettings_with_location_item_list_camcorder
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST r_cam_video_gssettings_with_location_item_list_camcorder
+    {
+    items =
+        {
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoQuality;
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_video_quality_texts;
+            name = qtn_lcam_sett_attr_vi_type;
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRecLocation;
+            // The quality page resource is used to prevent crashing in the construction phase
+            // The type and editor resource are included but are not used
+            // The custom quality control is used instead
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_photo_location_texts;
+            name = qtn_lcam_sett_attr_rec_location;
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoStab;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_on_off_texts_vid_stable;
+            name = qtn_lcam_sett_attr_vid_stable;
+            },
+    AVKON_SETTING_ITEM
+      {
+      identifier            = ECamSettingItemVideoAudioRec;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource   = r_cam_texts_vid_audiomute_land;
+      name                  = qtn_lcam_sett_attr_audio_rec;
+      },
+    AVKON_SETTING_ITEM   
+          {
+          identifier            = ECamSettingItemContinuousAutofocus;  
+          setting_page_resource = r_cam_settings_list_settings_page;
+          associated_resource   = r_cam_texts_vid_continuous_af;
+          name                  = qtn_lcam_sett_attr_cont_af;
+          },
+ 
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemVideoShowCapturedVideo;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_vid_showcap_land;
+            name                  = qtn_lcam_sett_attr_post_vi;
+            },
+
+        AVKON_SETTING_ITEM
+        {
+      identifier = ECamSettingItemVideoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_video_name;
+      },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemVideoMediaStorage;
+            setting_page_resource = r_cam_image_memory_selection_dialog;
+            name = qtn_lcam_sett_attr_store;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRestoreCameraSettings;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            name = qtn_lcam_sett_attr_reset;
+            }
+        };
+
+    }
+
+
+//----------------------------------------------------
+//
 //    r_cam_video_settings_with_location_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1443,6 +1628,81 @@
 
 //----------------------------------------------------
 //
+//    r_cam_photo_gssettings_item_list_camcorder
+//
+//----------------------------------------------------
+//
+
+RESOURCE AVKON_SETTING_ITEM_LIST
+r_cam_photo_gssettings_item_list_camcorder
+	{
+	items =
+		{
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoQuality;
+			setting_page_resource = r_cam_gssettings_quality_settings_page;
+			associated_resource = r_cam_photo_quality_texts;
+			name = qtn_lcam_sett_attr_quality;
+			},
+
+    AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemShowCapturedPhoto;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_img_showcap_land;
+			name                  = qtn_lcam_sett_attr_post_ph;
+			},
+
+	AVKON_SETTING_ITEM
+			{
+            identifier = ECamSettingItemPhotoNameBaseType;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_date_or_text_texts;
+            name = qtn_lcam_sett_attr_name_base;
+            },
+
+      // If optical zoom is supported, could use setting for digital zoom only.
+      // If optical zoom not supported, this setting is needed for extended zoom only.
+
+	AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemPhotoDigitalZoom;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_ext_zoom_texts;
+			name                  = qtn_lcam_sett_attr_zoom;         // "Extended digital zoom"
+			},
+    AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoCaptureTone;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource = r_cam_capture_tone_list_texts;
+			name = qtn_lcam_sett_attr_tone;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier            = ECamSettingItemImageRotation;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			associated_resource   = r_cam_on_off_texts_img_rotate;
+			name                  = qtn_lcam_sett_attr_tsensor;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemPhotoMediaStorage;
+			setting_page_resource = r_cam_image_memory_selection_dialog;
+			name = qtn_lcam_sett_attr_store;
+			},
+		AVKON_SETTING_ITEM
+			{
+			identifier = ECamSettingItemRestoreCameraSettings;
+			setting_page_resource = r_cam_settings_list_settings_page;
+			name = qtn_lcam_sett_attr_reset;
+			}
+		};
+	}
+
+//----------------------------------------------------
+//
 //    r_cam_photo_settings_item_list_camcorder
 //
 //----------------------------------------------------
@@ -1516,6 +1776,89 @@
 		};
 	}
 
+//----------------------------------------------------
+//
+//    r_cam_photo_gssettings_with_location_item_list_camcorder
+//
+//----------------------------------------------------
+//
+RESOURCE AVKON_SETTING_ITEM_LIST
+r_cam_photo_gssettings_with_location_item_list_camcorder
+    {
+    items =
+        {
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoQuality;
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_photo_quality_texts;
+            name = qtn_lcam_sett_attr_quality;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRecLocation;
+            // The quality page resource is used to prevent crashing in the construction phase
+            // The type and editor resource are included but are not used
+            // The custom quality control is used instead
+            setting_page_resource = r_cam_gssettings_quality_settings_page;
+            associated_resource = r_cam_photo_location_texts;
+            name = qtn_lcam_sett_attr_rec_location;
+            },
+
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemShowCapturedPhoto;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_img_showcap_land;
+            name                  = qtn_lcam_sett_attr_post_ph;
+            },
+
+        AVKON_SETTING_ITEM
+            {
+      identifier = ECamSettingItemPhotoNameBaseType;
+      setting_page_resource = r_cam_settings_list_settings_page;
+      associated_resource = r_cam_date_or_text_texts;
+      name = qtn_lcam_sett_attr_name_base;
+      },
+
+      // If optical zoom is supported, could use setting for digital zoom only.
+      // If optical zoom not supported, this setting is needed for extended zoom only.
+
+    AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemPhotoDigitalZoom;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_ext_zoom_texts;
+            name                  = qtn_lcam_sett_attr_zoom;         // "Extended digital zoom"
+            },
+    AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoCaptureTone;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource = r_cam_capture_tone_list_texts;
+            name = qtn_lcam_sett_attr_tone;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier            = ECamSettingItemImageRotation;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            associated_resource   = r_cam_on_off_texts_img_rotate;
+            name                  = qtn_lcam_sett_attr_tsensor;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemPhotoMediaStorage;
+            setting_page_resource = r_cam_image_memory_selection_dialog;
+            name = qtn_lcam_sett_attr_store;
+            },
+        AVKON_SETTING_ITEM
+            {
+            identifier = ECamSettingItemRestoreCameraSettings;
+            setting_page_resource = r_cam_settings_list_settings_page;
+            name = qtn_lcam_sett_attr_reset;
+            }
+        };
+    }
 
 //----------------------------------------------------
 //
--- a/camerauis/cameraapp/generic/data/nhdcamsettings.rss	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/data/nhdcamsettings.rss	Fri Feb 19 22:36:31 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -1088,7 +1088,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_still_precapture_toolbar_landscape
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
@@ -1240,7 +1240,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_video_precapture_toolbar_landscape
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
@@ -1848,7 +1848,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_still_postcapture_toolbar_landscape
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
@@ -1998,7 +1998,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_still_postcapture_toolbar_landscape_upload
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
@@ -2635,7 +2635,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_video_postcapture_toolbar_landscape
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
@@ -2784,7 +2784,7 @@
 RESOURCE AVKON_TOOLBAR r_cam_video_postcapture_toolbar_landscape_upload
     {
     lines = 3;
-    flags = KAknToolbarFixed | KAknToolbarDsaMode;
+    flags = KAknToolbarFixed | KAknToolbarDsaMode | KAknToolbarNoBackground | KAknToolbarTransparent;
     items =
         {
         TBAR_CTRL
--- a/camerauis/cameraapp/generic/inc/CamAppUi.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/inc/CamAppUi.h	Fri Feb 19 22:36:31 2010 +0200
@@ -1295,6 +1295,11 @@
         * @param aHide whether to hide or make visible
         */
         void HideTaskL(TBool aHide);
+        
+        /**
+        * returns ETrue if headset is connected
+        */ 
+        TBool IsHeadsetConnected() const;
 
     public:
         /**
--- a/camerauis/cameraapp/generic/inc/CamVideoPreCaptureContainer.h	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/inc/CamVideoPreCaptureContainer.h	Fri Feb 19 22:36:31 2010 +0200
@@ -22,6 +22,8 @@
 // INCLUDES
 #include "CamPreCaptureContainerBase.h"
 
+class MTouchFeedback;
+
 // CLASS DECLARATION
 
 /**
@@ -264,6 +266,8 @@
     
     // Position to move the resolution icon to during video capture
     TRect iResolutionIndicatorVidcapPosition;
+    
+    MTouchFeedback *iFeedback;
 
   // =======================================================
   };
--- a/camerauis/cameraapp/generic/src/CamAppController.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamAppController.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -32,6 +32,7 @@
 #include <barsread.h>
 #include <AknUtils.h>
 #include <akntoolbar.h>
+#include <akntoolbarextension.h>
 #include <centralrepository.h>
 
 #include <ctsydomainpskeys.h>
@@ -9658,6 +9659,12 @@
             CAknToolbar* fixedToolbar = appUi->CurrentFixedToolbar();
             if ( fixedToolbar )
                 {
+                CAknToolbarExtension* extension = fixedToolbar->ToolbarExtension();
+                if ( extension )
+                    {
+                    // Keep toolbar extension hidden after the half press key is released 
+                    extension->SetShown( EFalse );
+                    }
                 fixedToolbar->SetToolbarVisibility( EFalse );
                 } 
             }
@@ -10449,10 +10456,9 @@
     {
     if ( iKeyLockStatusWatcher && iConfigManager && iConfigManager->IsKeyLockWatcherSupported() )
         {
-        CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() ); 
         TInt iKeyLockStatus = 0;
         iKeyLockStatusWatcher->Get( iKeyLockStatus );
-        if ( iKeyLockStatus == EKeyguardLocked && appUi )
+        if ( iKeyLockStatus == EKeyguardLocked )
             {
             return ETrue;
             }
--- a/camerauis/cameraapp/generic/src/CamAppui.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamAppui.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -52,6 +52,7 @@
 #include <oommonitorsession.h>
 #include <driveinfo.h>
 #include <pathinfo.h>
+#include <accmonitor.h>
 
 #ifndef __WINSCW__
 //#include <SFIUtilsAppInterface.h>
@@ -3307,9 +3308,16 @@
                  {
                  CAknToolbar* toolbar = CurrentFixedToolbar();
                  if ( toolbar )
-                      {
-                      toolbar->SetToolbarVisibility( ETrue );
-                      }
+                     {
+                     if ( iPreCaptureMode == ECamPreCapViewfinder )
+                         {
+                         toolbar->SetToolbarVisibility( ETrue );
+                         }
+                     else
+                         {
+                         toolbar->SetToolbarVisibility( EFalse );
+                         }
+                     }
                  }
               }
           break;
@@ -3811,14 +3819,18 @@
       {
       SetViewFinderInTransit(ETrue);
       iController.StopViewFinder();
-      TUid viewId = iView->Id();
-      if(viewId == TUid::Uid( ECamViewIdStillPreCapture )
-          || viewId == TUid::Uid( ECamViewIdVideoPreCapture ))
-          {
-          CCamViewBase* view = static_cast<CCamViewBase*>(iView);
-          CCamContainerBase* container = view->Container(); 
-          container->DrawNow();
-          }
+      if ( iView )
+        {
+        TUid viewId = iView->Id();
+        if(viewId == TUid::Uid( ECamViewIdStillPreCapture )
+           || viewId == TUid::Uid( ECamViewIdVideoPreCapture ))
+           {
+           CCamViewBase* view = static_cast<CCamViewBase*>(iView);
+           CCamContainerBase* container = view->Container(); 
+           container->DrawNow();
+           }
+        }
+      
       
       }
     PRINT( _L("Camera TrySwitchViewL E") )
@@ -5657,6 +5669,44 @@
         }
     }
 
+// ---------------------------------------------------------
+// CCamAppUi::IsHeadsetConnected
+// Return whether headset is connected
+// ---------------------------------------------------------
+// 
+TBool CCamAppUi::IsHeadsetConnected() const
+    {
+    TBool connected( EFalse );
+    
+    TRAP_IGNORE(
+        {
+        CAccMonitor* monitor = CAccMonitor::NewLC();
+        RConnectedAccessories accessories;
+        CleanupClosePushL( accessories );
+          
+        TAccMonCapability device = KAccMonNoDevice;
+            
+        monitor->GetConnectedAccessoriesL( accessories );
+        TInt count = accessories.Count();
+           
+        // loop through connected accessories
+        for ( TInt i = 0; i != count; i++ )
+            {
+            device = accessories[i]->AccDeviceType();
+            // headset device type
+            if ( device == KAccMonHeadset )
+                {
+                connected = ETrue;
+                break;
+                }
+            }
+           
+        CleanupStack::PopAndDestroy( &accessories );
+        CleanupStack::PopAndDestroy( monitor );     
+        });
+                
+    return connected;
+    }
 
 // ---------------------------------------------------------------------------
 // CCamAppUi::HandleVolumeKeyEvent
@@ -5668,7 +5718,7 @@
     {
     PRINT2( _L("Camera => CCamAppUi::HandleVolumeKeyEvent op (%d) act (%d)"), aOperationId, aButtonAct )
     
-    if ( !iZoomUsingVolumeKeys )
+    if ( !iZoomUsingVolumeKeys || IsHeadsetConnected() )
         {
         PRINT( _L("Camera <= CCamAppUi::HandleVolumeKeyEvent NOT zooming with volume keys") )
         return;
--- a/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamCaptureSetupContainer.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -430,6 +430,11 @@
         PRINT ( _L("Camera <> CCamCaptureSetupContainer::HandlePointerEventL start viewfinder") );
         ReserveAndStartVF();
         }
+    else
+        {
+        PRINT ( _L("Camera <> CCamCaptureSetupContainer::HandlePointerEventL handle selected item") );
+        iCaptureSetupControl->HandlePointerEventL( aPointerEvent );
+        }
     
     /*if( iController.CurrentMode() == ECamControllerIdle || 
         iController.CurrentMode() == ECamControllerShutdown )
@@ -527,7 +532,7 @@
     	// container has some other control than listbox
     	CCoeControl::HandlePointerEventL( aPointerEvent );  
     	}*/
-	 iCaptureSetupControl->HandlePointerEventL( aPointerEvent );
+	 //iCaptureSetupControl->HandlePointerEventL( aPointerEvent );
     }
 
 // ---------------------------------------------------------
--- a/camerauis/cameraapp/generic/src/CamImageSaveActive.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamImageSaveActive.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -100,7 +100,6 @@
 
 #if defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
     DeRegisterHarverterClientEvents();
-    iHarvesterClient.Close();
 #endif // defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
 
     PRINT( _L("Camera <= ~CCamImageSaveActive") );
@@ -962,6 +961,8 @@
         {
         iHarvesterClient.RemoveObserver( this );
         iRegisteredForHarvesterEvents = EFalse;
+        iHarvesterClient.Close();
+        iHarvesterClientConnected = EFalse;
         }
     else
         {
--- a/camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamNaviCounterModel.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -1920,6 +1920,7 @@
         variant = 1; // landscape
         indicatorVariant = 0;
         }
+    TInt secCamera = ECamActiveCameraSecondary == iController.ActiveCamera();
 
     TAknLayoutRect camIndicatorPane;
     camIndicatorPane.LayoutRect( iExtent,
@@ -1929,7 +1930,7 @@
             AknLayoutScalable_Apps::cam4_indicators_pane_g2( indicatorVariant ) );
    
     iPhotoTextItem->SetLayoutL( camIndicatorPane.Rect(),
-                AknLayoutScalable_Apps::cam4_indicators_pane_t1( indicatorVariant ) );
+                AknLayoutScalable_Apps::cam4_indicators_pane_t1( secCamera ) );
 
     TAknLayoutRect vidIndicatorPane;
     vidIndicatorPane.LayoutRect( iExtent,
--- a/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamPreCaptureViewBase.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -413,8 +413,9 @@
       {
       PRINT( _L( "Camera <> CCamPreCaptureViewBase::HandleForegroundEventL: to background" ) );    
       // Not behind an eikon/avkon server window
+	  // or keylock on when camera needs to be released.
       TBool totalBackground = ETrue;
-      if ( iController.IsAppUiAvailable() )
+      if ( iController.IsAppUiAvailable() && !iController.IsKeyLockOn() )
           {
           totalBackground    = appUi->AppInBackground( EFalse );
           }
@@ -1272,7 +1273,18 @@
     // Hide the active palette
     static_cast<CCamAppUi*>( iEikonEnv->AppUi() )
         ->SetActivePaletteVisibility( EFalse );
-
+    
+    // Hide the toolbar in standby mode
+    if ( iController.IsTouchScreenSupported() )
+        {
+        CCamAppUi* appUi = static_cast<CCamAppUi*>( iEikonEnv->AppUi() );
+        CAknToolbar* fixedToolbar = appUi->CurrentFixedToolbar();
+        if ( fixedToolbar )
+            {
+            fixedToolbar->SetToolbarVisibility( EFalse );
+            }
+        }
+  
     // stop viewfinding
     StopViewFinder();
 
--- a/camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamStillPreCaptureContainer.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -40,7 +40,7 @@
 
 #include "camvfgridinterface.h"
 #include "camlinevfgriddrawer.h"
-#include "campanic.h"
+#include "CamPanic.h"
 
 // Constants
 const TUid KGridDrawerUid = { KCamLineDrawVfGridUid };
--- a/camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamStillUserSceneSetupView.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -74,7 +74,7 @@
 void CCamStillUserSceneSetupView::CreateContainerL()
     {
     iContainer = 
-        CCamUserSceneSetupContainer::NewL( AppUi()->ClientRect(),
+        CCamUserSceneSetupContainer::NewL( ClientRect(),
             R_CAM_PHOTO_USER_SCENE_SETUP_TITLE_NAME , iController, 
             *this );
     }
--- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureContainer.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -40,6 +40,7 @@
 #include <vgacamsettings.rsg>
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
+#include <touchfeedback.h>
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "CamVideoPreCaptureContainerTraces.h"
@@ -72,6 +73,10 @@
 CCamVideoPreCaptureContainer::~CCamVideoPreCaptureContainer()
   {
   PRINT( _L("Camera => ~CCamVideoPreCaptureContainer") );
+  if ( iFeedback )
+      {
+      iFeedback->RemoveFeedbackForControl( this );
+      }
   delete iFileTypeIndicator;
   PRINT( _L("Camera <= ~CCamVideoPreCaptureContainer") );
   }
@@ -136,6 +141,14 @@
         static_cast<CCamPreCaptureContainerBase*>( this )
             ->SetupActivePaletteL( static_cast<CCamViewBase*>(&iView) );
         }
+    
+    if ( iController.IsTouchScreenSupported() )
+        {
+        // Get pointer of touch feedback instance 
+        iFeedback = MTouchFeedback::Instance();
+        if ( !iFeedback )
+            iFeedback = MTouchFeedback::CreateInstanceL();
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -171,6 +184,10 @@
           {
           case ECamCapturing:
             {
+            if ( iController.IsTouchScreenSupported() && iFeedback )
+                {
+                iFeedback->EnableFeedbackForControl( this, EFalse );
+                }
             iRecordState = ECamRecording;
             iResolutionIndicators[iCurrentIndicator]->SetRect(iResolutionIndicatorVidcapPosition);
             break;
@@ -219,6 +236,10 @@
         {
         iResolutionIndicators[iCurrentIndicator]->SetRect( ResolutionIndicatorRect() );
         iFileTypeIndicator->SetRect( iFileTypeIndicatorPosition );
+        if ( iController.IsTouchScreenSupported() && iFeedback )
+            {
+            iFeedback->EnableFeedbackForControl( this, ETrue );
+            }
         break;
         }
     // ---------------------------------------------------
--- a/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamVideoPreCaptureView.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -258,6 +258,7 @@
       {
       PRINT( _L("Camera <> CCamVideoPreCaptureView::HandleCommandL: case ECamCmdExitStandby") );
       ExitStandbyModeL();
+      UpdateToolbarIconsL();
       break;
       }
     // ---------------------------------------------------
--- a/camerauis/cameraapp/generic/src/CamZoomModel.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/CamZoomModel.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -1221,7 +1221,15 @@
         
         case ECamZoomModeDigital:
             {
-            stepPeriod = iZoomLAF.iZoomSpeedDig * 1000;
+            if( iCameraState & ECamImageOn )
+                {    
+                stepPeriod = iZoomLAF.iZoomSpeedDig * 1000;
+                }
+            else
+                {
+                // use slower speed for videomode        
+                stepPeriod = iZoomLAF.iZoomSpeedDig * 2000;
+                }    
             break;        
             }
         
--- a/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/cameracontroller/camcameracontroller.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -95,8 +95,8 @@
 
 #include "CamAppUi.h"
 #include "CameraUiConfigManager.h"
-#include "CamViewBase.h"   
-#include "campanic.h"
+#include "CamViewBase.h"
+#include "CamPanic.h"
 // ===========================================================================
 // Local constants
 const TInt KIveRecoveryCountMax = 2;  
--- a/camerauis/cameraapp/generic/src/cameracontroller/camsettingprovider.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/generic/src/cameracontroller/camsettingprovider.cpp	Fri Feb 19 22:36:31 2010 +0200
@@ -123,14 +123,10 @@
       CheckNonNullL( ptr, KErrNotFound );
       TCamParamsImage& params( (*ptr)() );
       CCamAppUiBase* appUi = static_cast<CCamAppUiBase*>( CEikonEnv::Static()->AppUi() );
-      if ( appUi->ActiveCamera() == ECamActiveCameraSecondary )
-      	{
-      	params.iFormat = CCamera::EFormatJpeg;
-      	}
-      else // primary camera
-      	{
-      	params.iFormat = CCamera::EFormatExif;
-      	}
+      
+      // Both primary and secondary camera use Exif format
+      params.iFormat = CCamera::EFormatExif;  
+
       TCamPhotoSizeId PhotoSizeIndex = iSettingsModel->CurrentPhotoResolution();
       TSize PhotoSize = iSettingsModel->ImageResolutionFromIndex( PhotoSizeIndex );
       params.iSize     = PhotoSize;
@@ -227,7 +223,10 @@
         CCamera::TFormat viewfinderFormat =
             CCamSettingConversion::Map2CameraFormat( displayMode );
 
-        const TCamCameraMode cameraMode = iController.CurrentMode();
+        const TCamCameraMode cameraMode =
+        ( appUi->TargetMode() != ECamControllerIdle)
+            ? appUi->TargetMode()
+            : iController.CurrentMode();
         const TInt           resolution = (cameraMode == ECamControllerVideo)
                                         ? iController.GetCurrentVideoResolution()
                                         : iController.GetCurrentImageResolution();
Binary file camerauis/cameraapp/help/data/xhtml.zip has changed
--- a/camerauis/cameraapp/help/inc/lcam.hlp.hrh	Tue Feb 02 00:01:39 2010 +0200
+++ b/camerauis/cameraapp/help/inc/lcam.hlp.hrh	Fri Feb 19 22:36:31 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"