kernel/eka/include/d32camerasc.h
changeset 247 d8d70de2bd36
parent 201 43365a9b78a3
child 250 ac18961ed598
child 259 57b9594f5772
--- a/kernel/eka/include/d32camerasc.h	Tue Jul 06 15:50:07 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,711 +0,0 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\d32camerasc.h
-// User side class definition for the shared chunk camera driver.
-// 
-//
-
-/**
- @file
- @internalAll
- @prototype
-*/
-
-#ifndef __D32CAMERASC_H__
-#define __D32CAMERASC_H__
-
-#include <e32cmn.h>
-#include <e32ver.h>
-#include <pixelformats.h>
-
-_LIT(KDevCameraScName,"CameraSc");
-
-/**
-Camera capability constants - bitmasks of possible flash modes. @see TCameraCapsV02.
-*/
-/** Flash will automatically fire when required. */
-const TUint KCamFlashAuto = 0x0001;
-/** Flash will always fire. */
-const TUint KCamFlashForced = 0x0002;
-/** Reduced flash for general lighting */
-const TUint KCamFlashFillIn = 0x0004;
-/** Red-eye reduction mode. */
-const TUint KCamFlashRedEyeReduce = 0x0008;
-/** Flash at the moment when shutter opens. */
-const TUint KCamFlashSlowFrontSync = 0x0010;
-/** Flash at the moment when shutter closes. */
-const TUint KCamFlashSlowRearSync = 0x0020;
-/** User configurable setting */
-const TUint KCamFlashManual = 0x0040;
-
-/**
-Camera capability constants - bitmasks of possible exposure modes. @see TCameraCapsV02.
-*/
-/** Night-time setting for long exposures. */
-const TUint KCamExposureNight = 0x0001;
-/** Backlight setting for bright backgrounds. */
-const TUint KCamExposureBacklight = 0x0002;
-/** Centered mode for ignoring surroundings. */
-const TUint KCamExposureCenter = 0x0004;
-/** Sport setting for very short exposures. */
-const TUint KCamExposureSport = 0x0008;
-/** Generalised setting for very long exposures. */
-const TUint KCamExposureVeryLong = 0x0010;
-/** Snow setting for daylight exposure. */
-const TUint KCamExposureSnow = 0x0020;
-/** Beach setting for daylight exposure with reflective glare. */
-const TUint KCamExposureBeach = 0x0040;
-/** Programmed exposure setting. */
-const TUint KCamExposureProgram = 0x0080;
-/** Aperture setting is given priority. */
-const TUint KCamExposureAperturePriority = 0x0100;
-/** Shutter speed setting is given priority. */
-const TUint KCamExposureShutterPriority = 0x0200;
-/** User selectable exposure value setting. */
-const TUint KCamExposureManual = 0x0400;
-/** Exposure night setting with colour removed to get rid of colour noise. */
-const TUint KCamExposureSuperNight = 0x0800;
-/** Exposure for infra-red sensor on the camera */
-const TUint KCamExposureInfra = 0x1000;
-
-/**
-Camera capability constants - bitmasks of possible white balance modes. @see TCameraCapsV02.
-*/
-/** Normal daylight. */
-const TUint KCamWBDaylight = 0x0001;
-/** Overcast daylight. */
-const TUint KCamWBCloudy = 0x0002;
-/** Tungsten filament lighting. */
-const TUint KCamWBTungsten = 0x0004;
-/** Fluorescent tube lighting */
-const TUint KCamWBFluorescent = 0x0008;
-/** Flash lighting. */
-const TUint KCamWBFlash = 0x0010;
-/** High contrast daylight primarily snowy */
-const TUint KCamWBSnow = 0x0020;
-/** High contrast daylight primarily near the sea */
-const TUint KCamWBBeach = 0x0040;
-/** User configurable mode */
-const TUint KCamWBManual = 0x0080;
-
-/**
-Camera capability constants - bitmasks of other miscellaneous camera capabilities supported. @see TCameraCapsV02.
-*/
-/** The camera has zoom capability. */
-const TUint KCamMiscZoom = 0x0001;
-/** The camera supports contrast adjustment. */
-const TUint KCamMiscContrast = 0x0002;
-/** The camera supports brightness adjustment. */
-const TUint KCamMiscBrightness = 0x0004;
-/** The camera supports color effect adjustment. */
-const TUint KCamMiscColorEffect = 0x0008;
-
-
-/**
-Enumeration of capture modes in which to run the sensor.
-*/
-enum TDevCamCaptureMode
-	{
-	/** Used to specify that still image mode is to be used. */
-	ECamCaptureModeImage,
-	/** Used to specify that streaming video mode is to be used. */
-	ECamCaptureModeVideo,
-	/** Used to specify that streaming viewfinder mode is to be used. */
-	ECamCaptureModeViewFinder,
-	/** The last value here, helps keep track of the number of capture modes. */
-	ECamCaptureModeMax
-	};
-
-/**
-Enumeration of camera flash modes. @see TCameraConfigV02.
-*/
-enum TDevCamFlashMode
-	{
-	/** No flash, always supported. */
-	ECamFlashNone=0x0000,
-	/** Flash will automatically fire when required. */
-	ECamFlashAuto=0x0001,
-	/** Flash will always fire. */
-	ECamFlashForced=0x0002,
-	/** Reduced flash for general lighting */
-	ECamFlashFillIn=0x0004,
-	/** Red-eye reduction mode. */
-	ECamFlashRedEyeReduce=0x0008,
-	/** Flash at the moment when shutter opens. */
-	ECamFlashSlowFrontSync=0x0010,
-	/** Flash at the moment when shutter closes. */
-	ECamFlashSlowRearSync=0x0020,
-	/** User configurable setting */
-	ECamFlashManual=0x0040
-	};
-
-/**
-Enumeration of camera exposure modes. @see TCameraConfigV02.
-*/
-enum TDevCamExposureMode
-	{
-	/** Set exposure automatically. Default, always supported. */
-	ECamExposureAuto=0x0000,
-	/** Night-time setting for long exposures. */
-	ECamExposureNight=0x0001,
-	/** Backlight setting for bright backgrounds. */
-	ECamExposureBacklight=0x0002,
-	/** Centered mode for ignoring surroundings. */
-	ECamExposureCenter=0x0004,
-	/** Sport setting for very short exposures. */
-	ECamExposureSport=0x0008,
-	/** Generalised setting for very long exposures. */
-	ECamExposureVeryLong=0x0010,
-	/** Snow setting for daylight exposure. */
-	ECamExposureSnow=0x0020,
-	/** Beach setting for daylight exposure with reflective glare. */
-	ECamExposureBeach=0x0040,
-	/** Programmed exposure setting. */
-	ECamExposureProgram=0x0080,
-	/** Aperture setting is given priority. */
-	ECamExposureAperturePriority=0x0100,
-	/** Shutter speed setting is given priority. */
-	ECamExposureShutterPriority=0x0200,
-	/** User selectable exposure value setting. */
-	ECamExposureManual=0x0400,
-	/** Exposure night setting with colour removed to get rid of colour noise. */
-	ECamExposureSuperNight=0x0800,
-	/** Exposure for infra-red sensor on the camera */
-	ECamExposureInfra=0x1000
-	};
-
-/**
-Enumeration of camera white balance modes. @see TCameraConfigV02.
-*/
-enum TDevCamWhiteBalanceMode
-	{
-	/** Set white balance automatically. Default, always supported. */
-	ECamWBAuto=0x0000,
-	/** Normal daylight. */
-	ECamWBDaylight=0x0001,
-	/** Overcast daylight. */
-	ECamWBCloudy=0x0002,
-	/** Tungsten filament lighting. */
-	ECamWBTungsten=0x0004,
-	/** Fluorescent tube lighting */
-	ECamWBFluorescent=0x0008,
-	/** Flash lighting. */
-	ECamWBFlash=0x0010,
-	/** High contrast daylight primarily snowy */
-	ECamWBSnow=0x0020,
-	/** High contrast daylight primarily near the sea */
-	ECamWBBeach=0x0040,
-	/** User configurable mode */
-	ECamWBManual=0x0080
-	};
-
-/**
-Enumeration of possible directions in which the camera may point. @see TCameraCapsV02.
-*/
-enum TDevCamOrientation
-	{
-	/** Outward pointing camera for taking pictures. Camera is directed away from the user. */
-	ECamOrientationOutwards,
-	/** Inward pointing camera for conferencing. Camera is directed towards the user. */
-	ECamOrientationInwards,
-	/** Mobile camera capable of multiple orientations. Camera orientation may be changed by the user. */
-	ECamOrientationMobile,
-	/** Camera orientation is not known. */
-	ECamOrientationUnknown
-	};
-
-/**
-Each item in the iPixelFormatSupported array is represented by an instance of this structure.
-*/
-struct SDevCamPixelFormat
-	{
-	/** The UID of the pixel format supported */
-	TUidPixelFormat iPixelFormat;
-	/** The number of frame sizes represented by the pixel format. */
-	TUint iNumFrameSizes;
-	/** The pixel width in number of bytes */
-	TUint iPixelWidthInBytes;
-	};
-
-/**
-Each frame size supported is represented by an instance of this structure.
-*/
-struct SDevCamFrameSize
-	{
-	/** Width of the frame in pixels. */
-	TUint iWidth;
-	/** Height of the frame in pixels. */
-	TUint iHeight;
-	/** Minimum frame rate supported by this frame size. */
-	TUint iMinFrameRate;
-	/** Maximum frame rate supported by this frame size. */
-	TUint iMaxFrameRate;
-	};
-
-/**
-Lets us associate buffers to their mode when working out the buffer offset in a chunk.
-**/
-class TDevCamBufferModeAndId
-	{
-public:
-	TDevCamCaptureMode iCaptureMode;
-	TInt iId;
-	};
-typedef TPckgBuf<TDevCamBufferModeAndId> TDevCamBufferModeAndIdBuf;
-
-/**
-The general driver capabilites class - returned by the LDD factory in response to RDevice::GetCaps().
-*/
-class TCapsDevCameraV01
-	{
-public:
-	TVersion iVersion;
-	};
-
-/**
-Defines a list of settings that are changable often (dynamically) within a single use of the device.
-*/
-enum TDevCamDynamicAttribute
-	{
-	ECamAttributeBrightness,
-	ECamAttributeContrast,
-	ECamAttributeColorEffect,
-	ECamAttributeMax
-	};
-
-/**
-Holds the range and interval (rate of change) values for a dynamic capability.
-An array of these would be indexed by TDevCamDynamicAttribute
-*/
-struct TDynamicRange
-	{
-	TUint iMin;
-	TUint iMax;
-	TUint iDefault;
-	};
-
-/**
-The main camera capabilities class. This is used to get the capabilities of a specific camera
-device once a channel to it has been opened.
-*/
-class TCameraCapsV02
-	{
-public :
-	/** The flash modes supported - a bit field. */
-	TUint iFlashModes;
-	/** The exposure modes supported - a bit field. */
-	TUint iExposureModes;
-	/** The white balance modes supported - a bit field. */
-	TUint iWhiteBalanceModes;
-	/** The orientation of the camera device. */
-	TDevCamOrientation iOrientation;
-	/** The minimum value that may be set for the zoom factor. Must be negative or zero. Negative values
-	represent macro functionality. @see TCameraCapsV02::iCapsMisc. @see TCameraConfigV02::iZoom. */
-	TUint iMinZoom;
-	/** The maximum value that may be set for the zoom factor. Must be positive or zero.
-	@see TCameraCapsV02::iCapsMisc. @see TCameraConfigV02::iZoom. */
-	TUint iMaxZoom;
-	/** Whether other miscellaneous capabilities are supported - a bitfield. These
-	capabilities include whether the device supports simultaneous capture modes, zoom capabilities, contrast
-	adjustment, brightness, and color effect adjustment. */
-	TUint iCapsMisc;
-	/** Number of pixel formats supported in still image capture mode.
-	Will be set to 0 if image capture is not supported. */
-	TUint iNumImagePixelFormats;
-	/** Number of pixel formats supported in video capture mode.
-	Will be set to 0 if image capture is not supported. */
-	TUint iNumVideoPixelFormats;
-	/** Number of pixel formats supported in view finder capture mode.
-	Will be set to 0 if image capture is not supported. */
-	TUint iNumViewFinderPixelFormats;
-	
-	/** An array specifying the range in values for settings as defined by TDevCamDynamicAttribute.
-		Indices for settings are in the order defined in TDevCamDynamicAttribute.
-		If the setting is not supported then the entry is still present for performance reasons,
-		i.e. indexing over searching.
-		@see TDevCamDynamicAttribute
-		@see TDynamicRange
-	*/
-	TDynamicRange iDynamicRange[ECamAttributeMax];
-	
-	/** A variable length array specifying the pixel formats supported by the sensor.
-		The size of the TCameraCapsV02 structure is determined by each sensor's capabilities
-		thus the array of supported pixel formats is of variable length. It is stored in memory
-		exactly after TCameraCapsV02 whenever memory is allocated for it and the array cannot be
-		accessed by a private member.
-	SDevCamPixelFormat iPixelFormatsSupported[];
-	*/
-	};
-
-typedef TPckgBuf<TCameraCapsV02> TCameraCapsV02Buf;
-
-/**
-The camera configuration class. This is used to get and set the current
-configuration of the camera. @see SDevCamFrameSize and @see SDevCamPixelFormat.
-*/
-class TCameraConfigV02
-	{
-public:
-	/** The size of the image to get from the sensor. */
-	SDevCamFrameSize iFrameSize;
-	/** The pixel format (RGB, YUV, RGB Bayer etc). */
-	SDevCamPixelFormat iPixelFormat;
-	/** The frame rate (in frame/s). */
-	TUint iFrameRate;
-	/** The flash mode setting. */
-	TDevCamFlashMode iFlashMode;
-	/** The exposure mode setting. */
-	TDevCamExposureMode iExposureMode;
-	/** The white balance mode setting. */
-	TDevCamWhiteBalanceMode iWhiteBalanceMode;
-	/** The zoom factor. Can be zero, positive or negative, Negative values represent macro functionality.*/
-	TInt iZoom;
-	/** Specifies the number of bytes used to store one pixel's worth of data. */
-	TInt iPixelWidthInBytes;
-	};
-typedef TPckgBuf<TCameraConfigV02> TCameraConfigV02Buf;
-
-/** A structure used to assemble arguments for the function RDevCameraSc::SetBufConfigChunkOpen() and to pass
-these to the driver. */
-struct SSetBufConfigChunkOpenInfo
-	{
-	const TDesC8* iBufferConfigBuf;
-	TInt iChunkHandle;
-	};
-
-/** A structure used to assemble arguments for the function RDevCameraSc::FrameSizeCaps() and to pass
-these to the driver. */
-struct SFrameSizeCapsInfo
-	{
-	TUidPixelFormat iUidPixelFormat;
-	TDevCamCaptureMode iCaptureMode;
-	};
-
-/**
-The camera device driver API supporting shared chunks. This is the principle interface to communicate with
-an attached camera.
-*/
-class RDevCameraSc : public RBusLogicalChannel
-	{
-public:
-	enum TRequest
-	/**
-	 Asynchronous request types
-	*/
-		{
-		EMsgRequestMax=3,				// All requests less than this value are handled in the driver DFC thread.
-		ERequestNotifyNewImage,
-		ENumRequests,
-		EAllRequests = (1<<ENumRequests)-1
-		};
-
-	enum TControl
-	/**
-	 Synchronous request types
-	*/
-		{
-		EControlSetBufConfigChunkCreate,
-		EControlSetBufConfigChunkOpen,
-		EControlStart,
-		EControlStop,
-		EControlSetCamConfig,
-		EControlSetCaptureMode,
-		EControlChunkClose,
-		EMsgControlMax=100,				// All requests less than this value are handled in the driver DFC thread.
-		EControlCaps,
-		EControlGetCamConfig,
-		EControlGetBufferConfig,
-		EControlReleaseBuffer,
-		EControlNotifyNewImageSpecificCancel,
-		EControlBufferIdToOffset,
-		EControlCapsSize,
-		EControlFrameSizeCaps,
-		EControlSetDynamicAttribute,
-		EControlGetDynamicAttribute
-		};
-
-public:
-	/**
-	Get the version number of camera driver interface.
-	@return The camera driver interface version number.
-	*/
-	inline static TVersion VersionRequired();
-
-#ifndef __KERNEL_MODE__
-	
-	/**
-	 Constructor.
-	 Initialises private members.
-	 */
-	inline RDevCameraSc();
-	
-	/**
-	Open a channel on a specified camera device. This driver only allows one channel to be opened on each device.
-	@param aUnit The unit number of the camera device.
-	@return KErrNone, if successful;
-			KErrInUse, if a channel is already opened on the unit concerned;
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt Open(TInt aUnit);
-
-	/**
-	Close the Channel and clean up.
-	*/
-	inline void Close();
-
-	/**
-	Get the capabilities of the camera device.
-	@param aCapsBuf A packaged TCameraCapsV02 object which on return will be filled with the capabilities of the device.
-	@return KErrNone, if successful;
-			KErrArgument, if aCapsBuf is too small.
-	@see TCameraCapsV02.
-	*/
-	inline TInt Caps(TDes8& aCapsBuf);
-
-	/**
-	Get the capabilities of the camera device.
-	@return TPtrC8 pointing to a locally held TCameraCapsV02 structure owned by the driver.
-	@see TCameraCapsV02.
-	*/
-	inline TPtrC8 Caps();
-
-	/**
-	Set the camera configuration settings.
-	@param aCaptureMode	The capture mode that camera will be configured for.
-	@param aConfigBuf	A packaged TCameraConfigV02 object which contains the configuration settings.
-	@see TCameraConfigV02.
-	*/
-	inline TInt SetCamConfig(TDevCamCaptureMode aCaptureMode, const TDesC8& aConfigBuf);
-
-	/**
-	Trigger the buffer allocation and configuration setting - creating a shared chunk.
-	From the frame size, pixel format (already supplied) and the number of camera buffers specified,
-	the driver will	calculate the size of the shared chunk this requires. It will create such
-	a shared chunk containing the specified number of buffers within it (each with memory committed to them).
-	This will replace a previous shared chunk created by this driver.
-	A handle to the chunk will then be created for the client thread which will be assigned to the
-	RChunk object supplied by the client.The configuration cannot be changed unless image capture is disabled.
-	@param aCaptureMode	The capture mode that camera will be configured for.
-	@param aNumBuffers	The desired number of buffers that is going to be used.
-	@param aChunk		An RChunk object to which the chunk handle will be assigned.
-	@return KErrNone if successful;
-			KErrInUse if image capturing is already in progress;
-			KErrArgument if any configuration values are invalid;
-			KErrNoMemory if the driver failed allocate memory for the shared chunk specified;
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt SetBufConfigChunkCreate(TDevCamCaptureMode aCaptureMode, TInt aNumBuffers, RChunk& aChunk);
-
-	/**
-	Get the current camera configuration settings.
-	@param aCaptureMode	The capture mode that the user requested the configuration settings of.
-	@param aConfigBuf	A packaged TCameraConfigV02 object which will be filled with the configuration settings.
-	@see TCameraConfigV02.
-	*/
-	inline void GetCamConfig(TDevCamCaptureMode aCaptureMode, TDes8& aConfigBuf);
-
-	/**
-	Get the current buffer configuration settings.
-	@param aCaptureMode	The capture mode that the configuration request is for.
-	@param aConfigBuf	A packaged TSharedChunkBufConfigBase derived object which will be filled with the configuration settings.
-	@see TSharedChunkBufConfigBase.
-	*/
-	inline void GetBufferConfig(TDevCamCaptureMode aCaptureMode, TDes8& aConfigBuf);
-
-	/**
-	Set the current buffer configuration settings - using an existing shared chunk.
-	The client supplies an existing shared chunk which is to be used by the driver as the play buffer.
-	Any shared chunk previously created by the driver will be closed by it.
-	The configuration cannot be changed unless image capture is disabled.
-	@param aCaptureMode	The capture mode that the configuration is for.
-	@param aBufferConfigBuf	A packaged TSharedChunkBufConfigBase derived object holding information on the buffer configuration
-							settings of the chunk supplied.
-	@param aChunk			A handle to the shared chunk which is to be used as the buffer. (This must be a
-							valid handle for the calling thread).
-	@return KErrNone if successful;
-			KErrInUse if the playing of data is in progress;
-			KErrBadHandle if the chunk handle was invalid;
-			KErrArgument if any configuration values are invalid;
-			otherwise one of the other system-wide error codes.
-	@see TCameraConfigV02.
-	*/
-	inline TInt SetBufConfigChunkOpen(TDevCamCaptureMode aCaptureMode, const TDesC8& aBufferConfigBuf, RChunk& aChunk);
-
-	/**
-	Closes the chunk associated with a given capture mode, and frees the associated buffers.  The chunk being closed,
-	should have been allocated by the device driver by a call to SetBufConfigChunkCreate().
-	@param aCaptureMode The capture mode for which to close the chunk.
-	@return	KErrNone if successful.
-			KErrInUse if an attempt has been made to free the memory and chunk while they are in use.
-			Otherwise one of the other system-wide error codes.
-	*/
-	inline TInt ChunkClose(TDevCamCaptureMode aCaptureMode);
-
-	/**
-	Start the image capture process in the capture mode supplied.
-	If the driver is in free running mode then it will commence capturing frames - cycling between
-	each buffer available to it until Stop() is called. In one shot mode the driver postpones the capturing
-	of frames until a NotifyNewImage() request is received.
-	@return KErrNone if successful;
-			KErrNotReady if SetConfig() has not been previously called;
-			otherwise one of the other system-wide error codes.
-	@pre The driver must have been previousely initialised by a call to SetConfigNN()
-	*/
-	inline TInt Start();
-
-	/**
-	End the image capturing process.
-	Also performs NotifyNewImageCancel()
-	@return KErrGeneral if Start() has not been previously called;
-			KErrNone otherwise.
-	*/
-	inline TInt Stop();
-
-	/**
-	Get the next available image.
-	More than one request may be pending at any time.
-	If the camera is enabled for image capture and image capture is not already in progress then the issuing
-	of this request will start image capture mode.
-	@param aStatus 	The request status which is signaled when an image is available (or an error occurs).
-					If the request is successful then this result value is the offset within the shared chunk
-					where the capture image resides. Alternatively, if an error occurs it will be set to one of
-					the system wide error values:
-				 	KErrNotReady if Start() hasn't been previousely called;
-				 	KErrInUse if the client already has all the images buffers.
-	@pre Image capturing must have been started with Start().
-	*/
-	inline void NotifyNewImage(TRequestStatus& aStatus);
-
-	/**
-	Cancels all outstanding NotifyNewImage() requests.
-	All outstanding requests complete with KErrCancel.
-	*/
-	inline void NotifyNewImageCancel();
-
-	/**
-	Cancels a specific NotifyNewImage() request.
-	The outstanding request completes with KErrCancel.
-	@param aStatus The request status object associated with the request to be cancelled.
-	*/
-	inline void NotifyNewImageCancel(const TRequestStatus& aStatus);
-
-	/**
-	Release a buffer - making it available again for the driver to capture images into.
-	@param aBufferId	The buffer id of the buffer that the image to be released is stored.
-						This is a value returned by the NotifyNewImage() request when
-						the buffer was claimed by the client.
-	@return KErrNone if successful;
-			KErrNotFound if the buffer id is invalid;
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt ReleaseBuffer(TInt aBufferId);
-
-	/**
-	Retrieves the offset to the start of the buffer using its id, in the specified capture mode.
-	@param aCaptureMode	The capture mode that the buffer in the chunk is related to.
-	@param aId			The id of the buffer in the chunk.
-	@param aOffset		The offset, in bytes, of the start of the buffer within the chunk.
-	@return KErrNone if successful;
-			KErrNotFound if the id doesn't exist;
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt BufferIdToOffset(TDevCamCaptureMode aCaptureMode, TInt aId, TInt& aOffset);
-
-	/**
-	Sets the current capture mode. Submits the camera configuration	to the PDD.
-	@param aCaptureMode	The capture mode that the camera switches to.	@see TDevCamCaptureMode.
-	@return KErrNone if successful;
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt SetCaptureMode(TDevCamCaptureMode aCaptureMode);
-
-	/**
-	Queries the driver for the size of the structure to be passed to Caps().
-	@return The size of the structure required to hold all capability information.
-			otherwise one of the system-wide error codes.
-	*/
-	inline TInt CapsSize();
-
-	/**
-	Gets information regarding the frame sizes and frame rates supported for a given combination of capture mode and pixel format.
-	The capture mode and pixel format chosen will be dependent upon the information returned by RDevCameraSc::Caps().
-	@param	aCaptureMode The capture mode concerned.
-	@param	aUidPixelFormat The UID of the pixel format mode concerned.
-	@param	aFrameSizeCapsBuf	A packaged array of SDevCamFrameSize structures.
-								This is a variable length array and must be large enough to hold all entries.
-								Its size is determined by SDevCamPixelFormat::iNumFrameSizes, returned by RDevCameraSc::Caps(),
-								multiplied by the size of SDevCamFrameSize.
-	@return	KErrNone if successful;
-			KErrArgument if an invalid capture mode or pixel format is specified, or if aFrameSizeCapsBuf is too small.
-			otherwise one of the other system-wide error codes.
-	*/
-	inline TInt FrameSizeCaps(TDevCamCaptureMode aCaptureMode, TUidPixelFormat aUidPixelFormat, TDes8& aFrameSizeCapsBuf);
-	
-
-	/**
-	Allows changing of the dynamic settings as specified in TDevCamDynamicAttribute.
-	Checks locally the validity of the arguments passed so as to increase performance by not
-	forcing a context switch.
-	Check the allowable range of the settings via the TCameraCapsV02::iDynamicRange member.
-
-	@param aAttribute An enum identifying the dynamic attribute to change.
-	@param aValue The attributes value within a valid range.
-	@return KErrNone if successful, KErrNotSupported if not supported, 
-			KErrArgument if aValue is out of range.
-			Otherwise, one of the system wide error codes.
-	@see TDevCamDynamicAttribute
-	@see TCameraCapsV02
-	*/
-	TInt SetDynamicAttribute(TDevCamDynamicAttribute aAttribute, TUint aValue);
-
-	/**
-	Queries the driver for a dynamic setting's value.
-	This function does not force a context switch by reading the values from a cache.
-	
-	@param aAttribute An enum identifying the dynamic attribute to query.
-	@param aValue A reference to a variable that will be set to the queried attribute's value.
-	@return KErrNone if successful, KErrNotFound if aAttribute is not supported by the driver.
-		Otherwise, one of the system-wide error codes.
-
-	@see TDevCamDynamicAttribute
-	@see TCameraCapsV02
-	*/
-	TInt GetDynamicAttribute(TDevCamDynamicAttribute aAttribute, TUint& aValue);
-
-protected:
-	TInt CheckAttributeSupported(TDevCamDynamicAttribute aAttribute);
-
-
-private:
-	/** 
-	Capability of Sensor. 
-	Kept here for performance issues, i.e. to avoid context switches.
-	*/
-	TCameraCapsV02 *iCameraCaps;
-
-	/** 
-	Size of Camera Capabiliy struct. 
-	Kept here for performance issues, i.e. to avoid context switches.
-	*/
-	TInt iCapsSize;
-	
-#endif	// __KERNEL_MODE__
-	};
-
-
-
-
-#include <d32camerasc.inl>
-
-#endif	// __D32CAMERASC_H__