os/mm/imagingandcamerafws/camerafw/Include/ECam/ecamviewfinderintf.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/imagingandcamerafws/camerafw/Include/ECam/ecamviewfinderintf.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,525 @@
     1.4 +// Copyright (c) 2007-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 "Eclipse Public License v1.0"
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +//
    1.18 +
    1.19 +/**
    1.20 + @file
    1.21 + @publishedPartner
    1.22 + @prototype
    1.23 +*/
    1.24 +
    1.25 +#ifndef  ECAMVIEWFINDERINTF_H
    1.26 +#define  ECAMVIEWFINDERINTF_H
    1.27 +
    1.28 +#include <ecamviewfinder.h>
    1.29 +#include <ecam/ecamadvsettingsintfuids.hrh>
    1.30 +
    1.31 +class MImplementationFactory;
    1.32 +
    1.33 +/** This is the UID which is used to obtain the interface MCameraV2DirectViewFinder, via the 
    1.34 +CCamera::CustomInterface() call. */   
    1.35 +static const TUid KECamMCameraV2DirectViewFinderUid 		=  {KECamMCameraV2DirectViewFinderUidValue};
    1.36 +
    1.37 +/** This is the UID which is used to obtain the interface MCameraClientViewFinder, via the 
    1.38 +CCamera::CustomInterface() call. */   
    1.39 +static const TUid KECamMCameraClientViewFinderUid 			=  {KECamMCameraClientViewFinderUidValue};
    1.40 +
    1.41 +/** This is the UID which is used to obtain the interface MCameraViewFinder for v2 direct viewfinder, via the 
    1.42 +CCamera::CustomInterface() call. */   
    1.43 +static const TUid KECamMCameraBaseV2DirectViewFinderUid		=  {KECamMCameraBaseV2DirectViewFinderUidValue};
    1.44 +
    1.45 +/** This is the UID which is used to obtain the interface MCameraViewFinder for client viewfinder, via the 
    1.46 +CCamera::CustomInterface() call. */   
    1.47 +static const TUid KECamMCameraBaseClientViewFinderUid 		=  {KECamMCameraBaseClientViewFinderUidValue};
    1.48 +
    1.49 +/** 
    1.50 +This is the UID which is used to obtain the MCameraDirectSnapshot interface, 
    1.51 +via a call to CCamera::CustomInterface(), which provides implementation of the M-class interface. 
    1.52 +
    1.53 +@see KECamMCameraDirectSnapshotUidValue
    1.54 +
    1.55 +@publishedPartner
    1.56 +@prototype
    1.57 +*/   
    1.58 +static const TUid KECamMCameraDirectSnapshotUid = {KECamMCameraDirectSnapshotUidValue};
    1.59 +
    1.60 +/** Mixin class for implementation of viewfinder methods common to both client and direct viewfinder. These methods will 
    1.61 +	be called in the context of either client viewfinder or direct viewfinder.
    1.62 +*/	
    1.63 +class MCameraViewFinder
    1.64 +	{
    1.65 +
    1.66 +public:
    1.67 +	/** 
    1.68 +	Releases the interface. 
    1.69 +	*/
    1.70 +	virtual void Release()=0;
    1.71 +	
    1.72 +	/**
    1.73 +	Retrieves the fading capabilites for a particular viewfinder.
    1.74 +	
    1.75 +	@param  aVFFadingCapabilities
    1.76 +			Retrieves the fading capabilities associated with the given viewfinder.
    1.77 +			
    1.78 +	@leave  May leave with any error code.
    1.79 +	
    1.80 +	@internalTechnology
    1.81 +	*/
    1.82 +	virtual void GetViewFinderFadingCapabilitiesL(CCameraViewFinder::TViewFinderFadingCapabilities& aVFFadingCapabilities) const=0;
    1.83 +	
    1.84 +	/**
    1.85 +	Retrieves the current fading effect/control being used for a particular viewfinder.
    1.86 +	
    1.87 +	@param  aCurrentVFFadingEffect
    1.88 +			Retrieves the fading effects associated with the given viewfinder.
    1.89 +
    1.90 +	@leave  May leave with any error code.
    1.91 +	
    1.92 +	@internalTechnology
    1.93 +	*/
    1.94 +	virtual void GetViewFinderFadingEffectL(CCameraViewFinder::TViewFinderFadingEffect& aCurrentVFFadingEffect) const=0;
    1.95 +	
    1.96 +	/**
    1.97 +	Sets the fading effect/control for a particular viewfinder.
    1.98 +	
    1.99 +	@param  aVFFadingEffect
   1.100 +			The desired fading effects associated with the given viewfinder.
   1.101 +	
   1.102 +	@note   Event KUidECamEvent2ViewFinderFadingEffect is used to notify the requesting client about setting of the 
   1.103 +			fading effect.
   1.104 +			
   1.105 +	@internalTechnology
   1.106 +	*/
   1.107 +	virtual void SetViewFinderFadingEffect(const CCameraViewFinder::TViewFinderFadingEffect& aVFFadingEffect)=0;
   1.108 +	
   1.109 +	/**
   1.110 +	Retrieves the handle number which represents the given viewfinder object. 
   1.111 +
   1.112 +	@param  aVFHandle
   1.113 +			The viewfinder handle
   1.114 +			
   1.115 +	@leave  May leave with any error code.
   1.116 +
   1.117 +	@note   KECamDefaultViewFinderHandle is used to refer to the viewfinder started using CCamera methods. 
   1.118 +	*/
   1.119 +	virtual void GetViewFinderHandleL(TInt& aVFHandle) const=0;
   1.120 +	};
   1.121 +
   1.122 +/** 
   1.123 +Mixin class for implementation of CCameraV2DirectViewFinder methods.
   1.124 +*/
   1.125 +class MCameraV2DirectViewFinder
   1.126 +	{
   1.127 +
   1.128 +public:
   1.129 +	
   1.130 +	/** 
   1.131 +	Releases the interface. 
   1.132 +	
   1.133 +	@param  aDirectViewFinderHandle
   1.134 +			The pointer to the direct viewfinder class object which would be destroyed by the client.
   1.135 +	*/
   1.136 +	virtual void Release(CCamera::CCameraV2DirectViewFinder* aDirectViewFinderHandle)=0;
   1.137 +	
   1.138 +	/**
   1.139 +	Retrieves the concrete factory handle for the histogram implementation in order to 
   1.140 +	use it specifically for a particular viewfinder.
   1.141 +		   
   1.142 +	@param aImplFactoryPtr
   1.143 +		   The concrete factory handle for the histogram implementation specific to the given view finder.
   1.144 +		   
   1.145 +	@leave  May leave with any error code.
   1.146 +	*/
   1.147 +	virtual void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const=0;
   1.148 +
   1.149 +	/**
   1.150 +	Retrieves the concrete factory handle for the image processing implementation in order to 
   1.151 +	use it specifically for a particular viewfinder.
   1.152 +		   
   1.153 +	@param aImplFactoryPtr
   1.154 +		   The concrete factory handle for the image processing implementation specific to the given view finder.
   1.155 +		   
   1.156 +	@leave  May leave with any error code.
   1.157 +	*/
   1.158 +	virtual void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const=0;
   1.159 +	
   1.160 +	/**
   1.161 +	Provides the interface pointers for the concrete implementation of CCameraDirectSnapshot.
   1.162 +	
   1.163 +	@param aInterface
   1.164 +		   Interface uid for a particular M-class of direct snapshot.
   1.165 +	
   1.166 +	@return Interface pointer. 
   1.167 +	*/
   1.168 +	virtual TAny* GetDirectSnapshotImpl(TUid aInterface) const=0; 
   1.169 +	
   1.170 +	/**
   1.171 +	The observer for the direct view finder is passed to the implementation for passing callbacks on it.
   1.172 +	
   1.173 +	@param  aDirectViewFinderObserver
   1.174 +			The reference to the direct view finder observer.
   1.175 +	*/
   1.176 +	virtual void SetDirectViewFinderObserver(MDirectViewFinderObserver& aDirectViewFinderObserver)=0;	
   1.177 +	
   1.178 +	/**
   1.179 +	The pointer to the client view finder class used to pass back to the client via observer callbacks. Implementation is 
   1.180 +	not	supposed to destroy this object.
   1.181 +	
   1.182 +	@param  aDirectViewFinderHandle
   1.183 +			The pointer to the direct view finder class object.
   1.184 +			
   1.185 +	@see    MDirectViewFinderObserver
   1.186 +	*/
   1.187 +	virtual void SetDirectViewFinderHandle(CCamera::CCameraV2DirectViewFinder* aDirectViewFinderHandle)=0;
   1.188 +	
   1.189 +	/** 
   1.190 +	Creates a new viewfinder and starts transfer of view finder data to the given portion of the screen using direct 
   1.191 +	screen access.
   1.192 +
   1.193 +	The aScreenRect parameter is in screen coordinates and may be modified if,
   1.194 +	for example, the camera requires the destination to have a certain byte alignment, and so on.
   1.195 +
   1.196 +	@param  aWs 
   1.197 +	        Window server session.
   1.198 +	@param  aScreenDevice 
   1.199 +	        Screen device.
   1.200 +	@param  aWindow 
   1.201 +	        Displayable window.
   1.202 +	@param  aScreenRect 
   1.203 +	        Portion of the screen to which view finder data is to be
   1.204 +	        transferred. This is in screen co-ordinates and may be modified if, for example,
   1.205 +	        the camera requires the destination to have a certain byte alignment.
   1.206 +
   1.207 +	@leave  KErrInUse if another direct viewfinder is running with the same set of window parameters. May leave with any other error code.
   1.208 +	
   1.209 +	@note   MDirectViewFinderObserver::DirectViewFinderFirstFrameDisplayed() will be used to notify clients that the first
   1.210 +			frame has been displayed.
   1.211 +	*/
   1.212 +	virtual void StartViewFinderDirectL(RWsSession& aWs, CWsScreenDevice& aScreenDevice, RWindowBase& aWindow, TRect& aScreenRect)=0;
   1.213 +	
   1.214 +	/** 
   1.215 +	Creates a new viewfinder and starts transfer of view finder data to the given portion of the screen using direct screen
   1.216 +	access and also clips to the specified portion of the screen.
   1.217 +
   1.218 +	The view finder has the same size and position as aScreenRect but is only
   1.219 +	visible in the intersection of aScreenRect and aClipRect. May leave with KErrNotSupported
   1.220 +	or KErrNotReady if Reserve() has not been called, or has not yet completed.
   1.221 +
   1.222 +	@param  aWs 
   1.223 +	        Window server session.
   1.224 +	@param  aScreenDevice 
   1.225 +	        Screen device.
   1.226 +	@param  aWindow 
   1.227 +	        Displayable window.
   1.228 +	@param  aScreenRect 
   1.229 +	        Portion of the screen to which view finder data is to be
   1.230 +	        transferred. This is in screen coordinates and may be modified if, for example,
   1.231 +	        the camera requires the destination to have a certain byte alignment.
   1.232 +	@param  aClipRect
   1.233 +	        The rectangle to which the screen will be clipped.
   1.234 +
   1.235 +	@leave  KErrInUse if another direct viewfinder is running with the same set of window parameters. May leave with any other error code.
   1.236 +	
   1.237 +	@note   MDirectViewFinderObserver::DirectViewFinderFirstFrameDisplayed() will be used to notify clients that the first
   1.238 +			frame has been displayed.
   1.239 +	*/									
   1.240 +	virtual void StartViewFinderDirectL(RWsSession& aWs, CWsScreenDevice& aScreenDevice,
   1.241 +											RWindowBase& aWindow, TRect& aScreenRect, TRect& aClipRect)=0;
   1.242 +	
   1.243 +	/**
   1.244 +	Retrieves the parameters associated with the direct viewfinder.
   1.245 +	
   1.246 +	@param  aScreenNumber
   1.247 +			Retrieves the screen number on which the direct viewfinder is supposed to run.
   1.248 +			
   1.249 +	@param  aScreenRect
   1.250 +			Retrieves the TRect which identifies the portion of the screen to which view finder data is to be transferred.
   1.251 +	
   1.252 +	@param  aClipRect
   1.253 +			Retrieves the TRect which identifies the rectangle to which the screen will be clipped.
   1.254 +			
   1.255 +	@leave  May leave with any error code.
   1.256 +	*/
   1.257 +	virtual void GetDirectViewFinderPropertiesL(TInt& aScreenNumber, TRect& aScreenRect, TRect& aClipRect) const=0;
   1.258 +	
   1.259 +	/**
   1.260 +	Pauses the direct viewfinder.
   1.261 +	*/
   1.262 +	virtual void PauseViewFinderDirect()=0;
   1.263 +	
   1.264 +	/**
   1.265 +	Resumes the direct viewfinder
   1.266 +	
   1.267 +	@note   MDirectViewFinderObserver::DirectViewFinderFirstFrameDisplayed() will be used to notify clients that the first
   1.268 +			frame has been displayed.
   1.269 +	*/
   1.270 +	virtual void ResumeViewFinderDirect()=0;
   1.271 +	
   1.272 +	/**
   1.273 +	Retrieves the state of the direct viewfinder.
   1.274 +	
   1.275 +	@param  aViewFinderState
   1.276 +			Retrieves the state of the direct viewfinder.
   1.277 +			
   1.278 +	@leave  May leave with any error code.
   1.279 +	*/
   1.280 +	virtual void GetViewFinderStateL(CCamera::CCameraV2DirectViewFinder::TViewFinderState& aViewFinderState) const=0;
   1.281 +	
   1.282 +	/**
   1.283 +	Stops the direct viewfinder.
   1.284 +	*/
   1.285 +	virtual void StopDirectViewFinder()=0;
   1.286 +	};
   1.287 +	
   1.288 +/** 
   1.289 +Mixin class for implementation of camera client viewfinder.
   1.290 +*/	
   1.291 +class MCameraClientViewFinder
   1.292 +	{
   1.293 +
   1.294 +public:
   1.295 +	
   1.296 +	/** 
   1.297 +	Releases the interface. 
   1.298 +	
   1.299 +	@param  aClientViewFinderHandle
   1.300 +			The pointer to the client viewfinder class object which would be destroyed by the client.
   1.301 +	*/
   1.302 +	virtual void Release(CCamera::CCameraClientViewFinder* aClientViewFinderHandle)=0;
   1.303 +	
   1.304 +	/**
   1.305 +	Retrieves the concrete factory handle for the histogram implementation in order to 
   1.306 +	use it specifically for a particular viewfinder.
   1.307 +		   
   1.308 +	@param aImplFactoryPtr
   1.309 +		   The concrete factory handle for the histogram implementation specific to the given view finder.
   1.310 +		   
   1.311 +	@leave  May leave with any error code.
   1.312 +	*/
   1.313 +	virtual void CreateHistogramImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const=0;
   1.314 +
   1.315 +	/**
   1.316 +	Retrieves the concrete factory handle for the image processing implementation in order to 
   1.317 +	use it specifically for a particular viewfinder.
   1.318 +		   
   1.319 +	@param aImplFactoryPtr
   1.320 +		   The concrete factory handle for the image processing implementation specific to the given view finder.
   1.321 +		   
   1.322 +	@leave  May leave with any error code.
   1.323 +	*/
   1.324 +	virtual void GetImageProcessingImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const=0;
   1.325 +	
   1.326 +	/**
   1.327 +	The observer for the client view finder is passed to the implementation for passing callbacks on it.
   1.328 +	
   1.329 +	@param  aClientViewFinderObserver
   1.330 +			The reference to the client view finder observer.
   1.331 +	*/
   1.332 +	virtual void SetClientViewFinderObserver(MClientViewFinderObserver& aClientViewFinderObserver)=0;	
   1.333 +	
   1.334 +	/**
   1.335 +	The pointer to the client view finder class used to pass back to the client via observer callbacks. Implementation is 
   1.336 +	not	supposed to destroy this object.
   1.337 +	
   1.338 +	@param  aClientViewFinderObserver
   1.339 +			The pointer to the client view finder class object.
   1.340 +			
   1.341 +	@see    MClientViewFinderObserver
   1.342 +	*/
   1.343 +	virtual void SetClientViewFinderHandle(CCamera::CCameraClientViewFinder* aClientViewFinderHandle)=0;
   1.344 +	
   1.345 +	/** 
   1.346 +	Creates a new viewfinder and starts transfer of view finder data.
   1.347 +
   1.348 +	Availability of viewfinder data is notified by MClientViewFinderObserver::ViewFinderBufferReady().
   1.349 +	
   1.350 +	@param  aScreenNumber
   1.351 +			The screen number on which the client viewfinder is supposed to run.
   1.352 +	@param  aImageFormat 
   1.353 +	        The image format requested by the client.
   1.354 +	@param  aSize 
   1.355 +	        On return, the size used. The size may be modified by the implementation because of hardware constraints and 
   1.356 +	        byte alignment.
   1.357 +
   1.358 +	@leave  May leave with any error code.
   1.359 +	
   1.360 +	@note   KECamDefaultViewFinderHandle is used to refer to the viewfinder started using CCamera methods.
   1.361 +	
   1.362 +	@see	CCamera::StartViewFinderL(TFormat aImageFormat,TSize& aSize)
   1.363 +	*/
   1.364 +	virtual void StartClientViewFinderL(TInt aScreenNumber, CCamera::TFormat aImageFormat, TSize& aSize)=0;
   1.365 +
   1.366 +	/** 
   1.367 +	Creates a new viewfinder and starts transfer of view finder data. Also, clips the picture to the specified clip	rectangle. 
   1.368 +	
   1.369 +	Availability of viewfinder data is notified by MClientViewFinderObserver::ViewFinderBufferReady().
   1.370 +
   1.371 +	The picture is the size of the intersection of aSize and aClipRect, not simply
   1.372 +	aSize padded with white space.
   1.373 +	
   1.374 +	@param  aScreenNumber
   1.375 +			The screen number on which the client viewfinder is supposed to run.
   1.376 +	@param  aImageFormat 
   1.377 +	        The image format.
   1.378 +	@param  aSize
   1.379 +	        On return, the size used. The size may be modified by the implementation because of hardware constraints and
   1.380 +	        byte alignment.
   1.381 +	@param  aClipRect 
   1.382 +	        Required clip rectangle. May be modified if, for example,
   1.383 +	        the camera only supports certain byte alignments.
   1.384 +
   1.385 +	@leave  May leave with any error code.
   1.386 +	
   1.387 +	@note   KECamDefaultViewFinderHandle is used to refer viewfinder started using CCamera methods.
   1.388 +	
   1.389 +	@see	CCamera::StartViewFinderL(TFormat aImageFormat,TSize& aSize,TRect& aClipRect)
   1.390 +	*/
   1.391 +	virtual void StartClientViewFinderL(TInt aScreenNumber, CCamera::TFormat aImageFormat, TSize& aSize, TRect& aClipRect)=0;
   1.392 +	
   1.393 +	/**
   1.394 +	Retrieves the state of the client viewfinder.
   1.395 +	
   1.396 +	@param  aIsActive
   1.397 +			ETrue indicates that client viewfinder is active.
   1.398 +			EFalse indicates that client viewfinder is not active.
   1.399 +	
   1.400 +	@leave  May leave with any error code.
   1.401 +	*/
   1.402 +	virtual void GetClientViewFinderStateL(TBool& aIsActive) const=0;
   1.403 +	
   1.404 +	/**
   1.405 +	Retrieves the parameters associated with the client viewfinder.
   1.406 +	
   1.407 +	@param  aScreenNumber
   1.408 +			Retrieves the screen number on which the client viewfinder is supposed to run.
   1.409 +			
   1.410 +	@param  aImageFormat
   1.411 +			Retrieves the image format of the client viewfinder.
   1.412 +	
   1.413 +	@param  aSize
   1.414 +			Retrieves the size used for the client viewfinder.
   1.415 +			
   1.416 +	@param	aClipRect
   1.417 +			Retrieves the clip rectangle. If not specified, the clipping is retrieved as a TRect having origin as top left 
   1.418 +			corner and the size as 'aSize'.
   1.419 +			
   1.420 +	@leave  May leave with any error code.
   1.421 +	*/
   1.422 +	virtual void GetClientViewFinderPropertiesL(TInt& aScreenNumber, CCamera::TFormat& aImageFormat, TSize& aSize, TRect& aClipRect) const=0;
   1.423 +	
   1.424 +	/**
   1.425 +	Stop the client viewfinder.
   1.426 +	*/
   1.427 +	virtual void StopClientViewFinder()=0;
   1.428 +	
   1.429 +	/**
   1.430 +	Retrieves the client viewfinder buffer. Client calls this method after being notified about availability of viewfinder
   1.431 +	data via MClientViewFinderObserver::ViewFinderBufferReady().
   1.432 +
   1.433 +	@param  aClientViewFinderBuffer
   1.434 +			Reference to MCameraBuffer2 which retrieves the client viewfinder data.
   1.435 +
   1.436 +	@leave  May leave with any error code.
   1.437 +	*/	
   1.438 +	virtual void GetViewFinderBufferL(MCameraBuffer2& aClientViewFinderBuffer) const=0;
   1.439 +	};
   1.440 +
   1.441 +/**
   1.442 +This is a mixin class to be implemented by providers of the extension API for camera direct snapshot.
   1.443 +
   1.444 +@see CCamera::CCameraDirectSnapshot
   1.445 +
   1.446 +@publishedPartner
   1.447 +@prototype
   1.448 +*/
   1.449 +class MCameraDirectSnapshot
   1.450 +	{
   1.451 +	
   1.452 +public:	
   1.453 +	/** 
   1.454 +	Releases the interface. 
   1.455 +	*/
   1.456 +	virtual void Release()=0;
   1.457 +	
   1.458 +	/**
   1.459 +	Sets the version2 direct viewfinder object out of which this direct snapshot has been created. This is called only
   1.460 +	during the creation time of CCameraDirectSnapshot.
   1.461 +
   1.462 +	@param	aDirectViewFinder
   1.463 +			A pointer to the camera version2 direct viewfinder object on which the direct snapshot will be displayed.
   1.464 +	*/
   1.465 +	virtual void SetDirectViewFinder(const CCamera::CCameraV2DirectViewFinder* aDirectViewFinder)=0;
   1.466 +	
   1.467 +	/**
   1.468 +	Retrieve the version2 direct viewfinder object out of which this direct snapshot has been created. This information 
   1.469 +	may be required by the client in order to map the direct snapshot object with its parent version2 direct viewfinder
   1.470 +	object or also to retrieve properties of its parent version2 direct viewfinder object.
   1.471 +
   1.472 +	@param	aDirectViewFinder
   1.473 +			A pointer to the camera version2 direct viewfinder object on which the direct snapshot will be displayed.
   1.474 +
   1.475 +	@leave  May leave with any error code.
   1.476 +	*/
   1.477 +	virtual void GetDirectViewFinderL(CCamera::CCameraV2DirectViewFinder*& aDirectViewFinder) const=0;
   1.478 +
   1.479 +	/**
   1.480 +	Enable the direct snapshot. The direct snapshot will be displayed on the parent direct viewfinder screen. The screen 
   1.481 +	size of the snapshot will be the same as that of the parent direct viewfinder screen.
   1.482 +
   1.483 +	The direct snapshot can be displayed only for still images.
   1.484 +
   1.485 +	@param  aDirectSnapshotParameters
   1.486 +			The desired direct snapshot parameter.
   1.487 +			
   1.488 +	@leave  MAy leave with any error code.
   1.489 +	*/
   1.490 +	virtual void EnableDirectSnapshotL(CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters)=0;
   1.491 +
   1.492 +	/**
   1.493 +	Disable the direct snapshot. The direct snapshot will not be displayed on the parent direct viewfinder screen.
   1.494 +	*/
   1.495 +	virtual void DisableDirectSnapshot()=0;
   1.496 +
   1.497 +	/**
   1.498 +	Retrieves the current state for direct snapshot.
   1.499 +
   1.500 +	@param  aDirectSnapshotParameters
   1.501 +			Retrieves the current state for direct snapshot.
   1.502 +			
   1.503 +	@leave  May leave with any error code.
   1.504 +	*/	
   1.505 +	virtual void GetDirectSnapshotStateL(CCamera::CCameraDirectSnapshot::TDirectSnapshotState& aDirectSnapshotState) const=0;
   1.506 +
   1.507 +	/**
   1.508 +	Retrieves the direct snapshot parameters. 
   1.509 +
   1.510 +	@param  aDirectSnapshotParameters
   1.511 +			Retrieves the direct snapshot parameter of type TDirectSnapshotParameters.
   1.512 +			
   1.513 +	@leave  May leave with any error code.
   1.514 +	*/
   1.515 +	virtual void GetDirectSnapshotParametersL(CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters) const=0;
   1.516 +
   1.517 +	/**
   1.518 +	Sets the direct snapshot parameters. 
   1.519 +
   1.520 +	@param  aDirectSnapshotParameters
   1.521 +			The desired direct snapshot parameter of type TDirectSnapshotParameters.
   1.522 +			
   1.523 +	@leave  May leave with any error code.
   1.524 +	*/	
   1.525 +	virtual void SetDirectSnapshotParametersL(const CCamera::CCameraDirectSnapshot::TDirectSnapshotParameters& aDirectSnapshotParameters)=0;
   1.526 +	};
   1.527 +	
   1.528 +#endif // ECAMVIEWFINDERINTF_H