epoc32/include/ecamadvsettings.h
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
     1.1 --- a/epoc32/include/ecamadvsettings.h	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ b/epoc32/include/ecamadvsettings.h	Wed Mar 31 12:33:34 2010 +0100
     1.3 @@ -1,9 +1,9 @@
     1.4  // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5  // All rights reserved.
     1.6  // This component and the accompanying materials are made available
     1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 +// under the terms of "Eclipse Public License v1.0"
     1.9  // which accompanies this distribution, and is available
    1.10 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.11 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.12  //
    1.13  // Initial Contributors:
    1.14  // Nokia Corporation - initial contribution.
    1.15 @@ -13,8 +13,6 @@
    1.16  // Description:
    1.17  //
    1.18  
    1.19 -
    1.20 -
    1.21  /**
    1.22   @file	
    1.23   @publishedAll
    1.24 @@ -30,6 +28,10 @@
    1.25  #include <s32strm.h>
    1.26  #include <ecam/ecamconstants.h>
    1.27  #include <ecamimageprocessing.h>
    1.28 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
    1.29 +#include <ecamadvsettingsconst.h>
    1.30 +#include <ecamadvsettingsdef.h>
    1.31 +#endif
    1.32  
    1.33  class MCameraPresets;
    1.34  class MCameraAdvancedSettings;
    1.35 @@ -37,26 +39,21 @@
    1.36  class MCameraAdvancedSettings3;
    1.37  class MCameraAdvancedSettings4;
    1.38  class MCameraPresets2;
    1.39 +class MCameraContinuousZoom;
    1.40  
    1.41  /* General purpose constants */
    1.42  
    1.43 -/** 
    1.44 -The current Version of the TECamLEDSpecialEffectStep class.
    1.45  
    1.46 -@internalTechnology
    1.47 -*/
    1.48 -static const TUint KECamLEDSpecialEffectStepCurrentVersion = 1;
    1.49 -
    1.50 -/** 
    1.51 +/**
    1.52  	UID used to identify the CCamera Advanced Settings API.
    1.53  	This API is used to control specific individual advanced settings of camera hardware.
    1.54  	These settings directly relate to the image acquisition phase.
    1.55 -	
    1.56 +
    1.57  	@see CCamera::CCameraAdvancedSettings
    1.58  */
    1.59  static const TUid KECamAdvancedSettingUid 	= {KECamAdvancedSettingUidValue};
    1.60  
    1.61 -/** 
    1.62 +/**
    1.63  	UID used to identify the CCamera Presets API.
    1.64  	This API is used to simplify user - camera interaction by allowing simultaneous 
    1.65  	setting of various advanced camera hardware settings using a single predefined parameter. 
    1.66 @@ -64,7 +61,6 @@
    1.67  */
    1.68  static const TUid  KECamPresetsUid 			= {KECamPresetsUidValue};
    1.69  
    1.70 -	
    1.71  /** All clients receive these events, irrespective of camera index.  */
    1.72  /** Camera slots in for 8 cameras. */
    1.73  /** Camera with index 0 Plugged-in */
    1.74 @@ -300,103 +296,71 @@
    1.75  */
    1.76  static const TUid  KUidECamEventCameraSettingAFAssistantLight	= {KUidECamEventCameraSettingAFAssistantLightUidValue};
    1.77  
    1.78 -/**
    1.79 -Notifies the client that continuous zoom limit has been reached.
    1.80  
    1.81 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
    1.82 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
    1.83 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
    1.84 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
    1.85  
    1.86 -@publishedPartner
    1.87 -@prototype
    1.88 -*/
    1.89 -static const TUid KUidECamEventCameraSettingContinuousZoomReachedLimit = {KUidECamEventCameraSettingContinuousZoomReachedLimitUidValue};
    1.90 +class CCameraContinuousZoom;
    1.91 +/**	
    1.92 +A mixin class to be implemented by the client in order to use the Continuous Zoom API. The callbacks are invoked by the implementation
    1.93 +whenever the continuous zoom operations are ready to be notified.
    1.94  
    1.95 -/**
    1.96 -Notifies the client about the setting of performance operation preference.
    1.97 -
    1.98 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
    1.99 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.100 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.101 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.102 -
   1.103 -@publishedPartner
   1.104 -@prototype
   1.105 -*/
   1.106 -static const TUid KUidECamEventCameraSettingOperationPreference = {KUidECamEventCameraSettingOperationPreferenceUidValue};
   1.107 -
   1.108 -/**
   1.109 -Notifies the client that the flicker removal value has been set.
   1.110 -
   1.111 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.112 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.113 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.114 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.115 +@see CCameraContinuousZoom
   1.116  
   1.117  @internalTechnology
   1.118 -*/
   1.119 -static const TUid KUidECamEventCameraSettingFlickerRemovalValue = {KUidECamEventCameraSettingFlickerRemovalValueUidValue};
   1.120 +@prototype
   1.121 +*/	
   1.122 +class MContinuousZoomObserver
   1.123 +	{	
   1.124 +public:
   1.125 +	
   1.126 +	/**
   1.127 +	This callback is sent when a new zoom factor is achieved. Client may not receive a callback for every new zoom factor as it is up
   1.128 +	to the implementation to choose the zoom factors for which it will issue this callback. Should an error occur, this implies that the
   1.129 +	continuous zoom operation has been stopped.
   1.130  
   1.131 -/**
   1.132 -Notifies the client about the setting of neutral density filter.
   1.133 +	@param  aContinuousZoomHandle
   1.134 +			Reference to CCameraContinuousZoom class object which was used to start the continuous zoom operation.
   1.135  
   1.136 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.137 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.138 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.139 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.140 +	@param  aZoomFactor
   1.141 +		    The new zoom factor value, multiplied by KECamFineResolutionFactor, which has been achieved.
   1.142  
   1.143 -@internalTechnology
   1.144 -*/
   1.145 -static const TUid KUidECamEventCameraSettingNDFilter = {KUidECamEventCameraSettingNDFilterUidValue};
   1.146 +	@param  aError
   1.147 +			Appropriate error code.
   1.148 +	*/
   1.149 +	virtual void ContinuousZoomProgress(CCamera::CCameraContinuousZoom& aContinuousZoomHandle, TInt aZoomFactor, TInt aError)=0;
   1.150  
   1.151 -/**
   1.152 -Notifies the client about the setting of LED effect.
   1.153 +	/**
   1.154 +	Implementation sends this callback when the Continuous Zoom operation has been completed. This callback will be sent when
   1.155 +	target zoom factor is achieved. This zoom factor may in some cases be less than the target zoom factor due to the complexity
   1.156 +	of the continuous zoom operation. Once this callback is received, client need not issue StopContinuousZoom() and can call
   1.157 +	StartContinuousZoom() again.
   1.158  
   1.159 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.160 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.161 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.162 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.163 +	@param  aContinuousZoomHandle
   1.164 +			Reference to CCameraContinuousZoom class object which was used to start the continuous zoom operation.
   1.165  
   1.166 -@internalTechnology
   1.167 -*/
   1.168 -static const TUid KUidECamEventCameraSettingLEDEffect = {KUidECamEventCameraSettingLEDEffectUidValue};
   1.169 +	@param  aFinalZoomFactor
   1.170 +			The final zoom factor value once the continuous zoom operation has completed. This zoom factor may in some cases be
   1.171 +			less than the target zoom factor due to the complexity of the continuous zoom operation.
   1.172  
   1.173 -/**
   1.174 -Notifies the client about the setting of LED 'custom' effect.
   1.175 +	@param  aErrorCode
   1.176 +			Appropriate error code.
   1.177 +	*/
   1.178 +	virtual void ContinuousZoomCompleted(CCamera::CCameraContinuousZoom& aContinuousZoomHandle, TInt aFinalZoomFactor, TInt aError)=0;
   1.179  
   1.180 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.181 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.182 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.183 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.184 +	/**
   1.185 +	Gets a custom interface for future callbacks. This method will be called by the implementation to get a new interface
   1.186 +	which would support future callbacks.
   1.187  
   1.188 -@internalTechnology
   1.189 -*/
   1.190 -static const TUid KUidECamEventCameraSettingLEDCustomEffect = {KUidECamEventCameraSettingLEDCustomEffectUidValue};
   1.191 +	@param  aInterface
   1.192 +		    The Uid of the particular interface function required for callbacks.
   1.193 +		   
   1.194 +	@param  aPtrInterface
   1.195 +		    The implementation has to type-cast the retrieved custom interface pointer to the appropriate type.	
   1.196  
   1.197 -/**
   1.198 -Notifies the client about the white balance lock setting.
   1.199 +	@return The error code.
   1.200 +	*/
   1.201 +	virtual TInt CustomInterface(TUid aInterface, TAny*& aPtrInterface)=0;
   1.202 +	};
   1.203  
   1.204 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.205 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.206 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.207 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.208 -
   1.209 -@internalTechnology
   1.210 -*/
   1.211 -static const TUid KUidECamEventCameraSettingLockWhiteBalance = {KUidECamEventCameraSettingLockWhiteBalanceUidValue};
   1.212 -
   1.213 -/**
   1.214 -Instructs the client to restore its original priority.
   1.215 -
   1.216 -This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L():
   1.217 -void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const;
   1.218 -void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
   1.219 -void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const;
   1.220 -
   1.221 -@internalTechnology
   1.222 -*/
   1.223 -static const TUid KUidECamEventCameraSettingRestoreClientPriority = {KUidECamEventCameraSettingRestoreClientPriorityUidValue};
   1.224  
   1.225  /** 
   1.226  CCamera advanced settings class exposes an API for controlling individually 
   1.227 @@ -566,21 +530,33 @@
   1.228  	enum TDriveMode
   1.229  		{
   1.230  		/** Automatic. Default */
   1.231 -		EDriveModeAuto			= 0x0000,
   1.232 +		EDriveModeAuto				= 0x0000,
   1.233  		/** Camera takes a single image/shot. */	
   1.234 -		EDriveModeSingleShot	= 0x0001,
   1.235 +		EDriveModeSingleShot		= 0x0001,
   1.236  		/** Camera continuously captures images (as fast as it can) until stopped or out of storage medium. */	
   1.237 -		EDriveModeContinuous	= 0x0002,
   1.238 +		EDriveModeContinuous		= 0x0002,
   1.239  		/** Camera is in bracketing mode, producing individual frames. @see TBracketMode */	
   1.240 -		EDriveModeBracket		= 0x0004,
   1.241 +		EDriveModeBracket			= 0x0004,
   1.242  		/** Camera is in bracketing mode, but producing a single image. @see TBracketMode */	
   1.243 -		EDriveModeBracketMerge	= 0x0008,
   1.244 +		EDriveModeBracketMerge		= 0x0008,
   1.245  		/** camera captures a single shot after specified time period. @see Timer() */	
   1.246 -		EDriveModeTimed			= 0x0010,
   1.247 +		EDriveModeTimed				= 0x0010,
   1.248  		/** Camera captures a set of images with an uniform interval between them. @see TimeLapse() */	
   1.249 -		EDriveModeTimeLapse		= 0x0020,
   1.250 +		EDriveModeTimeLapse			= 0x0020,
   1.251  		/** Camera captures a set of images as fast as it can, but in batches(bursts). */	
   1.252 -		EDriveModeBurst			= 0x0040		
   1.253 +		EDriveModeBurst				= 0x0040,
   1.254 +		/** Camera captures a set of images before and after camera capture key press event. Client can specify
   1.255 +		the amount of pre-capture and post-capture images to be saved via TDriveModeDependentAttributes.
   1.256 +		The total amount of images to be saved will be pre-capture images + 1 + post-capture images.
   1.257 +
   1.258 +		@note This drive mode is only available to clients using the CCamera::New2L() or CCamera::NewDuplicate2L()
   1.259 +			  in addition to the new image capture APIs ie. CCameraPreImageCaptureControl, CCameraImageCapture and
   1.260 +			  CCameraPostImageCaptureControl.
   1.261 +
   1.262 +		@publishedPartner
   1.263 +		@prototype
   1.264 +		*/
   1.265 +		EDriveModeTimeNudgeCapture	= 0x0080
   1.266  		};
   1.267  
   1.268  	/** Specifies Bracket mode. */				
   1.269 @@ -1007,6 +983,80 @@
   1.270  		TTimeIntervalMicroSeconds32 iDuration;
   1.271  	};
   1.272  
   1.273 +	/**
   1.274 +	Class used to provide supported continuous zoom information.
   1.275 +	
   1.276 +	@internalTechnology
   1.277 +	@prototype
   1.278 +	*/
   1.279 +	class TContinuousZoomSupportInfo
   1.280 +		{
   1.281 +	public:
   1.282 +		IMPORT_C TContinuousZoomSupportInfo();
   1.283 +
   1.284 +		IMPORT_C TUint Size() const;
   1.285 +		IMPORT_C TUint Version() const;
   1.286 +
   1.287 +	private:
   1.288 +		//for future expansion
   1.289 +		TUint iSize:24;
   1.290 +		TUint iVersion:8;
   1.291 +
   1.292 +		// reserved for future expansion
   1.293 +		TInt iReserved1;
   1.294 +		TInt iReserved2;
   1.295 +		TInt iReserved3;
   1.296 +
   1.297 +	public:
   1.298 +		/** Maximum continuous zoom speed supported. Minimum speed is 0. */
   1.299 +		TInt iMaxSpeedSupported;
   1.300 +		/**  Minimum continuous zoom acceleration supported. A negative value signifies deceleration. */
   1.301 +		TInt iMinAccelerationSupported;
   1.302 +		/**  Maximum continuous zoom acceleration supported. */
   1.303 +		TInt iMaxAccelerationSupported;
   1.304 +		/** Minimum continuous zoom value. For digital zoom, this could be 0 unless viewfinder frames are not cropped and scaled up by default.
   1.305 +		Represented as a concrete value multiplied by KECamFineResolutionFactor. */
   1.306 +		TInt iContinuousZoomMinLimit;
   1.307 +		/** Maximum continuous zoom value. Represented as a concrete value multiplied by KECamFineResolutionFactor. */
   1.308 +		TInt iContinuousZoomMaxLimit;
   1.309 +		};
   1.310 +
   1.311 +	/**
   1.312 +	Class used to provide essential parameters for continuous zoom operation.
   1.313 +	
   1.314 +	@internalTechnology
   1.315 +	@prototype
   1.316 +	*/
   1.317 +	class TContinuousZoomParameters
   1.318 +		{
   1.319 +	public:
   1.320 +		IMPORT_C TContinuousZoomParameters();
   1.321 +
   1.322 +		IMPORT_C TUint Size() const;
   1.323 +		IMPORT_C TUint Version() const;
   1.324 +
   1.325 +	private:
   1.326 +		//for future expansion
   1.327 +		TUint iSize:24;
   1.328 +		TUint iVersion:8;
   1.329 +
   1.330 +		// reserved for future expansion
   1.331 +		TInt iReserved1;
   1.332 +		TInt iReserved2;
   1.333 +		TInt iReserved3;
   1.334 +
   1.335 +	public:
   1.336 +		/** Type of continuous zoom to be used. */
   1.337 +		TContinuousZoomType iContinuousZoomType;
   1.338 +		/**  Zoom direction to be used. */
   1.339 +		TZoomDirection iZoomDirection;
   1.340 +		/**  Continuous zoom speed to be used. Represented as a concrete value multiplied by KECamFineResolutionFactor. */
   1.341 +		TInt iContinuousZoomSpeed;
   1.342 +		/** Continuous zoom acceleration to be used. Represented as a concrete value multiplied by KECamFineResolutionFactor. */
   1.343 +		TInt iContinuousZoomAcceleration;
   1.344 +		/** Limit of continuous zoom range. Represented as a concrete value multiplied by KECamFineResolutionFactor. */
   1.345 +		TInt iContinuousZoomLimit;
   1.346 +		};
   1.347  
   1.348  public:
   1.349  
   1.350 @@ -1307,10 +1357,6 @@
   1.351  	IMPORT_C void SetAFAssistantLightL(TAFAssistantLight aAFAssistantLight); 
   1.352  	
   1.353  	IMPORT_C void GetSupportedContinuousZoomTypeL(TUint& aSupportedContinuousZoomType) const;
   1.354 -
   1.355 -	IMPORT_C void StartContinuousZoomL(TContinuousZoomType aContinuousZoomType, TZoomDirection aZoomDirection);
   1.356 -
   1.357 -	IMPORT_C void StopContinuousZoom();
   1.358  	
   1.359  	IMPORT_C void GetFocalLengthInfoL(TInt& aMinFocalLength, TInt& aCurrentFocalLength, TInt& aMaxFocalLength) const;
   1.360  	
   1.361 @@ -1328,11 +1374,21 @@
   1.362  	
   1.363  	IMPORT_C void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const;
   1.364  	
   1.365 +	IMPORT_C void CreateContinuousZoomL(MContinuousZoomObserver& aObserver, TContinuousZoomType aContinuousZoomType, CCameraContinuousZoom*& aContinuousZoom);
   1.366 +
   1.367  private:
   1.368  	IMPORT_C CCameraAdvancedSettings(CCamera& aOwner);
   1.369  	IMPORT_C void ConstructL();
   1.370  	
   1.371  private:
   1.372 +	enum TECAMEventFilterScheme
   1.373 +		{
   1.374 +		/** Black listing will mean not to receive specific events */
   1.375 +		EECAMEventFilterSchemeBlackList, 
   1.376 +		/** White listing will mean to receive only specific events */
   1.377 +		EECAMEventFilterSchemeWhiteList
   1.378 +		};
   1.379 +
   1.380  	void RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents);
   1.381  	void GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents, TValueInfo& aInfo) const;
   1.382  	
   1.383 @@ -1489,73 +1545,6 @@
   1.384  
   1.385  */
   1.386  static const TUid  KUidECamPresetAmbienceMood		= {KUidECamPresetAmbienceMoodUidValue};
   1.387 -/** 
   1.388 -Used to for video telephony.
   1.389 -
   1.390 -This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or 
   1.391 -CCamera::NewDuplicate2L().
   1.392 -
   1.393 -@publishedPartner
   1.394 -@prototype
   1.395 -*/
   1.396 -static const TUid  KUidECamPresetVideoTelephony		= {KUidECamPresetVideoTelephonyUidValue};
   1.397 -
   1.398 -/** 
   1.399 -Used to clarify that camera is not under any preset mode. Possible scenario: client sets camera in a particular preset 
   1.400 -mode and then makes some setting changes on top of it. Then theoretically camera is out of that preset. Hence, 
   1.401 -KUidECamPresetNone will be used in such cases.
   1.402 -
   1.403 -This uid value is available from the 'supported' or 'getter' methods only to the API clients using CCamera::New2L() or 
   1.404 -CCamera::NewDuplicate2L().
   1.405 -
   1.406 -@publishedPartner
   1.407 -@prototype
   1.408 -*/
   1.409 -static const TUid  KUidECamPresetNone		= {KUidECamPresetNoneUidValue};
   1.410 - 
   1.411 -/** Notifications related to presets */
   1.412 -/**
   1.413 -Used to notify clients about possible range restrictions, when camera works under a particular preset mode.
   1.414 -This is not a particular preset uid.
   1.415 -
   1.416 -@note   Call CCamera::CCameraPresets::GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) to retrieve 
   1.417 -		the list of settings whose range have been restricted.
   1.418 -
   1.419 -@publishedPartner
   1.420 -@prototype
   1.421 -*/
   1.422 -static const TUid  KUidECamEventRangeRestricted  = {KUidECamEventRangeRestrictedUidValue};
   1.423 -
   1.424 -/**
   1.425 -Used to notify clients about possible feature restrictions, when camera works under a particular preset mode.
   1.426 -This is not a particular preset uid.
   1.427 -
   1.428 -@note   Call CCamera::CCameraPresets::GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) to retrieve 
   1.429 -		the list of settings which have been restricted.
   1.430 -
   1.431 -@publishedPartner
   1.432 -@prototype
   1.433 -*/
   1.434 -static const TUid  KUidECamEventFeatureRestricted  = {KUidECamEventFeatureRestrictedUidValue};
   1.435 -
   1.436 -/**
   1.437 -Used to notify clients that locking of the preset operation has completed, when camera works under a particular preset mode.
   1.438 -This is not a particular preset uid.
   1.439 -
   1.440 -@publishedPartner
   1.441 -@prototype
   1.442 -*/
   1.443 -static const TUid  KUidECamEventPresetLocked  = {KUidECamEventPresetLockedUidValue};
   1.444 -
   1.445 -/**
   1.446 -Used to notify clients that unlocking of the preset operation has completed, when camera works under a particular preset mode.
   1.447 -This is not a particular preset uid.
   1.448 -
   1.449 -@publishedPartner
   1.450 -@prototype
   1.451 -*/
   1.452 -static const TUid  KUidECamEventPresetUnlocked  = {KUidECamEventPresetUnlockedUidValue};
   1.453 - 
   1.454   
   1.455  /**
   1.456  This API is used to simplify user - camera interaction by allowing simultaneous
   1.457 @@ -1618,5 +1607,49 @@
   1.458      MCameraPresets* iImpl;  // not owned
   1.459      MCameraPresets2* iImpl2;  // not owned
   1.460  	};
   1.461 -	
   1.462 +
   1.463 +
   1.464 +/**
   1.465 +This API is used to provide advanced continuous zoom support to the user.
   1.466 +
   1.467 +This class is not directly created by the client but instead created via 
   1.468 +CCameraAdvancedSettings::CreateContinuousZoomL(). Ownership of the object
   1.469 +is passed back to the client.
   1.470 +
   1.471 +@note  This class is not intended for sub-classing and used to standardise existing
   1.472 +       varieties of implementations.
   1.473 +      
   1.474 +@note  If the class methods leave, the output type parameter value is not guaranteed to be valid.
   1.475 +
   1.476 +@internalTechnology
   1.477 +@prototype
   1.478 +*/
   1.479 +class CCamera::CCameraContinuousZoom : public CBase
   1.480 +	{
   1.481 +	friend void CCamera::CCameraAdvancedSettings::CreateContinuousZoomL(MContinuousZoomObserver& aObserver, TContinuousZoomType aContinuousZoomType, CCameraContinuousZoom*& aContinuousZoom);
   1.482 +
   1.483 +public:
   1.484 +	IMPORT_C void StartContinuousZoomL(CCamera::CCameraAdvancedSettings::TContinuousZoomParameters aContinuousZoomParameters);
   1.485 +
   1.486 +	IMPORT_C void StopContinuousZoom();
   1.487 +
   1.488 +	IMPORT_C void GetContinuousZoomSupportInfoL(CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo& aContinuousZoomInfo) const;
   1.489 +
   1.490 +	IMPORT_C void GetContinuousZoomId(TInt& aZoomId) const;
   1.491 +
   1.492 +	IMPORT_C ~CCameraContinuousZoom();
   1.493 +
   1.494 +private:
   1.495 +	static CCameraContinuousZoom* CreateL(MContinuousZoomObserver& aObserver, CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType, const MImplementationFactory& aImplFactory);
   1.496 +
   1.497 +	CCameraContinuousZoom();
   1.498 +	void ConstructL(MContinuousZoomObserver& aObserver, CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType, const MImplementationFactory& aImplFactory);
   1.499 +
   1.500 +private:
   1.501 +	MCameraContinuousZoom*		iImpl;
   1.502 +	};
   1.503 +
   1.504  #endif // ECAMADVSETTINGS_H
   1.505 +
   1.506 +
   1.507 +