camerauis/cameraapp/generic/inc/CameraappDummyEngine.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/inc/CameraappDummyEngine.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,991 @@
+/*
+* Copyright (c) 2007 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"
+* 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:  Dummy Camera Application Engine*
+*/
+
+
+
+#ifndef CAMERAAPPDUMMYENGINE_H
+#define CAMERAAPPDUMMYENGINE_H
+
+//  INCLUDES
+#include <CaeEngine.h>
+
+// FORWARD DECLARATIONS
+class CCameraappDummyCallbackActive;
+
+// CLASS DECLARATION  
+    
+/**
+* Dummy Camera Application Engine interface 
+*
+*/
+class CCameraappDummyEngine : public CCaeEngine
+    {
+    public: // Creation
+
+        /**
+        * A static (factory) function to create the class instance.
+        * @since 2.1
+        * @return Pointer to a fully constructed CCaeEngine object. 
+        * Ownership is passed to the caller.
+        */
+        static CCaeEngine* NewL();
+    };
+
+
+class CCameraappDummyEngineImp : public CCameraappDummyEngine
+    {
+    public: // Creation
+        static CCameraappDummyEngineImp* NewL();
+
+        /**
+        * Sets the Camera Application Engine observer.
+        * @since 2.1
+        * @param aObserver Reference to Camera Application Engine observer.
+        * @return void
+        */
+        void SetCamAppEngineObserver( 
+            MCamAppEngineObserver& aObserver );
+
+        ~CCameraappDummyEngineImp();
+
+    public: // General methods
+
+        /**
+        * Gets information about the supported Camera Application Engine and 
+        * Camera features.
+        * @since 2.1
+        * @param aInfo Info about supported features.
+        * @return void
+        */
+        void GetInfo( TCamAppEngineInfo& /*aInfo*/ ) const;
+
+        /**
+        * Initializes Camera Application Engine for still image capturing. 
+        * Reserves the camera and switches the camera power on. 
+        * Intialization must be done before all other operations, except 
+        * SetCamAppEngineObserver and GetInfo. 
+        * Calls observer method McaeoInitComplete().
+        * @since 2.1
+        * @param aCreateSnapImage Boolean indicating if "snap-images" 
+        * should be created, leading to calls of McaeoSnapImageReady.
+        * @return void
+        */
+        void InitL( TBool aCreateSnapImage = ETrue );
+
+        /**
+        * Initialize the engine for still image capturing. 
+        * Switches also camera power on. 
+        * Intialization must be done before all other operations, except 
+        * SetCamAppEngineObserver and GetInfo. 
+        * Calls observer method McaeoInitComplete().
+        * @since 2.1
+        * @param aSdUidStillQltyLevels Still capturing quality levels Shared Data initialization file UID.
+        * @param aCreateSnapImage Boolean indicating if "snap-images" should be created 
+        * leading to calls of McaeoSnapImageReady.
+        * @return void
+        */
+        void InitL( TUid /*aSdUidStillQltyLevels*/, 
+                            TBool /*aCreateSnapImage = ETrue*/ ){};
+
+        /**
+        * Initializes video recording. 
+        * The initialization must be done before video recording operations.
+        * @since 2.1
+        * @return void
+        */
+        void InitVideoRecorderL(){};
+
+        /**
+        * Initializes video recording. 
+        * The initialization must be done before video recording operations.
+        * @since 2.1
+        * @param aSdUidVideoQltyLevels Video recording quality levels Shared Data initialization file UID.
+        * @return void
+        */
+        void InitVideoRecorderL( TUid /*aSdUidVideoQltyLevels*/ ){};
+
+        /**
+        * Reserves the camera into use and switches the camera power on. 
+        * Calls observer method McaeoInitComplete().
+        * @since 2.1
+        * @return void
+        */
+        void Reserve();
+        
+        /**
+        * Switches the camera power off and releases the camera.
+        * @since 2.1
+        * @return void
+        */
+        void Release(){};
+
+        /**
+        * Switches the camera power on. 
+        * Calls observer method McaeoInitComplete().
+        * @since 2.1
+        * @return void
+        */
+        void PowerOn(){};
+        
+        /**
+        * Switches the camera power off.
+        * @since 2.1
+        * @return void
+        */
+        void PowerOff(){};
+
+    public: // Camera settings
+
+        /**
+        * Sets the zoom mode.
+        * @since 2.1
+        * @param aZoomMode Zoom mode to set.
+        * @return void
+        */
+        void SetZoomModeL( TZoomMode /*aZoomMode = EZoomModeDigital*/ );
+
+        /**
+        * Gets the current zoom mode.
+        * @since 2.1
+        * @return The current zoom mode.
+        */
+        TZoomMode ZoomMode() const{ return EZoomModeDigital; };
+
+        /**
+        * Sets the zoom value.
+        * @since 2.1
+        * @param aZoomValue Index of the zoom factor to set.
+        * @return void
+        */
+        void SetZoomValueL( TInt /*aZoomValue = 0*/ );
+
+        /**
+        * Gets the current zoom value.
+        * @since 2.1
+        * @return Index of the current zoom factor.
+        */
+        TInt ZoomValue() const;
+
+        /**
+        * Sets the brightness.
+        * @since 2.1
+        * @param aBrightness Brightness value in the range ECam.h SetBrightnessL allows.
+        * @return void
+        */
+        void SetBrightnessL( TInt /*aBrightness = 0*/ ){}; 
+
+        /**
+        * Gets the current brightness setting.
+        * @since 2.1
+        * @return Brightness value.
+        */
+        TInt Brightness() const{ return 0; };
+
+        /**
+        * Sets the contrast.
+        * @since 2.1
+        * @param aContrast Contrast value in the range ECam.h SetContrastL allows.
+        * @return void
+        */
+        void SetContrastL( TInt/* aContrast= 0*/ ){}; 
+        
+        /**
+        * Gets the current contrast setting.
+        * @since 2.1
+        * @return Contrast value.
+        */
+        TInt Contrast() const{ return 0; };
+
+        /**
+        * Sets the exposure mode.
+        * @since 2.1
+        * @param aExposureMode Exposure mode in the range ECam.h SetExposureL allows.
+        * @return void
+        */
+        void SetExposureModeL( 
+            CCamera::TExposure /*aExposureMode = CCamera::EExposureAuto*/ ){};
+
+        /**
+        * Gets the current exposure mode.
+        * @since 2.1
+        * @return Exposure mode.
+        */
+        CCamera::TExposure ExposureMode() const{ return CCamera::EExposureAuto; };
+
+        /**
+        * Sets the white balance mode.
+        * @since 2.1
+        * @param aWhiteBalanceMode White balance mode in the range ECam.h SetWhiteBalanceL allows.
+        * @return void
+        */
+        void SetWhiteBalanceModeL( 
+            CCamera::TWhiteBalance /*aWhiteBalanceMode = CCamera::EWBAuto*/ ){};
+
+        /**
+        * Gets the current white balance mode.
+        * @since 2.1
+        * @return White balance mode.
+        */
+        CCamera::TWhiteBalance WhiteBalanceMode() const{ return CCamera::EWBAuto; };
+
+        /**
+        * Sets the flash mode.
+        * @since 2.1
+        * @param aFlashMode Flash mode in the range ECam.h SetFlashL allows.
+        * @return void
+        */
+        void SetFlashModeL( 
+            CCamera::TFlash /*aFlashMode = CCamera::EFlashNone*/ ){};
+
+        /**
+        * Gets the current flash mode.
+        * @since 2.1
+        * @return Flash mode.
+        */
+        CCamera::TFlash FlashMode() const{ return CCamera::EFlashNone; };
+
+        /**
+        * Resets to the default setting values.
+        * Resets the following settings: exposure mode, white balance mode, 
+        * zoom mode, zoom value, flash mode, brightness, and contrast. 
+        * @since 2.1
+        * @return void
+        */
+        void ResetToDefaultsL(){};
+    
+    public: // View finder
+
+        /**
+        * Sets/resets view finder image mirroring.
+        * @since 2.1
+        * @param aMirror Boolean indicating whether view finder image should be mirrored or not.
+        * @return void
+        */
+        void SetViewFinderMirrorL( TBool /*aMirror = EFalse*/ ){};
+
+        /**
+        * Queries if view finder image mirroring is on.
+        * @since 2.1
+        * @return Boolean indicating whether view finder image is currently mirrored or not.
+        */
+        TBool ViewFinderMirror() const{ return EFalse; };
+
+        /**
+        * Starts the bitmap-based view finder.
+        * The engine starts to call observer method McaeoViewFinderFrameReady() repeatedly.
+        * @since 2.1
+        * @param aSize Desired view finder size.
+        * @return void
+        */
+        void StartViewFinderBitmapsL( TSize& aSize );
+
+        /**
+        * Starts the bitmap-based view finder.
+        * The engine starts to call observer method McaeoViewFinderFrameReady() repeatedly.
+        * @since 2.1
+        * @param aSize Desired view finder size.
+        * @param aCropRect Desired cropping/clipping rectangle.
+        * @return void
+        */
+        void StartViewFinderBitmapsL(
+            TSize& /*aSize*/, 
+            TRect& /*aCropRect*/ ){};
+
+        /**
+        * Starts the direct screen access view finder.
+        * @since 2.1
+        * @param aWs Window server session.
+        * @param aScreenDevice Software device screen.
+        * @param aWindow Client-side handle to a server-side window.
+        * @param aScreenRect Portion of screen in screen co-ordinates.
+        * @return void
+        */
+        void StartViewFinderDirectL( 
+            RWsSession& /*aWs*/, 
+            CWsScreenDevice& /*aScreenDevice*/, 
+            RWindowBase& /*aWindow*/, 
+            TRect& /*aScreenRect*/ ){};
+        
+        /**
+        * Starts the direct screen access view finder.
+        * @since 2.1
+        * @param aWs Window server session.
+        * @param aScreenDevice Software device screen.
+        * @param aWindow Client-side handle to a server-side window.
+        * @param aScreenRect Portion of screen in screen co-ordinates.
+        * @param aCropRect Desired cropping/clipping rectangle.
+        * @return void
+        */
+        void StartViewFinderDirectL(
+            RWsSession& /*aWs*/, 
+            CWsScreenDevice& /*aScreenDevice*/, 
+            RWindowBase& /*aWindow*/, 
+            TRect& /*aScreenRect*/, 
+            TRect& /*aCropRect*/ ){};
+
+        /**
+        * Stops the view finder.
+        * @since 2.1
+        * @return void
+        */
+        void StopViewFinder();
+
+        /**
+        * Queries if view finder is running.
+        * @since 2.1
+        * @return Boolean indicating whether view finder is running or not.
+        */
+        TBool IsViewFinding() const;
+
+        /**
+        * Gets the current view finder size.
+        * @since 2.1
+        * @param aSize View finder size.
+        * @return void
+        */
+        void GetViewFinderSize( TSize& /*aSize*/ ){};
+
+    public: // Still image capturing
+
+        /**
+        * Prepares Camera Application Engine for still image capture on 
+        * specified quality level.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @param aStillQualityIndex Still image quality level index.
+        * Imaging parameters linked to quality levels are defined by Shared Data ini-file. 
+        * @return void
+        */
+        void PrepareStillCaptureL( TInt /*aStillQualityIndex*/ ){};
+
+        /**
+        * Prepares Camera Application Engine for still image capture on 
+        * specified quality level.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @param aStillQualityIndex Still image quality level index. 
+        * Can have values 0 ... TCamAppEngineInfo::iNumStillQualityLevelsSupported - 1
+        * @param aCropRect Desired cropping/clipping rectangle.
+        * @return void
+        */
+        void PrepareStillCaptureL( 
+            TInt /*aStillQualityIndex*/, 
+            const TRect& /*aCropRect*/ ){};
+
+        /**
+        * Prepares Camera Application Engine for still image capture with 
+        * specified image size and format.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @param aSize Still image size.
+        * @param aFormat Still image format.
+        * @param aCompressionQuality Still image compression quality [0...100].
+        * @return void
+        */
+        void PrepareStillCaptureL(
+            const TSize& /*aSize*/, 
+            CCamera::TFormat /*aFormat*/,  
+            TInt /*aCompressionQuality*/ ){};
+
+        /**
+        * Prepares Camera Application Engine for still image capture with specified image size and format.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @param aSize Still image size.
+        * @param aFormat Still image format.
+        * @param aCompressionQuality Still image compression quality [0...100].
+        * @param aCropRect Desired cropping/clipping rectangle.
+        * @return void
+        */
+        void PrepareStillCaptureL(
+            const TSize& /*aSize*/, 
+            CCamera::TFormat /*aFormat*/,  
+            TInt /*aCompressionQuality*/, 
+            const TRect& /*aCropRect*/ ){};
+
+        /**
+        * Gets the current prepared still quality level index.
+        * @since 2.1
+        * @return Still quality level index.
+        */
+        TInt StillQualityIndex() const{ return 0; };
+
+        /**
+        * Gets the still image frame size for the specified quality level.
+        * @since 2.1
+        * @return void
+        */
+        void GetStillFrameSize(
+            TInt /*aStillQualityIndex*/, 
+            TSize& /*aSize*/ ) const{};
+
+        /**
+        * Gets the estimated still image size in bytes for the 
+        * specified quality level.
+        * @since 2.1
+        * @return Estimated still capturing image size in bytes.
+        */
+        TInt EstimatedStillSizeInBytes( 
+            TInt /*aStillQualityIndex*/ ) const{ return 0; };
+
+        /**
+        * Captures a still image or a still image burst.
+        * Calls first observer method McaeoSnapImageReady() and then 
+        * McaeoStillImageReady().
+        * McaeoSnapImageReady() is not called if engine initialization 
+        * has been done 
+        * with parameter aCreateSnapImage == EFalse.
+        * @since 2.1
+        * @return void
+        */
+        void CaptureStill();
+
+        /**
+        * Cancels the on-going still image (single/burst) capture request.
+        * @since 2.1
+        * @return void
+        */
+        void CancelCaptureStill(){};
+
+        /** 
+        * Sets the size of the snap image bitmap.
+        * @since 3.0
+        * @param aSize The size of the snap bitmap. Corrected size is returned. 
+        * @return void
+        */
+        void SetSnapImageSizeL(
+            TSize& ){};
+         /** 
+        * Sets the color mode of the snap image bitmap
+        * @since 3.0
+        * @param aMode The color mode of the snap bitmap.
+        * @return void
+        */
+        void SetSnapImageColorMode(
+        TDisplayMode ){};
+
+    public: // Video recording
+
+        /**
+        * Sets the file name for the video clip to be recorded.
+        * @since 2.1
+        * @param aVideoClipFileName File name.
+        * @return void
+        */
+        void SetVideoRecordingFileNameL( 
+            const TDesC& aVideoClipFileName );
+
+        /**
+        * Prepares Camera Application Engine for video recording on 
+        * specified quality level.
+        * Calls observer method McaeoVideoPrepareComplete().
+        * @since 2.1
+        * Can have values 0 ... TCamAppEngineInfo::iNumVideoQualityLevelsSupported - 1
+        * @return void
+        */
+        void PrepareVideoRecordingL( TInt /*aVideoQualityIndex*/ ){};
+
+        /**
+        * Prepares Camera Application Engine for video recording with 
+        * specified recording parameters.
+        * Calls observer method McaeoVideoPrepareComplete().
+        * @since 2.1
+        * @return void
+        */
+        void PrepareVideoRecordingL( 
+            const TSize& /*aFrameSize*/, 
+            TReal32 /*aFrameRate*/, 
+            TInt /*aBitRate*/, 
+            TBool /*aAudioEnabled*/,
+            const TDesC8& /*aMimeType*/, 
+            const TDesC& /*aPreferredSupplier*/, 
+            const TDesC8& /*aVideoType = KNullDesC8*/, 
+            const TDesC8& /*aAudioType = KNullDesC8*/ ){};
+
+         /**
+        * Closes (prepared) video recording to free resources.
+        * @since 2.1
+        * @return void
+        */
+        void CloseVideoRecording(){};
+
+        /**
+        * Gets the current prepared video quality level index.
+        * @since 2.1
+        * @return Video quality level index.
+        */
+        TInt VideoQualityIndex() const{ return 0; };
+        
+        /**
+        * Gets the video frame size for the specified video quality level.
+        * @since 2.1
+        * @return Video frame size.
+        */
+        void GetVideoFrameSize(
+            TInt /*aVideoQualityIndex*/, 
+            TSize& /*aSize*/ ) const{};
+
+        /**
+        * Gets the video frame rate for the specified video quality level.
+        * @since 2.1
+        * @return Video frame rate.
+        */
+        TReal32 VideoFrameRate( TInt /*aVideoQualityIndex*/ ) const{ return 0; };
+
+        /**
+        * Gets the estimated video recording bit rate including audio bit rate 
+        * for the specified video quality level.
+        * @since 2.1
+        * @return Video recording bit rate rate including audio bit rate.
+        */
+        TInt EstimatedVideoRecordingBitRateL( 
+            TInt /*aVideoQualityIndex*/ ) const{ return 0; };
+
+        /**
+        * Sets the maximum size in bytes for a video clip.
+        * @since 2.1
+        * If set to 0, then no limit but the available storage space.
+        * @return void
+        */
+        void SetVideoClipMaxSizeL( TInt /*aMaxClipSizeInBytes = 0*/ ){};
+        
+        /**
+        * Gets the current maximum size in bytes for a video clip.
+        * @since 2.1
+        * @return Video clip maximum size.
+        */
+        TInt VideoClipMaxSize() const{ return 0; };
+
+        /**
+        * Sets audio enabled or disabled for video recording.
+        * @since 2.1
+        * @return void
+        */
+        void SetVideoAudioL( TBool /*aAudioEnabled*/ ){};
+        
+        /**
+        * Queries if audio is enabled or disabled for video recording.
+        * @since 2.1
+        * @return Boolean indicating whether audio is enabled or disabled for video recording.
+        */
+        TBool VideoAudio() const{ return EFalse; };
+
+        /**
+        * Sets the time interval for video recording time info.
+        * @since 2.1
+        * @return void
+        */
+        void SetVideoTimesIntervalL( 
+            TTimeIntervalMicroSeconds /*aInterval*/ ){};
+
+        /**
+        * Gets the current time interval for video recording time info.
+        * @since 2.1
+        * @return Time interval in microseconds for video recording time info.
+        */
+        TTimeIntervalMicroSeconds VideoTimesInterval() const{ return TTimeIntervalMicroSeconds( 0 ); };
+
+        /**
+        * Starts video recording.
+        * Calls observer method McaeoVideoRecordingOn().
+        * @since 2.1
+        * @return void
+        */
+        void StartVideoRecording();
+
+        /**
+        * Stops video recording.
+        * Calls observer method McaeoVideoRecordingComplete().
+        * @since 2.1
+        * @return void
+        */
+        void StopVideoRecording();
+
+        /**
+        * Pauses video recording.
+        * Calls observer method McaeoVideoRecordingPaused().
+        * @since 2.1
+        * @return void
+        */
+        void PauseVideoRecording();
+
+        /**
+        * Resumes video recording after pause.
+        * Calls observer method McaeoVideoRecordingOn().
+        * @since 2.1
+        * @return void
+        */
+        void ResumeVideoRecording();
+
+        /**
+        * Gets the remaining video recording time before recording has started.
+        * @since 2.1
+        * @return Remaining video recording time.
+        */
+        TTimeIntervalMicroSeconds RemainingVideoRecordingTime()  
+            const{ return TTimeIntervalMicroSeconds( 99999999 ); };
+
+        /**
+        * Queries if video recording is running.
+        * @since 2.1
+        * @return Boolean indicating whether video recording is running or not.
+        */
+        TBool IsVideoRecording() const{ return EFalse; };
+
+    public: // New overloading method for preparing video recording
+
+        /**
+        * Prepares Camera Application Engine for video recording with specified recording parameters.
+        * Calls observer method McaeoVideoPrepareComplete().
+        * @since 2.1
+        * @return void
+        */
+        void PrepareVideoRecordingL(
+            const TSize&  /*aFrameSize*/, 
+            TReal32       /*aFrameRate*/, 
+            TInt          /*aBitRate*/, 
+            TBool         /*aAudioEnabled*/,
+            TInt          /*aAudioBitRate*/, 
+            const TDesC8& /*aMimeType*/, 
+            const TDesC&  /*aPreferredSupplier*/, 
+            const TDesC8& /*aVideoType*/, 
+            const TDesC8& /*aAudioType*/ );
+
+    public: // Still image burst capturing
+
+        /**
+        * Sets the Camera Application Engine still image burst capturing 
+        * observer.
+        * @since 2.1
+        * @param aObserver Camera Application Engine still burst observer.
+        * @return void
+        */
+        void SetCaeStillBurstObserver( MCaeStillBurstObserver& aObserver );
+
+        /**
+        * Sets the image count for still image (burst) capturing.
+        * Note: Inputting value 1 switches back to normal still capturing.
+        * @since 2.1
+        * @param aImageCount The desired count of images to capture (in a burst). 
+        * @return The count of images to be captured (in a burst).
+        */
+        TInt SetStillCaptureImageCountL( TInt aImageCount );
+
+        /**
+        * Gets the image count for still image (burst) capturing.
+        * @since 2.1
+        * @return Count of images to capture (in a burst).
+        */
+        TInt StillCaptureImageCount() const{ return 0; };
+
+        /**
+        * Sets the time interval between single captures in still burst.
+        * @since 2.1
+        * @return void
+        */
+        void SetStillBurstCaptureIntervalL( 
+            TTimeIntervalMicroSeconds /*aInterval*/ ){};
+
+        /**
+        * Gets the time interval between single captures in still burst.
+        * @since 2.1
+        * @return Time interval in microseconds.
+        */
+        TTimeIntervalMicroSeconds StillBurstCaptureInterval() const{ return TTimeIntervalMicroSeconds( 0 ); };
+
+        /**
+        * Stops still image burst capturing. 
+        * Delivers the burst images captured before call. 
+        * This is different from CancelCaptureStill that cancels the operation and 
+        * prevents delivering the captured image.
+        * @since 2.1
+        * @return void
+        */
+        void StopStillBurstCapture();
+
+    public: 
+
+        /**
+        * Prepare Camera Application Engine for still image capture on 
+        * specified quality level with desired snap image size. 
+        * The returned snap image size is always equal or bigger in both 
+        * dimensions than the given size. The returned size is stepwise 
+        * downscaled from the captured image size. The parameter aSnapSize 
+        * is ignored if the image format does not support it in the engine.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @return void
+        */
+        void PrepareStillCaptureL(
+            TInt /*aStillQualityIndex*/, 
+            TSize& /*aSnapSize*/ ){};
+
+        /**
+        * Prepare Camera Application Engine for still image capture with 
+        * specified image size, format, and desired snap image size. 
+        * The returned snap image size is always equal or bigger in both 
+        * dimensions than the given size. The returned size is stepwise 
+        * downscaled  from the captured image size. The parameter aSnapSize 
+        * is ignored if the image format does not support it in the engine.
+        * Calls observer method McaeoStillPrepareComplete().
+        * @since 2.1
+        * @param aSize Still image size.
+        * @param aFormat Still image format.
+        * @param aCompressionQuality Still image compression quality [0...100].
+        * @param aCropRect Desired cropping/clipping rectangle. The size (0,0) means that this parameter is ignored.
+        * @param aSnapSize Desired snap image size. Returns the real snap image size.
+        * @return void
+        */
+        void PrepareStillCaptureL(
+            const TSize& aSize, 
+            CCamera::TFormat aFormat,  
+            TInt aCompressionQuality, 
+            const TRect& aCropRect,
+            TSize& aSnapSize );
+
+        /**
+        * Sets the exposure value (EV) compensation index.
+        * @since 2.1
+        * @return void
+        */
+        void SetEvCompensationL( TInt /*aEvIndex = 0*/ ){};
+
+        /**
+        * Gets the current exposure value (EV) compensation index.
+        * @since 2.1
+        * @return Exposure value compensation index.
+        */
+        TInt EvCompensation() const{ return 0; };
+                
+        /**
+        * Sets snap image creation on/off.
+        * @since 2.1
+        * @return void
+        */
+        void SetSnapImageCreation( 
+            TBool /*aCreateSnapImage = ETrue*/ ){};
+        
+        /** 
+        * A static (factory) function to create the class instance.
+        * @since 2.6
+        * @return Pointer to a fully constructed CCaeEngine object. 
+        * Ownership is passed to the caller.
+        */
+        IMPORT_C static CCaeEngine* NewL( 
+            TInt /*aCameraIndex*/ );
+        
+        /** 
+        * Gets the number of cameras on the device.
+        * @since 2.6
+        * @return Count of cameras present on the device. 
+        */
+        IMPORT_C static TInt CamerasAvailable();
+        
+        /** 
+        * Enumerates through the available image capture sizes. 
+        * Returns the image size based on the specified size index and format. 
+        * The largest image resolution is returned for index 0, the smallest 
+        * for index TCamAppEngineInfo::iNumImageSizesSupported-1.
+        * The size index must be in the range 0 to 
+        * TCamAppEngineInfo::iNumImageSizesSupported-1 inclusive.
+        * @since 2.6
+        * @return void
+        */
+        void EnumerateStillCaptureSizes(
+            TSize& /*aSize*/, 
+            TInt /*aSizeIndex*/, 
+            CCamera::TFormat /*aFormat*/ ) const{};
+        
+        /** 
+        * Sets the quality value to use with JPEG and Exif image formats. 
+        * @since 2.6
+        * @return void
+        */
+        void SetJpegQuality(
+            TInt /*aQuality*/ ){};
+        
+        /** 
+        * Gets the currently set JPEG quality value.
+        * Returns 0 if not previously prepared or set.
+        * @since 2.6
+        * @return The currently set JPEG quality value. 
+        */
+        TInt JpegQuality() const{ return 0; };
+
+	public: // New method to allow extension mechanism.
+        TAny* CustomInterface(TUid /*aId*/) { return NULL; };
+
+        /**
+        * Gets array of features per interfaces. Each feature is ordered in
+        * the current calling order e.g. when certain image prosessing 
+        * operation is applied to the captured image. If SetOrder() has not yet
+        * been called, the returned order is the default order.
+        * @since 2.8
+        * @param aOrderedFeatureArray Feature array sorted by the current calling order in an interface.
+        * @return  void
+        */
+        void GetOrderL( RCaeOrderedFeatureList& aOrderedFeatureList );
+
+        /**
+        * Sets array of features per interfaces. Each feature should be ordered
+        * according to the wanted calling order e.g. to define when certain image 
+        * prosessing operation is applied to the captured image. If this method
+        * leaves, the internal array has not been changed.
+        * @since 2.8
+        * @param aOrderedFeatureArray Feature array sorted by the wanted calling order in an interface.
+        * @return void. 
+        */
+        void SetOrderL( const RCaeOrderedFeatureList& aOrderedFeatureList );
+
+        /** 
+        * Sets the source of the snap image bitmap.
+        * @since 2.8
+        * @param aSnapImageSource The source of the snap image bitmap.
+        * @return void
+        */
+        void SetSnapImageSourceL( TSnapImageSource aSnapImageSource );
+        
+        /** 
+        * Sets the specific image codec implementation to be used in decoding and encoding.
+        * @since 3.0
+        * @param aDecoderUid The UID of the specific image decoder to be used. KNullUid means the default decoder.
+        * @param aEncoderUid The UID of the specific image encoder to be used. KNullUid means the default encoder.
+        * @return void
+        */  
+        void SetImageCodecsL( TUid aDecoderUid, TUid aEncoderUid );
+
+        /** 
+        * Enumerate Video Frame Size
+        * @since 3.2
+        * @see CCaeEngine
+        */
+        TInt EnumerateVideoFrameSizeL( const TSize& /*aSize*/ );
+        
+        /** 
+        * Gets the device-unique handle of camera object owned by the CCaeEngine.
+        * @since 3.2
+        * @see CCaeEngine
+        */
+        TInt CCameraHandle() const;
+
+        /**
+        * Set CamAppEngine internal camera state to reserved and power state on. 
+        * @since 3.2
+        * @see CCaeEngine
+        */
+        void EnableVideoRecording();
+        
+        /**
+        * Set CamAppEngine internal camera state to released and power state off.
+        * @since 3.2
+        * @see CCaeEngine
+        */
+        void DisableVideoRecording();
+        
+        /** 
+        * Sets CAE to Extension processing mode.
+        * @since 3.2
+        * @param aExtModeActive Boolean indicating if extension mode is enabled or disabled.
+        * @param aCreateSnapImage Boolean indicating if "snap-images" should be created by CAE.
+        * @return void
+        */
+        void SetCaeExtensionModeL( TBool aExtModeActive, TBool aCreateSnapImage );
+
+        /** 
+        * Process extension for view finder.
+        * @since 3.2
+        * @param aFrame The view finder frame bitmap that is processed.
+        * @return void
+        */
+        void ProcessExtViewFinderFrameReadyL( CFbsBitmap& aFrame );
+
+        /** 
+        * Process extension for snap image.
+        * @since 3.2
+        * @param aSnapImage The bitmap of snap image. Does not transfer ownership.
+        * @return void
+        */
+        void ProcessExtSnapImageL( CFbsBitmap& aSnapImage );
+        
+        /** 
+        * Process extension for captured image.
+        * @since 3.2
+        * @param aBitmap The captured bitmap image. Does not transfer ownership.
+        * @param aLastImage Set when last image of the burst is completed.
+        * @return void
+        */
+        void ProcessExtCapturedImageL( CFbsBitmap& aBitmap, TBool aLastImage );
+
+        /** 
+        * Process extension for captured image.
+        * @since 3.2
+        * @param aImageData The captured image, if it is a formatted image and type of HBufC8. Ownership is transferred.
+        * @param aLastImage Set when last image of the burst is completed.
+        * @return void
+        */
+        void ProcessExtCapturedImageL( HBufC8* aImageData, TBool aLastImage );
+
+        /** 
+        * Process extension for captured image.
+        * @since 3.2
+        * @param aImageDataDes The captured image, if it is a formatted image and type of TDesC8. Does not transfer ownership.
+        * @param aLastImage Set when last image of the burst is completed.
+        * @return void
+        */
+        void ProcessExtCapturedImageL( TDesC8& aImageDataDes, TBool aLastImage );
+
+        /** 
+        * Cancels extensions processing
+        * @since 3.2
+        * @return void
+        */
+        void ProcessExtCancel();
+
+        /** 
+        * Get list of skipped extensions. Application may define which extensions are skipped during image processing. 
+        * @since 3.2
+        * @param aSkippedExtensions The list of skipped extensions TUid. 
+        * @return void
+        */
+        void SkippedExtensionListL( RCaeOrderedFeatureList& aSkippedExtensions );
+
+        /** 
+        * Set list of skipped extensions. Application may define which extensions are skipped during image processing.
+        * The GetOrderL() returns the list of all installed extensions.
+        * @since 3.2
+        * @param aSkippedExtensions The list of installed and skipped extensions TUid. 
+        * @return void
+        */
+        void SetSkippedExtensionList( RCaeOrderedFeatureList& aSkippedExtensions );
+
+        TInt SetAsyncVideoStopMode( TBool aAsyncVideoStopEnabled );
+
+    private:
+        CCameraappDummyEngineImp();
+        void ConstructL();
+
+    protected: // data
+        MCamAppEngineObserver* iObserver;
+        CCameraappDummyCallbackActive* iCallBackActive;
+        TBool iIsViewFinding;
+        TInt iZoomValue;
+        TInt iImageCount;
+        TBool iVideoPrepared;
+        CCaeEngine::TZoomMode iZoomMode;        
+    };
+
+
+#endif // CAMERAAPPDUMMYENGINE_H