diff -r 9ae0fe04e757 -r 92a82bc706f7 mmplugins/cameraplugins/source/testcamera/TestCamera.h --- a/mmplugins/cameraplugins/source/testcamera/TestCamera.h Thu Mar 25 11:21:36 2010 +0900 +++ b/mmplugins/cameraplugins/source/testcamera/TestCamera.h Tue Oct 19 11:48:59 2010 +0900 @@ -1,318 +1,318 @@ -// Copyright (c) 2002-2009 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: -// - -#ifndef __TESTCAMERA_H__ -#define __TESTCAMERA_H__ - - -#include -#include -#include -#include -#include -#include - -_LIT(KTestCameraPluginName, "C:\\102070cc.txt"); - -const TInt KMinTestCameraZoom = -3; -const TInt KMaxTestCameraZoom = 3; -const TReal32 KMaxTestCameraDigitalZoomFactor = 1.0; -const TInt KMaxTestCameraDigitalZoom = 0; -const TInt KFramePosIncrement = 5; -const TInt KFrameFeatureSize = 25; -const TInt KFrameFeatureBorderThickness = 5; -const enum CCamera::TFormat KInitialViewFinderFormat = CCamera::EFormatFbsBitmapColor16M; -const TDisplayMode KViewFinderDisplayMode = EColor4K; - -class CTestCamAdvSet; -class CTestCamPresets; -class CTestCamSnapshot; -class CTestCamImgProc; - -class RTestCameraFrameBuffer : public MCameraBuffer - { -public: - RTestCameraFrameBuffer(CFbsBitmap*& aFrame): iAvailable(ETrue), iFrame(aFrame) {} - virtual TInt NumFrames() {return 0;} - virtual TDesC8* DataL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return NULL; } - virtual CFbsBitmap& BitmapL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return *iFrame;} - virtual RChunk& ChunkL() { return iChunk;} - virtual TInt ChunkOffsetL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0;} - virtual TInt FrameSize(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0; } - virtual void Release() {iAvailable = ETrue;} -public: - volatile TBool iAvailable; - CFbsBitmap*& iFrame; - RChunk iChunk; - }; - -class RTestFrameBuffer : public MFrameBuffer - { -public: - RTestFrameBuffer(CFbsBitmap*& aFrame): iAvailable(ETrue), iFrame(aFrame) {} - virtual TDesC8* DataL(TInt /*aIndex*/) { User::Leave(KErrNotSupported); return NULL; } - virtual CFbsBitmap* FrameL(TInt aIndex) { if (aIndex != 0) User::Leave(KErrNotSupported); return iFrame; } - virtual void Release() { iAvailable = ETrue; } -public: - TBool iAvailable; - CFbsBitmap*& iFrame; - }; - -class CDirectScreenAccess; - -class CTestCamera : public CCameraPlugin, public MDirectScreenAccess - { - friend class CTestCamAdvSet; - friend class CTestCamPresets; - friend class CTestCamSnapshot; - friend class CTestCamImgProc; - -public: - static CTestCamera* NewL(); - ~CTestCamera(); - void ConstructL(); - // from CCameraPlugin - void Construct2L(MCameraObserver& aObserver,TInt aCameraIndex); - void Construct2DupL(MCameraObserver& aObserver,TInt aCameraHandle); - void Construct2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); - void Construct2DupL(MCameraObserver2& aObserver,TInt aCameraHandle); -private: - // From CCamera - virtual void CameraInfo(TCameraInfo& aInfo) const; - virtual void Reserve(); - virtual void Release(); - virtual void PowerOn(); - virtual void PowerOff(); - virtual TInt Handle(); - - virtual void SetZoomFactorL(TInt aZoomFactor = 0); - virtual TInt ZoomFactor() const; - virtual void SetDigitalZoomFactorL(TInt aDigitalZoomFactor = 0); - virtual TInt DigitalZoomFactor() const; - - virtual void SetContrastL(TInt aContrast); - virtual TInt Contrast() const; - virtual void SetBrightnessL(TInt aBrightness); - virtual TInt Brightness() const; - virtual void SetFlashL(TFlash aFlash = EFlashNone); - virtual TFlash Flash() const; - virtual void SetExposureL(TExposure aExposure = EExposureAuto); - virtual TExposure Exposure() const; - virtual void SetWhiteBalanceL(TWhiteBalance aWhiteBalance = EWBAuto); - virtual TWhiteBalance WhiteBalance() const; - - virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect); - virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect,TRect& aClipRect); - virtual void StartViewFinderBitmapsL(TSize& aSize); - virtual void StartViewFinderBitmapsL(TSize& aSize,TRect& aClipRect); - virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize); - virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize,TRect& aClipRect); - virtual void StopViewFinder(); - virtual TBool ViewFinderActive() const; - virtual void SetViewFinderMirrorL(TBool aMirror); - virtual TBool ViewFinderMirror() const; - - virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex); - virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex,const TRect& aClipRect); - virtual void CaptureImage(); - virtual void CancelCaptureImage(); - virtual void EnumerateCaptureSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const; - - virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer); - virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer,const TRect& aClipRect); - virtual void StartVideoCapture(); - virtual void StopVideoCapture(); - - virtual TBool VideoCaptureActive() const; - virtual void EnumerateVideoFrameSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const; - virtual void EnumerateVideoFrameRates(TReal32& aRate,TInt aRateIndex,TFormat aFormat,TInt aSizeIndex,TExposure aExposure = EExposureAuto) const; - virtual void GetFrameSize(TSize& aSize) const; - virtual TReal32 FrameRate() const; - virtual TInt BuffersInUse() const; - virtual TInt FramesPerBuffer() const; - - virtual void SetJpegQuality(TInt aQuality); - virtual TInt JpegQuality() const; - - virtual TAny* CustomInterface(TUid aInterface); - - // From MAbortDirectScreenAccess - virtual void AbortNow(RDirectScreenAccess::TTerminationReasons aReason); - - // From MDirectScreenAccess - virtual void Restart(RDirectScreenAccess::TTerminationReasons aReason); - - // New functions - static TInt TimerCallBack(TAny* aThis); - void FrameReady(); - void GetFrame(CFbsBitGc& aGc, TPoint& aPos) const; - void GetImgProcessedFrame(CFbsBitGc& aGc, TPoint& aPos) const; - void ServiceVideo(TInt aBuferNum); - void ServiceViewFinder(CFbsBitmap* aSourceFrame); - void ServiceImageCapture(const CFbsBitGc& aSourceBitmapGc); - void ServiceBurstImageCapture(const CFbsBitGc& aSourceBitmapGc); - void DoCaptureImageL(); - void CheckReserveAndPowerL(); - TInt CheckReserveAndPower() const; - void CustomInterfaceL(TAny*& aIface, TUid aInterface); - static TInt ReserveCallBack(TAny* aThis); - static TInt PowerOnCallBack(TAny* aThis); - static TInt ImageCaptureCallBack(TAny* aThis); - static TInt VideoCaptureCallBack(TAny* aThis); - static TInt HandleEventCallBack(TAny* aThis); - static TInt HandleEvent2CallBack(TAny* aThis); - -private: - CTestCamera(); -private: - MCameraObserver* iObserver; // not owned - MCameraObserver2* iObserver2; // not owned - TBool iReserved; - TBool iPowerOn; - - TCameraInfo iInfo; - CPeriodic* iTimer; - TTimeIntervalMicroSeconds32 iFrameDelay; - TInt iFrameIndex; - TTimeIntervalMicroSeconds iElapsedTime; - TPoint iStillImagePos; - TPoint iVideoFramePos; - - TReal32 iVideoFrameRate; - TInt iBuffersInUse; - TSize iVideoFrameSize; - TFormat iVideoFrameFormat; - - CFbsBitmap* iVideoFrame1; - CFbsBitmapDevice* iVideoFrameDev1; - CFbsBitGc* iVideoFrameGc1; - CFbsBitmap* iVideoFrame2; - CFbsBitmapDevice* iVideoFrameDev2; - CFbsBitGc* iVideoFrameGc2; - - TInt iStillCaptureErr; - TSize iStillImageSize; - TFormat iStillImageFormat; - CFbsBitmap* iStillImage; - CFbsBitmapDevice* iStillImageDev; - CFbsBitGc* iStillImageGc; - - TSize iViewFinderSize; - TFormat iViewFinderFormat; - CFbsBitmap* iViewFinderBitmap; - CFbsBitmapDevice* iViewFinderBitmapDev; - CFbsBitGc* iViewFinderBitmapGc; - - CDirectScreenAccess* iDSA; - CFbsScreenDevice* iScreenDev; - CFbsBitGc* iScreenGc; - TRect iScreenRect; - TRect iClipRect; - - CFbsBitmap* iImage; - CFbsBitmapDevice* iDev; - CFbsBitGc* iGc; - - CAsyncCallBack iReserveAsync; - CAsyncCallBack iPowerOnAsync; - CAsyncCallBack iImageCaptureAsync; - CAsyncCallBack iVideoCaptureAsync; - CAsyncCallBack iHandleEventAsync; - CAsyncCallBack iHandleEvent2Async; - - RTestFrameBuffer iFrameBuffer1; - RTestFrameBuffer iFrameBuffer2; - - RTestCameraFrameBuffer iFrameCameraBuffer1; - RTestCameraFrameBuffer iFrameCameraBuffer2; - - TInt iVideoCaptureErr; - // Members to store the current optical or digital value set with SetZoomFactorL() and SetDigitalZoomFactorL() - // Although arguments have trailing Factor in fact they must contain values in the ranges specified by - // iInfo.iMinZoom : iInfo.iMaxZoom for optical zoom and - // 0 : iInfo.iMaxDigitalZoom for digital zoom - // The factor values cannot be modified using Camera API as it is assumed - // that they are determined by the camera hardware. - TInt iZoom; - TInt iDigitalZoom; - - TInt iContrast; - TInt iBrightness; - - TInt iImgProcBrightness; - TInt iImgProcContrast; - - volatile TBool iViewFinderActive; - volatile TBool iVideoCaptureActive; - volatile TBool iImageCaptureActive; - volatile TBool iVideoPreparedLast; - volatile TBool iVideoCapturePrepared; - volatile TBool iImageCapturePrepared; - - RArray iImageSizes; - RArray iVideoFrameSizes; - RArray iVideoFrameRates; - TInt iCameraIndex; - TInt iCameraHandle; - TInt iPriority; - - TECAMEvent iECamEvent; - TECAMEvent2 iECamEvent2; - TInt iEventError; - - CTestCamAdvSet* iAdvSettingsImpl; - CTestCamSnapshot* iSnapshotImpl; - CTestCamImgProc* iImgProcImpl; - - CCamera::CCameraAdvancedSettings::TDriveMode iDriveMode; - TInt iBurstImages; - }; - -class CTestCameraInfo : public CCameraInfoPlugin - { -public: - static CTestCameraInfo* NewL(); - ~CTestCameraInfo(); - // from CCameraInfoPlugin - TInt CamerasAvailable(); -private: - CTestCameraInfo(); - }; - -enum TStubPanicReasons - { - EPanicUnimplemented=1 - }; - -class FileDependencyUtil - { -public: - static void CheckFileDependencyL(); - }; - -class CDataGlobal : public CBase - { -public: - CTestCamAdvSet* iTestCamAdvSet; - CTestCamPresets* iTestCamPresets; - CTestCamSnapshot* iTestCamSnapshot; - CTestCamImgProc* iTestCamImgProc; - TInt iAdvSetReferenceCount; - TInt iPresetsReferenceCount; - TInt iSnapshotReferenceCount; - TInt iImgProcReferenceCount; - }; - -#endif +// Copyright (c) 2002-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 "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __TESTCAMERA_H__ +#define __TESTCAMERA_H__ + + +#include +#include +#include +#include +#include +#include + +_LIT(KTestCameraPluginName, "C:\\102070cc.txt"); + +const TInt KMinTestCameraZoom = -3; +const TInt KMaxTestCameraZoom = 3; +const TReal32 KMaxTestCameraDigitalZoomFactor = 1.0; +const TInt KMaxTestCameraDigitalZoom = 0; +const TInt KFramePosIncrement = 5; +const TInt KFrameFeatureSize = 25; +const TInt KFrameFeatureBorderThickness = 5; +const enum CCamera::TFormat KInitialViewFinderFormat = CCamera::EFormatFbsBitmapColor16M; +const TDisplayMode KViewFinderDisplayMode = EColor4K; + +class CTestCamAdvSet; +class CTestCamPresets; +class CTestCamSnapshot; +class CTestCamImgProc; + +class RTestCameraFrameBuffer : public MCameraBuffer + { +public: + RTestCameraFrameBuffer(CFbsBitmap*& aFrame): iAvailable(ETrue), iFrame(aFrame) {} + virtual TInt NumFrames() {return 0;} + virtual TDesC8* DataL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return NULL; } + virtual CFbsBitmap& BitmapL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return *iFrame;} + virtual RChunk& ChunkL() { return iChunk;} + virtual TInt ChunkOffsetL(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0;} + virtual TInt FrameSize(TInt aFrameIndex) {if (aFrameIndex != 0) { User::Leave(KErrArgument); } return 0; } + virtual void Release() {iAvailable = ETrue;} +public: + volatile TBool iAvailable; + CFbsBitmap*& iFrame; + RChunk iChunk; + }; + +class RTestFrameBuffer : public MFrameBuffer + { +public: + RTestFrameBuffer(CFbsBitmap*& aFrame): iAvailable(ETrue), iFrame(aFrame) {} + virtual TDesC8* DataL(TInt /*aIndex*/) { User::Leave(KErrNotSupported); return NULL; } + virtual CFbsBitmap* FrameL(TInt aIndex) { if (aIndex != 0) User::Leave(KErrNotSupported); return iFrame; } + virtual void Release() { iAvailable = ETrue; } +public: + TBool iAvailable; + CFbsBitmap*& iFrame; + }; + +class CDirectScreenAccess; + +class CTestCamera : public CCameraPlugin, public MDirectScreenAccess + { + friend class CTestCamAdvSet; + friend class CTestCamPresets; + friend class CTestCamSnapshot; + friend class CTestCamImgProc; + +public: + static CTestCamera* NewL(); + ~CTestCamera(); + void ConstructL(); + // from CCameraPlugin + void Construct2L(MCameraObserver& aObserver,TInt aCameraIndex); + void Construct2DupL(MCameraObserver& aObserver,TInt aCameraHandle); + void Construct2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); + void Construct2DupL(MCameraObserver2& aObserver,TInt aCameraHandle); +private: + // From CCamera + virtual void CameraInfo(TCameraInfo& aInfo) const; + virtual void Reserve(); + virtual void Release(); + virtual void PowerOn(); + virtual void PowerOff(); + virtual TInt Handle(); + + virtual void SetZoomFactorL(TInt aZoomFactor = 0); + virtual TInt ZoomFactor() const; + virtual void SetDigitalZoomFactorL(TInt aDigitalZoomFactor = 0); + virtual TInt DigitalZoomFactor() const; + + virtual void SetContrastL(TInt aContrast); + virtual TInt Contrast() const; + virtual void SetBrightnessL(TInt aBrightness); + virtual TInt Brightness() const; + virtual void SetFlashL(TFlash aFlash = EFlashNone); + virtual TFlash Flash() const; + virtual void SetExposureL(TExposure aExposure = EExposureAuto); + virtual TExposure Exposure() const; + virtual void SetWhiteBalanceL(TWhiteBalance aWhiteBalance = EWBAuto); + virtual TWhiteBalance WhiteBalance() const; + + virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect); + virtual void StartViewFinderDirectL(RWsSession& aWs,CWsScreenDevice& aScreenDevice,RWindowBase& aWindow,TRect& aScreenRect,TRect& aClipRect); + virtual void StartViewFinderBitmapsL(TSize& aSize); + virtual void StartViewFinderBitmapsL(TSize& aSize,TRect& aClipRect); + virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize); + virtual void StartViewFinderL(TFormat aImageFormat,TSize& aSize,TRect& aClipRect); + virtual void StopViewFinder(); + virtual TBool ViewFinderActive() const; + virtual void SetViewFinderMirrorL(TBool aMirror); + virtual TBool ViewFinderMirror() const; + + virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex); + virtual void PrepareImageCaptureL(TFormat aImageFormat,TInt aSizeIndex,const TRect& aClipRect); + virtual void CaptureImage(); + virtual void CancelCaptureImage(); + virtual void EnumerateCaptureSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const; + + virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer); + virtual void PrepareVideoCaptureL(TFormat aFormat,TInt aSizeIndex,TInt aRateIndex,TInt aBuffersToUse,TInt aFramesPerBuffer,const TRect& aClipRect); + virtual void StartVideoCapture(); + virtual void StopVideoCapture(); + + virtual TBool VideoCaptureActive() const; + virtual void EnumerateVideoFrameSizes(TSize& aSize,TInt aSizeIndex,TFormat aFormat) const; + virtual void EnumerateVideoFrameRates(TReal32& aRate,TInt aRateIndex,TFormat aFormat,TInt aSizeIndex,TExposure aExposure = EExposureAuto) const; + virtual void GetFrameSize(TSize& aSize) const; + virtual TReal32 FrameRate() const; + virtual TInt BuffersInUse() const; + virtual TInt FramesPerBuffer() const; + + virtual void SetJpegQuality(TInt aQuality); + virtual TInt JpegQuality() const; + + virtual TAny* CustomInterface(TUid aInterface); + + // From MAbortDirectScreenAccess + virtual void AbortNow(RDirectScreenAccess::TTerminationReasons aReason); + + // From MDirectScreenAccess + virtual void Restart(RDirectScreenAccess::TTerminationReasons aReason); + + // New functions + static TInt TimerCallBack(TAny* aThis); + void FrameReady(); + void GetFrame(CFbsBitGc& aGc, TPoint& aPos) const; + void GetImgProcessedFrame(CFbsBitGc& aGc, TPoint& aPos) const; + void ServiceVideo(TInt aBuferNum); + void ServiceViewFinder(CFbsBitmap* aSourceFrame); + void ServiceImageCapture(const CFbsBitGc& aSourceBitmapGc); + void ServiceBurstImageCapture(const CFbsBitGc& aSourceBitmapGc); + void DoCaptureImageL(); + void CheckReserveAndPowerL(); + TInt CheckReserveAndPower() const; + void CustomInterfaceL(TAny*& aIface, TUid aInterface); + static TInt ReserveCallBack(TAny* aThis); + static TInt PowerOnCallBack(TAny* aThis); + static TInt ImageCaptureCallBack(TAny* aThis); + static TInt VideoCaptureCallBack(TAny* aThis); + static TInt HandleEventCallBack(TAny* aThis); + static TInt HandleEvent2CallBack(TAny* aThis); + +private: + CTestCamera(); +private: + MCameraObserver* iObserver; // not owned + MCameraObserver2* iObserver2; // not owned + TBool iReserved; + TBool iPowerOn; + + TCameraInfo iInfo; + CPeriodic* iTimer; + TTimeIntervalMicroSeconds32 iFrameDelay; + TInt iFrameIndex; + TTimeIntervalMicroSeconds iElapsedTime; + TPoint iStillImagePos; + TPoint iVideoFramePos; + + TReal32 iVideoFrameRate; + TInt iBuffersInUse; + TSize iVideoFrameSize; + TFormat iVideoFrameFormat; + + CFbsBitmap* iVideoFrame1; + CFbsBitmapDevice* iVideoFrameDev1; + CFbsBitGc* iVideoFrameGc1; + CFbsBitmap* iVideoFrame2; + CFbsBitmapDevice* iVideoFrameDev2; + CFbsBitGc* iVideoFrameGc2; + + TInt iStillCaptureErr; + TSize iStillImageSize; + TFormat iStillImageFormat; + CFbsBitmap* iStillImage; + CFbsBitmapDevice* iStillImageDev; + CFbsBitGc* iStillImageGc; + + TSize iViewFinderSize; + TFormat iViewFinderFormat; + CFbsBitmap* iViewFinderBitmap; + CFbsBitmapDevice* iViewFinderBitmapDev; + CFbsBitGc* iViewFinderBitmapGc; + + CDirectScreenAccess* iDSA; + CFbsScreenDevice* iScreenDev; + CFbsBitGc* iScreenGc; + TRect iScreenRect; + TRect iClipRect; + + CFbsBitmap* iImage; + CFbsBitmapDevice* iDev; + CFbsBitGc* iGc; + + CAsyncCallBack iReserveAsync; + CAsyncCallBack iPowerOnAsync; + CAsyncCallBack iImageCaptureAsync; + CAsyncCallBack iVideoCaptureAsync; + CAsyncCallBack iHandleEventAsync; + CAsyncCallBack iHandleEvent2Async; + + RTestFrameBuffer iFrameBuffer1; + RTestFrameBuffer iFrameBuffer2; + + RTestCameraFrameBuffer iFrameCameraBuffer1; + RTestCameraFrameBuffer iFrameCameraBuffer2; + + TInt iVideoCaptureErr; + // Members to store the current optical or digital value set with SetZoomFactorL() and SetDigitalZoomFactorL() + // Although arguments have trailing Factor in fact they must contain values in the ranges specified by + // iInfo.iMinZoom : iInfo.iMaxZoom for optical zoom and + // 0 : iInfo.iMaxDigitalZoom for digital zoom + // The factor values cannot be modified using Camera API as it is assumed + // that they are determined by the camera hardware. + TInt iZoom; + TInt iDigitalZoom; + + TInt iContrast; + TInt iBrightness; + + TInt iImgProcBrightness; + TInt iImgProcContrast; + + volatile TBool iViewFinderActive; + volatile TBool iVideoCaptureActive; + volatile TBool iImageCaptureActive; + volatile TBool iVideoPreparedLast; + volatile TBool iVideoCapturePrepared; + volatile TBool iImageCapturePrepared; + + RArray iImageSizes; + RArray iVideoFrameSizes; + RArray iVideoFrameRates; + TInt iCameraIndex; + TInt iCameraHandle; + TInt iPriority; + + TECAMEvent iECamEvent; + TECAMEvent2 iECamEvent2; + TInt iEventError; + + CTestCamAdvSet* iAdvSettingsImpl; + CTestCamSnapshot* iSnapshotImpl; + CTestCamImgProc* iImgProcImpl; + + CCamera::CCameraAdvancedSettings::TDriveMode iDriveMode; + TInt iBurstImages; + }; + +class CTestCameraInfo : public CCameraInfoPlugin + { +public: + static CTestCameraInfo* NewL(); + ~CTestCameraInfo(); + // from CCameraInfoPlugin + TInt CamerasAvailable(); +private: + CTestCameraInfo(); + }; + +enum TStubPanicReasons + { + EPanicUnimplemented=1 + }; + +class FileDependencyUtil + { +public: + static void CheckFileDependencyL(); + }; + +class CDataGlobal : public CBase + { +public: + CTestCamAdvSet* iTestCamAdvSet; + CTestCamPresets* iTestCamPresets; + CTestCamSnapshot* iTestCamSnapshot; + CTestCamImgProc* iTestCamImgProc; + TInt iAdvSetReferenceCount; + TInt iPresetsReferenceCount; + TInt iSnapshotReferenceCount; + TInt iImgProcReferenceCount; + }; + +#endif