imagingandcamerafws/cameraunittest/src/ECamUnitTestPlugin/AdvancedSettings.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/cameraunittest/src/ECamUnitTestPlugin/AdvancedSettings.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,480 @@
+
+// Copyright (c) 2005-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 _ECAMSETPLUGIN1_H_
+#define _ECAMSETPLUGIN1_H_
+
+#include <ecam/ecamplugin.h>
+#include <ecam/ecaminfoplugin.h>
+
+#include <ecam/ecamadvsettingsintf.h>
+#include "ECamUnitTestPlugin.h"
+#include "ECamUnitTestPluginUids.hrh"
+#include <ecam/implementationfactoryintf.h>
+
+#define KSupportedPresetsNumber 4
+#define KSupportedTransformationsNumber 3
+
+const TInt KDefaultIsoRate					= 200;
+const TInt KMaxIsoRate						= 1600;
+const TInt KIsoRate1						= 320;
+const TInt KIsoRate2						= 640;
+const TInt KIsoRate3						= 840;
+const TInt KIsoRate4						= 1200;
+const TInt KIsoRate5						= 1400;
+const TInt KMinIsoRate						= 100;
+const TInt KNumSupportedIsoRate				= 8;
+const TInt KSupportedContinuousZoomType		= 0;
+
+const TUid KUidCameraManagementUid = {KUidCameraManagementUidValue};
+
+class CCamContinuousZoom;
+// Implementations of the MCameraAdvancedSettings class
+class CCamAdvSet : 	public CBase, 
+					public MCameraAdvancedSettings,
+					public MCameraAdvancedSettings2,
+					public MCameraAdvancedSettings3,
+					public MCameraAdvancedSettings4
+	{
+public:
+	static CCamAdvSet* NewL(CCamUnitTestPlugin& aOwner);
+	~CCamAdvSet();
+	
+protected:
+
+	void Release();	
+	//from MCameraAdvancedSettings
+	CCamera::CCameraAdvancedSettings::TCameraType CameraType() const;	
+	CCamera::CCameraAdvancedSettings::TCameraType CameraType(TInt aCameraIndex) const;	
+	TBool IsCameraPresent() const;
+	TBool IsCameraPresent(TInt aCameraIndex) const;
+	TInt CameraIndex() const;
+	TInt SupportedStabilizationModes() const;
+	CCamera::CCameraAdvancedSettings::TStabilizationMode StabilizationMode() const;
+	void SetStabilizationMode(CCamera::CCameraAdvancedSettings::TStabilizationMode aStabilizationMode = CCamera::CCameraAdvancedSettings::EStabilizationModeOff);
+	TInt SupportedFocusModes() const;
+	CCamera::CCameraAdvancedSettings::TFocusMode FocusMode() const;
+	void SetFocusMode(CCamera::CCameraAdvancedSettings::TFocusMode aFocusMode = CCamera::CCameraAdvancedSettings::EFocusModeAuto);
+	TInt SupportedFocusRanges() const;
+	CCamera::CCameraAdvancedSettings::TFocusRange FocusRange() const;
+	void SetFocusRange(CCamera::CCameraAdvancedSettings::TFocusRange aFocusRange = CCamera::CCameraAdvancedSettings::EFocusRangeNormal);
+	TInt SupportedAutoFocusTypes() const;
+	CCamera::CCameraAdvancedSettings::TAutoFocusType AutoFocusType() const;
+	void SetAutoFocusType(CCamera::CCameraAdvancedSettings::TAutoFocusType aAutoFocusType);
+	TInt SupportedAutoFocusAreas() const;
+	CCamera::CCameraAdvancedSettings::TAutoFocusArea AutoFocusArea() const;
+	void SetAutoFocusArea(CCamera::CCameraAdvancedSettings::TAutoFocusArea aAutoFocusArea);
+	TInt FocusDistance() const;
+	void SetFocusDistance(TInt aDistance); 
+	TInt GetMinFocalLength() const;
+
+    void GetSupportedIsoRatesL(RArray<TInt>& aSupportedIsoRates) const;
+    TInt IsoRate() const;
+    void SetIsoRate(TInt aRate);
+     	
+	void GetAperturesL(RArray<TInt>& aFStops, TValueInfo& aInfo) const;
+	TInt Aperture() const;
+	void SetAperture(TInt aFStop); 
+	void GetShutterSpeedsL(RArray<TInt>& aShutterSteps, TValueInfo& aInfo) const; 
+	TInt ShutterSpeed() const; 
+	void SetShutterSpeed(TInt aShutterSpeed); 
+	TInt SupportedMeteringModes() const;
+	CCamera::CCameraAdvancedSettings::TMeteringMode MeteringMode() const;
+	void SetMeteringMode(CCamera::CCameraAdvancedSettings::TMeteringMode aMeteringMode);
+	TInt SupportedDriveModes() const;
+	CCamera::CCameraAdvancedSettings::TDriveMode DriveMode() const;
+	void SetDriveMode(CCamera::CCameraAdvancedSettings::TDriveMode aDriveMode);
+	TInt SupportedBracketModes() const;
+	CCamera::CCameraAdvancedSettings::TBracketMode BracketMode() const;
+	void SetBracketMode(CCamera::CCameraAdvancedSettings::TBracketMode aBracketMode);
+	TInt SupportedBracketParameters() const;
+	CCamera::CCameraAdvancedSettings::TBracketParameter BracketParameter() const;
+	void SetBracketParameter(CCamera::CCameraAdvancedSettings::TBracketParameter aBracketParameter);
+	TInt SupportedBracketSteps() const;
+	CCamera::CCameraAdvancedSettings::TBracketStep BracketStep() const;
+	void SetBracketStep(CCamera::CCameraAdvancedSettings::TBracketStep aBracketStep);
+	void GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const;
+	void SetBracketMerge(TInt aStartIndex = 0, TInt aFrames = 2);
+	TInt SupportedFlashModes() const;
+	CCamera::TFlash FlashMode() const;
+	void SetFlashMode(CCamera::TFlash aMode = CCamera::EFlashNone);
+	TBool RedEyeReduceOn() const;
+	void SetRedEyeReduceOn(TBool aState);
+	void GetFlashCompensationStepsL(RArray<TInt>& aFlashCompensationSteps, TValueInfo& aInfo) const; 
+	TInt FlashCompensationStep() const;
+	TInt GetFlashCompensationStep(TInt& aFlashCompensationStep) const;
+	void SetFlashCompensationStep(TInt aFlashCompensationStep);
+	void GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
+
+	TInt FlashCompensation() const;
+	TInt GetFlashCompensation(TInt& aFlashCompensation) const;
+	void SetFlashCompensation(TInt aFlashCompensation);
+	TBool IsExternalFlashPresent() const;
+	void GetManualFlashPowerLevelsL(RArray<TInt>& aManualFlashPowerLevels, TValueInfo& aInfo) const;
+	TInt ManualFlashPowerLevel() const;
+	void SetManualFlashPowerLevel(TInt aManualFlashPowerLevel);
+	TInt SupportedExposureModes() const;
+	CCamera::TExposure ExposureMode() const;
+	void SetExposureMode(CCamera::TExposure aExposureMode = CCamera::EExposureAuto);
+	void GetExposureCompensationStepsL(RArray<TInt>& aExposureCompensationSteps, TValueInfo& aInfo) const;
+	TInt ExposureCompensationStep() const; 
+	TInt GetExposureCompensationStep(TInt& aExposureCompensationStep) const;
+	void SetExposureCompensationStep(TInt aExposureCompensationStep);
+	void GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const;
+
+	TInt ExposureCompensation() const;
+	TInt GetExposureCompensation(TInt& aExposureCompensation) const;
+	void SetExposureCompensation(TInt aExposureCompensation);
+	TInt SupportedWhiteBalanceModes() const;
+	CCamera::TWhiteBalance WhiteBalanceMode() const;
+	void SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode);
+	TBool ApertureExposureLockOn() const;
+	void SetApertureExposureLockOn(TBool aAELock);
+	TBool ShootClickOn() const;
+	void SetShootClickOn(TBool aShootClickOn);
+	void GetTimerIntervalsL(RArray<TInt>& aTimerIntervals, TValueInfo& aInfo) const;
+	TInt TimerInterval() const;  
+	void SetTimerInterval(TInt aTimerInterval); 
+	void GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const;
+	void GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const; 
+	void SetTimeLapse(const TTime& aStart, const TTime& aEnd, const TTime& aInterval); 
+	CCamera::CCameraAdvancedSettings::TPictureOrientation PictureOrientation() const;
+	TInt SupportedPixelAspectRatios() const;
+	CCamera::CCameraAdvancedSettings::TPixelAspectRatio PixelAspectRatio() const;
+	void SetPictureOrientation(CCamera::CCameraAdvancedSettings::TPictureOrientation aOrientation); 
+	void SetPixelAspectRatio(CCamera::CCameraAdvancedSettings::TPixelAspectRatio aPixelAspectRatio); 
+	TInt SupportedYuvRanges() const;
+	CCamera::CCameraAdvancedSettings::TYuvRange YuvRange() const;
+	void SetYuvRange(CCamera::CCameraAdvancedSettings::TYuvRange aYuvRange);
+	TInt BurstImages() const;
+	void SetBurstImages(TInt aImages);
+	void GetOpticalZoomStepsL(RArray<TInt>& aOpticalZoomSteps, TValueInfo& aInfo)  const;
+	TInt OpticalZoom() const;
+	void SetOpticalZoom(TInt aOpticalZoom);
+	void GetDigitalZoomStepsL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo)  const;
+
+	TInt DigitalZoom() const;
+	void SetDigitalZoom(TInt aDigitalZoom);
+	TBool ExposureLockOn() const;
+	void SetExposureLockOn(TBool aState=EFalse);
+	TBool AutoFocusLockOn() const;
+	void SetAutoFocusLockOn(TBool aState=EFalse);
+	void GetSupportedSettingsL(RArray<TUid>& aSettings) const;   
+	void GetActiveSettingsL(RArray<TUid>& aActiveSettings) const;
+	void GetDisabledSettingsL(RArray<TUid>& aActiveSettings) const;
+	void SetAutomaticSizeSelectionChangeOn(TBool aSetOn = EFalse);		
+	TBool AutomaticSizeSelectionChangeOn() const;
+
+    void GetSupportedContinuousAutoFocusTimeoutsL(RArray<TInt>& aTimeouts, TValueInfo& aInfo) const;
+    TInt ContinuousAutoFocusTimeout() const;
+    void SetContinuousAutoFocusTimeout(TInt aMicrosecondTimeout);
+    void SetStabilizationEffect(CCamera::CCameraAdvancedSettings::TStabilizationEffect aEffect);
+	CCamera::CCameraAdvancedSettings::TStabilizationEffect StabilizationEffect() const;
+	TInt SupportedStabilizationEffects() const;
+	TInt SupportedStabilizationComplexityValues() const;
+	CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity StabilizationComplexity() const;
+	void SetStabilizationComplexity(CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity aComplexity);
+    CCamera::CCameraAdvancedSettings::TWBUnits SupportedWBUnits() const;
+    void SetWBRgbValue(const TRgb& aValue);
+	void GetWBRgbValue(TRgb& aValue) const;
+	void GetWBSupportedColorTemperaturesL(RArray<TInt>& aWBColorTemperatures, TValueInfo& aInfo) const;
+	void SetWBColorTemperature(TInt aColorTemperature);	
+	TInt WBColorTemperature() const;
+	
+	//from MCameraAdvancedSettings2
+	TInt IsFlashReady(TBool& aReady) const;
+	void GetCurrentFocusModeStepsL(RArray<TInt>& aFocusModeSteps, TValueInfo& aInfo) const;
+	
+	//from MCameraAdvancedSettings3
+	void GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const;
+	void SetISORate(CCamera::CCameraAdvancedSettings::TISORateType aISORateType, TInt aParam);
+	void GetISORateL(CCamera::CCameraAdvancedSettings::TISORateType& aISORateType, TInt& aParam, TInt& aISORate) const;
+	void SetReferenceScreen(CWsScreenDevice& aScreenDevice);
+	void GetDigitalZoomStepsForStillL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aSizeIndex, CCamera::TFormat aFormat, TBool& aIsInfluencePossible) const;
+	void GetDigitalZoomStepsForVideoL(RArray<TInt>& aDigitalZoomSteps, TValueInfo& aInfo, TInt aFrameRateIndex, TInt aSizeIndex, CCamera::TFormat aFormat, TBool& aIsInfluencePossible, CCamera::TExposure aExposure) const;
+	void GetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraMode aCameraMode, TInt& aPreCaptureWarningSupported) const;
+	void SubscribeToPreCaptureWarningL(TInt aPreCaptureWarning);
+	void UnSubscribePreCaptureWarningL();
+	void GetPreCaptureWarningL(TInt& aPreCaptureWarning) const;
+	void GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const;
+	void GetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight& aAFAssistantLight) const;
+	void SetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLight aAFAssistantLight);
+	
+	//from MCameraAdvancedSettings4
+	void GetSupportedContinuousZoomTypeL(TUint& aSupportedContinuousZoomType) const;
+	void GetFocalLengthInfoL(TInt& aMinFocalLength, TInt& aCurrentFocalLength, TInt& aMaxFocalLength) const;
+	void GetNumOperationPreferenceL(TUint& aNumOperationPreferenceSupported) const;
+
+	void EnumerateOperationPreferenceL(TUint aOperationPreferenceIndex, CCamera::CCameraAdvancedSettings::TPerformanceLevel& aSpeedLevel, 
+			CCamera::CCameraAdvancedSettings::TPerformanceLevel& aQualityLevel, CCamera::CCameraAdvancedSettings::TPerformanceLevel& aLowMemoryConsumptionLevel, 
+			CCamera::CCameraAdvancedSettings::TPerformanceLevel& aLowPowerConsumptionLevel) const;
+
+	void SetOperationPreference(TUint aOperationPreferenceIndex);
+	void GetOperationPreferenceL(TInt& aOperationPreferenceIndex) const;
+	void GetSupportedEventsL(RArray<TUid>& aSupportedEvents) const;
+	void GetIndirectFeatureChangesL(TUid aRequestedSetting, RArray<TUid>& aIndirectFeatureChanges) const;
+	void CreateContinuousZoomImplFactoryL(MImplementationFactory*& aImplFactoryPtr) const;
+	
+private:
+	CCamAdvSet(CCamUnitTestPlugin& aOwner);
+	void Init();
+	void RetrieveResult(TInt& aError);
+	
+public:
+	TInt iRefCount;
+
+private:
+	TInt iCameraIndex;
+	TInt iCameraHandle;
+	TInt iPriority;
+	CCamUnitTestPlugin& iOwner;
+	TInt iShutterSpeed;
+	TInt iFocusDistance;
+	TInt iAperture;
+	TInt iSupportedISORateType;
+	CCamera::CCameraAdvancedSettings::TISORateType iISORateType;
+	TBool iIsCapableActualISOValue;
+	CCamera::CCameraAdvancedSettings::TAFAssistantLight iAFAssistantLight;
+	TInt iAutoISOIndex;
+	TInt iSupportedAFAssistantLight;
+	CCamera::CCameraAdvancedSettings::TFocusRange iFocusRange;
+	CCamera::TWhiteBalance iWhiteBalance;
+	TInt iPixelAspectRatio;
+	TInt iFlashMode;
+	TInt iSupportedDriveModes;
+	CCamera::CCameraAdvancedSettings::TDriveMode iDriveMode;
+	};
+
+class CCamPresets : public CBase, 
+					public MCameraPresets,
+					public MCameraPresets2
+	{
+public:
+	static CCamPresets* NewL(CCamUnitTestPlugin& aOwner);
+	~CCamPresets();
+	
+protected:
+	//from MCameraPresets
+	void Release();
+	void GetSupportedPresetsL(RArray<TUid>& aPresets) const;
+	void SetPreset(TUid aPreset);
+	TUid Preset() const;  
+	void GetAffectedSettingsL(RArray<TUid>& aSettings) const;
+    void GetAssociatedSettingsL(TUid aPreset, RArray<TUid>& aSettings) const;
+    
+    //from MCameraPresets2
+    void GetRangeRestrictedSettingsL(RArray<TUid>& aRangeRestrictedSettings) const;
+    void GetFeatureRestrictedSettingsL(RArray<TUid>& aFeatureRestrictedSettings) const;
+    void IsPresetUnlockSupportedL(TBool& aUnlockSupported) const;
+	void LockPreset();
+	void UnlockPreset();
+
+private:
+	CCamPresets(CCamUnitTestPlugin& aOwner);
+
+public:
+	TInt iRefCount;
+
+private:
+	TInt iCameraIndex;
+	TInt iCameraHandle;
+	TInt iPriority;
+	CCamUnitTestPlugin& iOwner;
+	TUid iSupportedPresets[KSupportedPresetsNumber];
+	TUid iAffectedSettings[KSupportedPresetsNumber-1];
+	TUid iCurrentPreset;
+	RArray<TUid> iRangeRestrictedSettings;
+	TBool iIsPresetUnLockSupported;
+	TBool iIsPresetLocked;
+	};
+
+
+class CCamImgProc : public CBase, 
+					public MCameraImageProcessing,
+					public MCameraImageProcessing2,
+					public MCameraImageProcessing3
+	{
+public:
+	static CCamImgProc* NewL(CCamUnitTestPlugin& aOwner);
+	~CCamImgProc();
+	
+protected:
+	//from MCameraImageProcessing
+	void Release();
+	void GetSupportedTransformationsL(RArray<TUid>& aTransformations) const;
+	void GetActiveTransformationsL(RArray<TUid>& aTransformations) const;
+	void GetTransformationSupportedValuesL(TUid aTransformation, RArray<TInt>& aValues, TValueInfo& aInfo) const;
+	TInt TransformationValue(TUid aTransformation) const;
+	TInt GetTransformationValue(TUid aTransformation, TInt& aTransformationValue) const;
+	void SetTransformationValue(TUid aTransformation, TInt aValue);
+	void GetActiveTransformSequenceL(RArray<TUid>& aTransformSequence) const;
+	void SetActiveTransformSequenceL(RArray<TUid>& aTransformSequence);
+	void SetSourceRect(const TRect& aRect);
+	void GetSourceRect(TRect& aRect) const;
+	
+	//MCameraImageProcessing2
+	void GetConcurrentColorSwappingsSupportedL(TInt& aConcurrentColorSwappingSupported) const;
+	void GetColorSwapCapabilitiesL(TInt aIndex, CCamera::CCameraImageProcessing::TColorOperationCapabilities& aColorSwapCapabilities) const;
+	void SetColorSwapEntry(TInt aIndex, const CCamera::CCameraImageProcessing::TColorOperationEntry& aColorSwapParameters); 
+	void RemoveColorSwapEntry(TInt aIndex);
+	void GetColorSwapEntryL(TInt aIndex, CCamera::CCameraImageProcessing::TColorOperationEntry& aColorSwapParameters) const; 
+	void StartColorSwapping();
+	void CancelColorSwappingL();
+	void GetConcurrentColorAccentSupportedL(TInt& aConcurrentColorAccentSupported) const;
+	void GetColorAccentCapabilitiesL(TInt aIndex, CCamera::CCameraImageProcessing::TColorOperationCapabilities& aColorAccentCapabilities) const;
+	void SetColorAccentEntry(TInt aIndex, const CCamera::CCameraImageProcessing::TColorOperationEntry& aColorAccentParameters); 
+	void RemoveColorAccentEntry(TInt aIndex);
+	void GetColorAccentEntryL(TInt aIndex, CCamera::CCameraImageProcessing::TColorOperationEntry& aColorAccentParameters) const; 
+	void StartColorAccent();
+	void CancelColorAccentL();
+	
+	//from MCameraImageProcessing3
+	void GetSupportedRelativeOrientationOptionsL(CCamera::CCameraImageProcessing::TOrientationReference aOrientationReference, 
+			TUint& aSupportedRelativeRotation, TUint& aSupportedRelativeMirroring, TUint& aSupportedRelativeFlipping) const;
+	
+	void GetCurrentRelativeOrientationOptionsL(CCamera::CCameraImageProcessing::TOrientationReference& aOrientationReference, 
+			CCamera::CCameraImageProcessing::TRelativeRotation& aRelativeRotation, CCamera::CCameraImageProcessing::
+			TRelativeMirror& aRelativeMirror, CCamera::CCameraImageProcessing::TRelativeFlipping& aRelativeFlipping) const;	
+
+  	void SetRelativeOrientationOptions(CCamera::CCameraImageProcessing::TOrientationReference aOrientationReference, 
+			CCamera::CCameraImageProcessing::TRelativeRotation aRelativeRotation, CCamera::CCameraImageProcessing::
+			TRelativeMirror aRelativeMirror, CCamera::CCameraImageProcessing::TRelativeFlipping aRelativeFlipping) const;
+    
+    void ConstructL();
+    
+private:
+	CCamImgProc(CCamUnitTestPlugin& aOwner);
+	
+	TBool CheckColorSwapEntry(const CCamera::CCameraImageProcessing::TColorOperationEntry& aColorSwapParameters) const;
+	TBool CheckColorAccentEntry(const CCamera::CCameraImageProcessing::TColorOperationEntry& aColorAccentParameters) const;
+
+public:
+	TInt iRefCount;
+	
+private:
+	TInt iCameraIndex;
+	TInt iCameraHandle;
+	TInt iPriority;
+	CCamUnitTestPlugin& iOwner;
+	// transformations 
+	RArray<TUid> iActiveSequence;
+	RArray<TUid> iSupportedTransformations;
+	TRect iSourceRect;
+	TInt iValue;
+	TUid iTransformation;
+	TInt iBrightnessRange[2];
+	
+	CCamera::CCameraImageProcessing::TColorOperationCapabilities iSupportedColorSwapCapabilities;
+	CCamera::CCameraImageProcessing::TColorOperationCapabilities iSupportedColorAccentCapabilities;
+	CCamera::CCameraImageProcessing::TColorOperationEntry iColorSwapParameter;
+	CCamera::CCameraImageProcessing::TColorOperationEntry iColorAccentParameter;
+	};
+
+class CCamV2DirectViewFinder;
+class CCamClientViewFinder;
+class CCamOverlay;
+
+class CDataGlobal : public CBase
+	{
+public:
+	CCamAdvSet* iCamAdvSet;
+	CCamImgProc* iCamImgProc;
+	CCamPresets* iCamPresets;
+	CCamOverlay* iCamOverlay;
+	CCamV2DirectViewFinder* iCamV2DirectViewFinder;
+	CCamClientViewFinder* iCamClientViewFinder;
+	TInt 		iReferenceCount;	
+	};
+	
+//class for external management
+class MCamManagement
+	{
+public: 	
+	virtual void Release()=0;
+	virtual TBool PlugCameraIn(TInt aIndex)=0;
+	virtual TBool PlugCameraOut(TInt aIndex)=0;
+	};	
+	
+class CCamManagement : public CBase, public MCamManagement
+	{
+public:
+	static CCamManagement* NewL(CCamUnitTestPlugin& aOwner);
+	~CCamManagement();
+	
+	TBool PlugCameraIn(TInt aIndex);
+	TBool PlugCameraOut(TInt aIndex);
+	void Release();
+	
+protected:
+   // void ConstructL();
+    
+private:
+	CCamManagement(CCamUnitTestPlugin& aOwner);
+
+private:
+	CCamUnitTestPlugin& iOwner;
+	};	
+
+
+//	
+// continuous zoom factory.
+class CContinuousZoomFactory : public CBase, public MImplementationFactory
+	{
+public:
+	static CContinuousZoomFactory* NewL();
+	~CContinuousZoomFactory();
+	
+	TInt GetImpl(TAny*& aIfPtr, TUid aIfaceUid) const;
+	TInt GetImpl1(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1) const;
+	TInt GetImpl2(TAny*& aIfPtr, TUid aIfaceUid, TECamImplFactoryParam aParam1, TECamImplFactoryParam aParam2) const;
+	void Release();
+	
+private:
+	CContinuousZoomFactory();
+	void ConstructL();
+
+private:
+	mutable CCamContinuousZoom* iCamContinuousZoomImp;
+	};
+
+
+class CCamContinuousZoom : public CBase, public MCameraContinuousZoom
+	{
+public:
+	static CCamContinuousZoom* NewL(CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType);
+	~CCamContinuousZoom();
+
+	//from MCameraContinuousZoom
+	void SetContinuousZoomObserverAndHandle(MContinuousZoomObserver& aObserver, CCamera::CCameraContinuousZoom* aContinuousZoomHandle);
+	void StartContinuousZoomL(CCamera::CCameraAdvancedSettings::TContinuousZoomParameters aContinuousZoomParameters);
+	void StopContinuousZoom();
+	void GetContinuousZoomSupportInfoL(CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo& aContinuousZoomInfo) const;
+	void GetContinuousZoomId(TInt& aZoomId) const;
+	void Release();
+
+private:
+	CCamContinuousZoom(CCamera::CCameraAdvancedSettings::TContinuousZoomType aContinuousZoomType);
+
+private:
+	MContinuousZoomObserver* iObserver;
+	CCamera::CCameraContinuousZoom*   iContinuousZoomHandle;
+	
+	CCamera::CCameraAdvancedSettings::TContinuousZoomParameters 	iParameters;
+	CCamera::CCameraAdvancedSettings::TContinuousZoomSupportInfo 	iInfo;
+	CCamera::CCameraAdvancedSettings::TContinuousZoomType			iZoomType;
+	};
+
+#endif // _ECAMSETPlUGIN1_H_