diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CameraappDummyEngine.h --- /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 + +// 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