diff -r 000000000000 -r 40261b775718 mmplugins/cameraplugins/source/testcamera/test_advanced_settings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmplugins/cameraplugins/source/testcamera/test_advanced_settings.cpp Tue Feb 02 01:56:55 2010 +0200 @@ -0,0 +1,1602 @@ +// Copyright (c) 2007-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: +// testadvancedsettings.cpp +// +// + +#include "test_advanced_settings.h" +#include +#include "ecamversion.h" + +CTestCamAdvSet::CTestCamAdvSet(CTestCamera& aOwner): iOwner(aOwner) + { + Init(); + } + +CTestCamAdvSet::~CTestCamAdvSet() + { + iSupportedISORates.Close(); + iSupportedApertures.Close(); + iSupportedShutterSpeeds.Close(); + + CDataGlobal* globalData = static_cast (Dll::Tls()); + if(globalData != NULL) + { + if(!globalData->iTestCamPresets && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc) + { + delete globalData; + Dll::FreeTls(); + } + else + { + globalData->iTestCamAdvSet = NULL; + Dll::SetTls(globalData); + } + } + } + +CTestCamAdvSet* CTestCamAdvSet::NewL(CTestCamera& aOwner) + { + CDataGlobal* globalData = static_cast (Dll::Tls()); + + if(globalData == NULL) + { + globalData = new (ELeave) CDataGlobal; + CleanupStack::PushL(globalData); + globalData->iAdvSetReferenceCount = 0; + globalData->iTestCamAdvSet = new (ELeave) CTestCamAdvSet(aOwner); + CleanupStack::PushL(globalData->iTestCamAdvSet); + globalData->iTestCamAdvSet->ConstructL(); + globalData->iTestCamAdvSet->iRefCount = 1; + User::LeaveIfError(Dll::SetTls(globalData)); + CleanupStack::Pop(globalData->iTestCamAdvSet); + CleanupStack::Pop(globalData); + return globalData->iTestCamAdvSet; + } + else + { + if(globalData->iTestCamAdvSet == NULL) + { + globalData->iAdvSetReferenceCount = 0; + globalData->iTestCamAdvSet = new (ELeave) CTestCamAdvSet(aOwner); + CleanupStack::PushL(globalData->iTestCamAdvSet); + globalData->iTestCamAdvSet->ConstructL(); + globalData->iTestCamAdvSet->iRefCount = 1; + User::LeaveIfError(Dll::SetTls(globalData)); + CleanupStack::Pop(globalData->iTestCamAdvSet); + return globalData->iTestCamAdvSet; + } + + CTestCamAdvSet* self = globalData->iTestCamAdvSet; + + globalData->iAdvSetReferenceCount++; + self->iRefCount = globalData->iAdvSetReferenceCount + 1; + if (globalData->iAdvSetReferenceCount == KNumOfAdvSetExtensions-1 ) + { + globalData->iTestCamAdvSet = NULL; + if(!globalData->iTestCamPresets && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc) + { + delete globalData; + Dll::FreeTls(); + } + else + { + User::LeaveIfError(Dll::SetTls(globalData)); + } + } + else + { + User::LeaveIfError(Dll::SetTls(globalData)); + } + return self; + } + } + +void CTestCamAdvSet::Release() + { + iRefCount--; + if(iRefCount == 0) + { + iOwner.iAdvSettingsImpl = NULL; + delete this; + } + } + +void CTestCamAdvSet::Init() + { + for(TUint i=0; i< KNumAvailableCameras; i++) + { + iCameraTypes[i] = CCamera::CCameraAdvancedSettings::ECameraPluggable; + } + + iFocusDistance = KDefaultFocusDistance; + iIsoRate = KDefaultIsoRate; + iISORateType = CCamera::CCameraAdvancedSettings::EISOManual; + iAperture = KDefaultAperture; + iShutterSpeed = KDefaultShutterSpeed; + } + +void CTestCamAdvSet::ConstructL() + { + iSupportedISORates.Reset(); + iSupportedISORates.AppendL(KDefaultIsoRate); + + iSupportedApertures.Reset(); + iSupportedApertures.AppendL(KDefaultAperture); + + iSupportedShutterSpeeds.Reset(); + iSupportedShutterSpeeds.AppendL(KDefaultShutterSpeed); + } + +CCamera::CCameraAdvancedSettings::TCameraType CTestCamAdvSet::CameraType() const + { + return CCamera::CCameraAdvancedSettings::ECameraPluggable; + } + +CCamera::CCameraAdvancedSettings::TCameraType CTestCamAdvSet::CameraType(TInt aCameraIndex) const + { + if (aCameraIndex >= KNumAvailableCameras || aCameraIndex < 0) + { + return CCamera::CCameraAdvancedSettings::ECameraUnknown; + } + else + { + return iCameraTypes[aCameraIndex]; + } + } + +TBool CTestCamAdvSet::IsCameraPresent() const + { + return ETrue; + } + +TBool CTestCamAdvSet::IsCameraPresent(TInt aCameraIndex) const + { + if (aCameraIndex >= KNumAvailableCameras || aCameraIndex < 0) + { + return EFalse; + } + else + { + return ETrue; + } + } + +TInt CTestCamAdvSet::CameraIndex() const + { + return iOwner.iCameraIndex; + } + +TInt CTestCamAdvSet::SupportedStabilizationModes() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TStabilizationMode CTestCamAdvSet::StabilizationMode() const + { + return CCamera::CCameraAdvancedSettings::EStabilizationModeOff; + } + +void CTestCamAdvSet::SetStabilizationMode(CCamera::CCameraAdvancedSettings::TStabilizationMode aStabilizationMode) + { + TInt eventError = KErrNotSupported; + if(aStabilizationMode == CCamera::CCameraAdvancedSettings::EStabilizationModeOff) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingStabilizationMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedFocusModes() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TFocusMode CTestCamAdvSet::FocusMode() const + { + return CCamera::CCameraAdvancedSettings::EFocusModeAuto; + } + +void CTestCamAdvSet::SetFocusMode(CCamera::CCameraAdvancedSettings::TFocusMode aFocusMode) + { + TInt eventError = KErrNotSupported; + if(aFocusMode == CCamera::CCameraAdvancedSettings::EFocusModeAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingFocusMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedFocusRanges() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TFocusRange CTestCamAdvSet::FocusRange() const + { + return CCamera::CCameraAdvancedSettings::EFocusRangeAuto; + } + +void CTestCamAdvSet::SetFocusRange(CCamera::CCameraAdvancedSettings::TFocusRange aFocusRange) + { + TInt eventError = KErrNotSupported; + if(aFocusRange == CCamera::CCameraAdvancedSettings::EFocusRangeAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent1(KUidECamEventCameraSettingFocusRange2, eventError); + TECAMEvent ecamevent2(KUidECamEventCameraSettingFocusRange, eventError); + + iOwner.iECamEvent = ecamevent1; + iOwner.iHandleEventAsync.CallBack(); + + iOwner.iECamEvent = ecamevent2; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedAutoFocusTypes() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TAutoFocusType CTestCamAdvSet::AutoFocusType() const + { + return CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff; + } + +void CTestCamAdvSet::SetAutoFocusType(CCamera::CCameraAdvancedSettings::TAutoFocusType aAutoFocusType) + { + TInt eventError = KErrNotSupported; + if(aAutoFocusType == CCamera::CCameraAdvancedSettings::EAutoFocusTypeOff) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent1(KUidECamEventCameraSettingAutoFocusType2, eventError); + TECAMEvent ecamevent2(KUidECamEventCameraSettingAutoFocusType, eventError); + + iOwner.iECamEvent = ecamevent1; + iOwner.iHandleEventAsync.CallBack(); + + iOwner.iECamEvent = ecamevent2; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedAutoFocusAreas() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TAutoFocusArea CTestCamAdvSet::AutoFocusArea() const + { + return CCamera::CCameraAdvancedSettings::EAutoFocusTypeAuto; + } + +void CTestCamAdvSet::SetAutoFocusArea(CCamera::CCameraAdvancedSettings::TAutoFocusArea aAutoFocusArea) + { + TInt eventError = KErrNotSupported; + if(aAutoFocusArea == CCamera::CCameraAdvancedSettings::EAutoFocusTypeAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingAutoFocusArea, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::FocusDistance() const + { + return iFocusDistance; + } + +void CTestCamAdvSet::SetFocusDistance(TInt aDistance) + { + TInt eventError = KErrNone; + if(aDistance < 0) + { + eventError = KErrNotSupported; + } + else + { + iFocusDistance = aDistance; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingFocusDistance, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::GetMinFocalLength() const + { + return KErrNotSupported; + } + +void CTestCamAdvSet::GetSupportedIsoRatesL(RArray& aSupportedIsoRates) const + { + if(iSupportedISORates.Count() == 0) + { + User::Leave(KErrNotSupported); + } + + for(TInt index=0; index < iSupportedISORates.Count(); index++) + { + aSupportedIsoRates.AppendL(iSupportedISORates[index]); + } + } + +TInt CTestCamAdvSet::IsoRate() const + { + return iIsoRate; + } + +void CTestCamAdvSet::SetIsoRate(TInt aRate) + { + TInt eventError = KErrNone; + if(iSupportedISORates.Find(aRate) == KErrNotFound) + { + eventError = KErrECamParameterNotInRange; + } + else + { + //set the ISO type to Manual + iISORateType = CCamera::CCameraAdvancedSettings::EISOManual; + iIsoRate = aRate; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingIsoRate, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetSupportedISORateTypeL(TInt& aSupportedISORateTypes) const + { + aSupportedISORateTypes = KSupportedISORateTypes; + } + +void CTestCamAdvSet::SetISORate(CCamera::CCameraAdvancedSettings::TISORateType aISORateType, TInt aParam) + { + TInt eventError = KErrNone; + + if(!(aISORateType & KSupportedISORateTypes) || iSupportedISORates.Count() == 0) + { + eventError = KErrNotSupported; + } + else + { + switch(aISORateType) + { + case CCamera::CCameraAdvancedSettings::EISOManual: + { + if(iSupportedISORates.Find(aParam) == KErrNotFound) + { + eventError = KErrECamParameterNotInRange; + } + else + { + iISORateType = aISORateType; + if(aParam == iIsoRate) + { + eventError = KErrAlreadyExists; + } + else + { + iIsoRate = aParam; + } + } + break; + } + case CCamera::CCameraAdvancedSettings::EISOAutoUnPrioritised: + { + eventError = KErrNotSupported; + break; + } + case CCamera::CCameraAdvancedSettings::EISOAutoISOPrioritised: + { + eventError = KErrNotSupported; + break; + } + case CCamera::CCameraAdvancedSettings::EISOAutoShutterSpeedPrioritised: + { + eventError = KErrNotSupported; + break; + } + case CCamera::CCameraAdvancedSettings::EISOAutoAperturePrioritised: + { + eventError = KErrNotSupported; + break; + } + default: + eventError = KErrNotSupported; + } + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingIsoRateType, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetISORateL(CCamera::CCameraAdvancedSettings::TISORateType& aISORateType, TInt& /*aParam*/, TInt& aISORate) const + { + //If camera has no ISO rate supported, then leave + if(iSupportedISORates.Count() == 0) + { + User::Leave(KErrNotSupported); + } + + aISORateType = iISORateType; + aISORate = iIsoRate; +// aParam is redundant for manual ISO. + } + +void CTestCamAdvSet::GetAperturesL(RArray& aFStops, TValueInfo& aInfo) const + { + if(iSupportedApertures.Count() == 0) + { + aFStops.Reset(); + aInfo = ENotActive; + } + + for(TInt index=0; index < iSupportedApertures.Count(); index++) + { + aFStops.AppendL(iSupportedApertures[index]); + } + + aInfo = EDiscreteSteps; + } + +TInt CTestCamAdvSet::Aperture() const + { + return iAperture; + } + +void CTestCamAdvSet::SetAperture(TInt aFStop) + { + TInt eventError = KErrNone; + if(iSupportedApertures.Find(aFStop) == KErrNotFound) + { + eventError = KErrECamParameterNotInRange; + } + else + { + iAperture = aFStop; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingAperture, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetShutterSpeedsL(RArray& aShutterSpeeds, TValueInfo& aInfo) const + { + if(iSupportedShutterSpeeds.Count() == 0) + { + aShutterSpeeds.Reset(); + aInfo = ENotActive; + } + + for(TInt index=0; index < iSupportedShutterSpeeds.Count(); index++) + { + aShutterSpeeds.AppendL(iSupportedShutterSpeeds[index]); + aInfo = EDiscreteSteps; + } + } + +TInt CTestCamAdvSet::ShutterSpeed() const + { + return iShutterSpeed; + } + +void CTestCamAdvSet::SetShutterSpeed(TInt aShutterSpeed) + { + TInt eventError = KErrNone; + if(iSupportedShutterSpeeds.Find(aShutterSpeed) == KErrNotFound) + { + eventError = KErrECamParameterNotInRange; + } + else + { + iShutterSpeed = aShutterSpeed; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingShutterSpeed, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedMeteringModes() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TMeteringMode CTestCamAdvSet::MeteringMode() const + { + return CCamera::CCameraAdvancedSettings::EMeteringModeAuto; + } + +void CTestCamAdvSet::SetMeteringMode(CCamera::CCameraAdvancedSettings::TMeteringMode aMeteringMode) + { + TInt eventError = KErrNotSupported; + if(aMeteringMode == CCamera::CCameraAdvancedSettings::EMeteringModeAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingMeteringMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedDriveModes() const + { + return KSupportedDriveModes; + } + +CCamera::CCameraAdvancedSettings::TDriveMode CTestCamAdvSet::DriveMode() const + { + return iOwner.iDriveMode; + } + +void CTestCamAdvSet::SetDriveMode(CCamera::CCameraAdvancedSettings::TDriveMode aDriveMode) + { + TInt eventError = KErrNone; + if(iOwner.iVideoCaptureActive || iOwner.iImageCaptureActive) + { + eventError = KErrNotReady; + } + else + { + if(!(aDriveMode & KSupportedDriveModes)) + { + eventError = KErrNotSupported; + } + else + { + if(eventError == KErrNone) + { + iOwner.iDriveMode = aDriveMode; + } + } + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingDriveMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedBracketModes() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TBracketMode CTestCamAdvSet::BracketMode() const + { + return CCamera::CCameraAdvancedSettings::EBracketModeOff; + } + +void CTestCamAdvSet::SetBracketMode(CCamera::CCameraAdvancedSettings::TBracketMode aBracketMode) + { + TInt eventError = KErrNotSupported; + if(aBracketMode == CCamera::CCameraAdvancedSettings::EBracketModeOff) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingBracketMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedBracketParameters() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TBracketParameter CTestCamAdvSet::BracketParameter() const + { + return CCamera::CCameraAdvancedSettings::EBracketParameterNone; + } + +void CTestCamAdvSet::SetBracketParameter(CCamera::CCameraAdvancedSettings::TBracketParameter aBracketParameter) + { + TInt eventError = KErrNotSupported; + if(aBracketParameter == CCamera::CCameraAdvancedSettings::EBracketParameterNone) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingBracketParameter, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedBracketSteps() const + { + return KFeatureNotSupported; + } + +CCamera::CCameraAdvancedSettings::TBracketStep CTestCamAdvSet::BracketStep() const + { + return CCamera::CCameraAdvancedSettings::EBracketStepNonConfig; + } + +void CTestCamAdvSet::SetBracketStep(CCamera::CCameraAdvancedSettings::TBracketStep aBracketStep) + { + TInt eventError = KErrNotSupported; + if(aBracketStep == CCamera::CCameraAdvancedSettings::EBracketStepNonConfig) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingBracketStep, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetBracketMerge(TInt& aStartIndex, TInt& aFrames) const + { + aStartIndex = KFeatureNotSupported; + aFrames = KFeatureNotSupported; + } + +void CTestCamAdvSet::SetBracketMerge(TInt /*aStartIndex*/ , TInt /*aFrames*/) + { + TECAMEvent ecamevent(KUidECamEventBracketMerge, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedFlashModes() const + { + return KFeatureNotSupported; + } + +CCamera::TFlash CTestCamAdvSet::FlashMode() const + { + return CCamera::EFlashNone; + } + +void CTestCamAdvSet::SetFlashMode(CCamera::TFlash /*aMode*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingFlashMode, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::RedEyeReduceOn() const + { + return KDefaultRedEyeReduce; + } + +void CTestCamAdvSet::SetRedEyeReduceOn(TBool /*aState*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingFlashRedEyeReduce, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetFlashCompensationStepsL(RArray& aFlashCompensationSteps, TValueInfo& aInfo) const + { + aFlashCompensationSteps.Reset(); + aInfo = ENotActive; + } + +TInt CTestCamAdvSet::FlashCompensationStep() const + { + return KFlashCompensationStep; + } + +TInt CTestCamAdvSet::GetFlashCompensationStep(TInt& aFlashCompensationStep) const + { + aFlashCompensationStep = KFlashCompensationStep; + return KErrNone; + } + +void CTestCamAdvSet::GetFlashCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const + { + aNegativeCompensation = KFlashCompensationStep; + aPositiveCompensation = KFlashCompensationStep; + } + +void CTestCamAdvSet::SetFlashCompensationStep(TInt /*aFlashCompensationStep*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingFlashCompensationStep, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::FlashCompensation() const + { + return KFlashCompensationStep; + } + +TInt CTestCamAdvSet::GetFlashCompensation(TInt& aFlashCompensation) const + { + aFlashCompensation = KFlashCompensationStep; + return KErrNone; + } + +void CTestCamAdvSet::SetFlashCompensation(TInt /*aFlashCompensation*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingFlashCompensation, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::IsExternalFlashPresent() const + { + return KExternalFlashPresentState; + } + +void CTestCamAdvSet::GetManualFlashPowerLevelsL(RArray& aManualFlashPowerLevels, TValueInfo& aInfo) const + { + aManualFlashPowerLevels.Reset(); + aInfo = ENotActive; + } + +TInt CTestCamAdvSet::ManualFlashPowerLevel() const + { + return KErrNotSupported; + } + +void CTestCamAdvSet::SetManualFlashPowerLevel(TInt /*aManualFlashPowerLevel*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingFlashManualPower, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedExposureModes() const + { + return CCamera::EExposureAuto; + } + +CCamera::TExposure CTestCamAdvSet::ExposureMode() const + { + return CCamera::EExposureAuto; + } + +void CTestCamAdvSet::SetExposureMode(CCamera::TExposure aExposureMode) + { + TInt eventError = KErrNotSupported; + if(aExposureMode == CCamera::EExposureAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingExposureMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetExposureCompensationStepsL(RArray& aExposureCompensationSteps, TValueInfo& aInfo) const + { + aExposureCompensationSteps.Reset(); + aInfo = ENotActive; + } + +void CTestCamAdvSet::GetExposureCompensationRangeInSteps(TInt& aNegativeCompensation, TInt& aPositiveCompensation) const + { + aNegativeCompensation = KExposureCompensationStep; + aPositiveCompensation = KExposureCompensationStep; + } + +TInt CTestCamAdvSet::ExposureCompensationStep() const + { + return KExposureCompensationStep; + } + +TInt CTestCamAdvSet::GetExposureCompensationStep(TInt& aExposureCompensationStep) const + { + aExposureCompensationStep = KExposureCompensationStep; + return KErrNone; + } + +void CTestCamAdvSet::SetExposureCompensationStep(TInt /*aExposureCompensationStep*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingExposureCompensationStep, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::ExposureCompensation() const + { + return KExposureCompensationStep; + } + +TInt CTestCamAdvSet::GetExposureCompensation(TInt& aExposureCompensation) const + { + aExposureCompensation = KExposureCompensationStep; + return KErrNone; + } + +void CTestCamAdvSet::SetExposureCompensation(TInt /*aExposureCompensation*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingExposureCompensation, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedWhiteBalanceModes() const + { + return KFeatureNotSupported; + } + +CCamera::TWhiteBalance CTestCamAdvSet::WhiteBalanceMode() const + { + return CCamera::EWBAuto; + } + +void CTestCamAdvSet::SetWhiteBalanceMode(CCamera::TWhiteBalance aWhiteBalanceMode) + { + TInt eventError = KErrNotSupported; + if(aWhiteBalanceMode == CCamera::EWBAuto) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingWhiteBalanceMode, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::ApertureExposureLockOn() const + { + return KApertureExposureLockOn; + } + +void CTestCamAdvSet::SetApertureExposureLockOn(TBool /*aAELock*/) + { + TECAMEvent ecamevent(KUidECamEventAELock, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::ShootClickOn() const + { + return KShootClickOn; + } + +void CTestCamAdvSet::SetShootClickOn(TBool /*aShootClickOn*/) + { + TECAMEvent ecamevent(KUidECamEventSoundClick, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetTimerIntervalsL(RArray& aTimerIntervals, TValueInfo& aInfo) const + { + aTimerIntervals.Reset(); + aInfo = ENotActive; + } + +TInt CTestCamAdvSet::TimerInterval() const + { + return KErrNotSupported; + } + +void CTestCamAdvSet::SetTimerInterval(TInt /*aTimerInterval*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingTimerInterval, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetTimeLapsePeriodRange(TTime& aTimeLapseMin, TTime& aTimeLapseMax) const + { + TTime timeLapse(KTimeLapse); + aTimeLapseMin = aTimeLapseMax = timeLapse; + } + +void CTestCamAdvSet::GetTimeLapse(TTime& aStart, TTime& aEnd, TTime& aInterval) const + { + TTime timeLapse(KTimeLapse); + aStart = aEnd = aInterval = timeLapse; + } + +void CTestCamAdvSet::SetTimeLapse(const TTime& /*aStart*/, const TTime& /*aEnd*/, const TTime& /*aInterval*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingTimeLapse, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +CCamera::CCameraAdvancedSettings::TPictureOrientation CTestCamAdvSet::PictureOrientation() const + { + return CCamera::CCameraAdvancedSettings::EPictureOrientationUnknown; + } + +void CTestCamAdvSet::SetPictureOrientation(CCamera::CCameraAdvancedSettings::TPictureOrientation aOrientation) + { + TInt eventError = KErrNotSupported; + + if(iOwner.iVideoCaptureActive || iOwner.iImageCaptureActive) + { + eventError = KErrNotReady; + } + else + { + if(aOrientation == CCamera::CCameraAdvancedSettings::EPictureOrientationUnknown) + { + eventError = KErrAlreadyExists; + } + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingPictureOrientation, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedPixelAspectRatios() const + { + return KSupportedPixelAspectRatio; + } + +CCamera::CCameraAdvancedSettings::TPixelAspectRatio CTestCamAdvSet::PixelAspectRatio() const + { + return CCamera::CCameraAdvancedSettings::EPixelAspectUnknown; + } + +void CTestCamAdvSet::SetPixelAspectRatio(CCamera::CCameraAdvancedSettings::TPixelAspectRatio aPixelAspectRatio) + { + TInt eventError = KErrNotSupported; + + if(aPixelAspectRatio == CCamera::CCameraAdvancedSettings::EPixelAspectUnknown) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventPixelAspectRatio, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::SupportedYuvRanges() const + { + return KSupportedYuvRange; + } + +CCamera::CCameraAdvancedSettings::TYuvRange CTestCamAdvSet::YuvRange() const + { + return CCamera::CCameraAdvancedSettings::EYuvRangeUnknown; + } + +void CTestCamAdvSet::SetYuvRange(CCamera::CCameraAdvancedSettings::TYuvRange aYuvRange) + { + TInt eventError = KErrNotSupported; + + if(aYuvRange == CCamera::CCameraAdvancedSettings::EYuvRangeUnknown) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventYuvRange, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::BurstImages() const + { + return iOwner.iBurstImages; + } + +void CTestCamAdvSet::SetBurstImages(TInt aImages) + { + TInt eventError = iOwner.CheckReserveAndPower(); + + if(eventError == KErrNone) + { + if(aImages == iOwner.iBurstImages) + { + eventError = KErrAlreadyExists; + } + else + { + if(aImages<1) + { + eventError = KErrArgument; + } + } + } + + if(eventError != KErrNone) + { + TECAMEvent ecamevent(KUidECamEventBurstImages, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + return; + } + + if(aImages > KMaxBurstImages) + { + iOwner.iBurstImages = KMaxBurstImages; + } + else + { + iOwner.iBurstImages = aImages; + } + + TECAMEvent ecamevent(KUidECamEventBurstImages, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetOpticalZoomStepsL(RArray& aOpticalZoomSteps, TValueInfo& aInfo) const + { + aOpticalZoomSteps.Reset(); + aOpticalZoomSteps.AppendL(KECamFineResolutionFactor); + aInfo = EDiscreteSteps; + } + +TInt CTestCamAdvSet::OpticalZoom() const + { + return KECamFineResolutionFactor; + } + +void CTestCamAdvSet::SetOpticalZoom(TInt aOpticalZoom) + { + TInt eventError = KErrNotSupported; + + if(aOpticalZoom == KECamFineResolutionFactor) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingOpticalZoom, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetDigitalZoomStepsL(RArray& aDigitalZoomSteps, + TValueInfo& aInfo) const + { + aDigitalZoomSteps.Reset(); + aDigitalZoomSteps.AppendL(KECamFineResolutionFactor); + aInfo = EDiscreteSteps; + } + +void CTestCamAdvSet::GetDigitalZoomStepsForStillL(RArray& aDigitalZoomSteps, TValueInfo& aInfo, TInt /*aSizeIndex*/, + CCamera::TFormat /*aFormat*/, TBool& /*aIsInfluencePossible*/) const + { + aDigitalZoomSteps.Reset(); + aDigitalZoomSteps.AppendL(KECamFineResolutionFactor); + aInfo = EDiscreteSteps; + } + +void CTestCamAdvSet::GetDigitalZoomStepsForVideoL(RArray& aDigitalZoomSteps, TValueInfo& aInfo, TInt /*aFrameRateIndex*/, + TInt /*aSizeIndex*/, CCamera::TFormat /*aFormat*/, TBool& /*aIsInfluencePossible*/, CCamera::TExposure /*aExposure*/) const + { + aDigitalZoomSteps.Reset(); + aDigitalZoomSteps.AppendL(KECamFineResolutionFactor); + aInfo = EDiscreteSteps; + } + +TInt CTestCamAdvSet::DigitalZoom() const + { + return KECamFineResolutionFactor; + } + +void CTestCamAdvSet::SetDigitalZoom(TInt aDigitalZoom) + { + TInt eventError = KErrNotSupported; + + if(aDigitalZoom == KECamFineResolutionFactor) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingDigitalZoom, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::ExposureLockOn() const + { + return KExposureLockOn; + } + +void CTestCamAdvSet::SetExposureLockOn(TBool aState) + { + TInt eventError = KErrNotSupported; + + if(aState == KExposureLockOn) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingExposureLock, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::AutoFocusLockOn() const + { + return KAutoFocusLockOn; + } + +void CTestCamAdvSet::SetAutoFocusLockOn(TBool aState) + { + TInt eventError = KErrNotSupported; + + if(aState == KAutoFocusLockOn) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingAutoFocusLock, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetSupportedSettingsL(RArray& aSettings) const + { + aSettings.Reset(); + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::GetActiveSettingsL(RArray& aActiveSettings) const + { + aActiveSettings.Reset(); + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::GetDisabledSettingsL(RArray& aDisbledSettings) const + { + aDisbledSettings.Reset(); + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::SetAutomaticSizeSelectionChangeOn(TBool aSetOn) + { + TInt eventError = KErrNotSupported; + + if(aSetOn == KAutomaticSizeSelectionChangeOn) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingAutomaticSizeSelection, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TBool CTestCamAdvSet::AutomaticSizeSelectionChangeOn() const + { + return KAutomaticSizeSelectionChangeOn; + } + +void CTestCamAdvSet::GetSupportedContinuousAutoFocusTimeoutsL(RArray& aTimeouts, TValueInfo& aInfo) const + { + aTimeouts.Reset(); + aInfo = ENotActive; + } + +void CTestCamAdvSet::SetContinuousAutoFocusTimeout(TInt /*aTimeout*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingsContinuousAutoFocusTimeout, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::SetStabilizationEffect(CCamera::CCameraAdvancedSettings::TStabilizationEffect aEffect) + { + TInt eventError = KErrNotSupported; + + if(aEffect == KStabilizationEffect) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingsStabilizationEffect, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +CCamera::CCameraAdvancedSettings::TStabilizationEffect CTestCamAdvSet::StabilizationEffect() const + { + return KStabilizationEffect; + } + +TInt CTestCamAdvSet::SupportedStabilizationEffects() const + { + return KStabilizationEffect; + } + +TInt CTestCamAdvSet::SupportedStabilizationComplexityValues() const + { + return KStabilizationComplexity; + } + +CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity CTestCamAdvSet::StabilizationComplexity() const + { + return KStabilizationComplexity; + } + +void CTestCamAdvSet::SetStabilizationComplexity(CCamera::CCameraAdvancedSettings::TStabilizationAlgorithmComplexity aComplexity) + { + TInt eventError = KErrNotSupported; + + if(aComplexity == KStabilizationComplexity) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventSettingsStabilizationAlgorithmComplexity, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +CCamera::CCameraAdvancedSettings::TWBUnits CTestCamAdvSet::SupportedWBUnits() const + { + return KSupportedWBUnits; + } + +void CTestCamAdvSet::SetWBRgbValue(const TRgb& /*aValue*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingsWBValue, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetWBRgbValue(TRgb& aValue) const + { + aValue = KRgbWhite; + } + +void CTestCamAdvSet::GetWBSupportedColorTemperaturesL(RArray& aWBColorTemperatures, TValueInfo& aInfo) const + { + aWBColorTemperatures.Reset(); + aInfo = ENotActive; + } + +void CTestCamAdvSet::SetWBColorTemperature(TInt /*aColorTemperature*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingsWBValue, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TInt CTestCamAdvSet::WBColorTemperature() const + { + return KErrNotSupported; + } + +TInt CTestCamAdvSet::ContinuousAutoFocusTimeout() const + { + return KErrNotSupported; + } + +TInt CTestCamAdvSet::IsFlashReady(TBool& aReady) const + { + aReady = KFlashReadyState; + return KErrNone; + } + +void CTestCamAdvSet::GetCurrentFocusModeStepsL(RArray& aFocusModeSteps, TValueInfo& aInfo) const + { + aFocusModeSteps.Reset(); + aInfo = ENotActive; + } + +void CTestCamAdvSet::SetReferenceScreen(CWsScreenDevice& /*aScreenDevice*/) + { + TECAMEvent ecamevent(KUidECamEventCameraSettingReferenceScreen, KErrNotSupported); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +void CTestCamAdvSet::GetPreCaptureWarningSupportedL(CCamera::CCameraAdvancedSettings::TCameraMode /*aCameraMode*/, TInt& aPreCaptureWarningSupported) const + { + aPreCaptureWarningSupported = KPreCaptureWarning; + } + +void CTestCamAdvSet::SubscribeToPreCaptureWarningL(TInt /*aPreCaptureWarning*/) + { + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::UnSubscribePreCaptureWarningL() + { + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::GetPreCaptureWarningL(TInt& /*aPreCaptureWarning*/) const + { + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::GetSupportedAFAssistantLightL(TInt& aSupportedAFAssistantLight) const + { + aSupportedAFAssistantLight = KAFAssisstantLight; + } + +void CTestCamAdvSet::GetAFAssistantLightL(CCamera::CCameraAdvancedSettings::TAFAssistantLight& /*aAFAssistantLight*/) const + { + User::Leave(KErrNotSupported); + } + +void CTestCamAdvSet::SetAFAssistantLight(CCamera::CCameraAdvancedSettings::TAFAssistantLight aAFAssistantLight) + { + TInt eventError = KErrNotSupported; + + if(aAFAssistantLight == KAFAssisstantLight) + { + eventError = KErrAlreadyExists; + } + + TECAMEvent ecamevent(KUidECamEventCameraSettingAFAssistantLight, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +/**********************************************************************************************************/ +/* CTestCamPresets */ +/**********************************************************************************************************/ + +CTestCamPresets::CTestCamPresets(CTestCamera& aOwner): iOwner(aOwner),iCurrentPreset(KNullUid) + {} + +CTestCamPresets::~CTestCamPresets() + { + iSupportedPresets.Close(); + iFactoryPresetAffectSettings.Close(); + + CDataGlobal* globalData = static_cast (Dll::Tls()); + if(globalData != NULL) + { + if(!globalData->iTestCamAdvSet && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc) + { + delete globalData; + Dll::FreeTls(); + } + else + { + globalData->iTestCamPresets = NULL; + Dll::SetTls(globalData); + } + } + } + +CTestCamPresets* CTestCamPresets::NewL(CTestCamera& aOwner) + { + CDataGlobal* globalData = static_cast (Dll::Tls()); + + if(globalData == NULL) + { + globalData = new (ELeave) CDataGlobal; + CleanupStack::PushL(globalData); + globalData->iPresetsReferenceCount = 0; + globalData->iTestCamPresets = new (ELeave) CTestCamPresets(aOwner); + globalData->iTestCamPresets->ConstructL(); + globalData->iTestCamPresets->iRefCount = 1; + User::LeaveIfError(Dll::SetTls(globalData)); + CleanupStack::Pop(globalData); + return globalData->iTestCamPresets; + } + else + { + if(globalData->iTestCamPresets == NULL) + { + globalData->iPresetsReferenceCount = 0; + globalData->iTestCamPresets = new (ELeave) CTestCamPresets(aOwner); + CleanupStack::PushL(globalData->iTestCamPresets); + globalData->iTestCamPresets->ConstructL(); + globalData->iTestCamPresets->iRefCount = 1; + User::LeaveIfError(Dll::SetTls(globalData)); + CleanupStack::Pop(globalData->iTestCamPresets); + return globalData->iTestCamPresets; + } + + CTestCamPresets* self = globalData->iTestCamPresets; + + globalData->iPresetsReferenceCount++; + self->iRefCount = globalData->iPresetsReferenceCount + 1; + if (globalData->iPresetsReferenceCount == KNumOfPresetExtensions-1 ) + { + globalData->iTestCamPresets = NULL; + if(!globalData->iTestCamAdvSet && !globalData->iTestCamSnapshot && !globalData->iTestCamImgProc) + { + delete globalData; + Dll::FreeTls(); + } + else + { + User::LeaveIfError(Dll::SetTls(globalData)); + } + } + else + { + User::LeaveIfError(Dll::SetTls(globalData)); + } + return self; + } + } + +void CTestCamPresets::Release() + { + iRefCount--; + if(iRefCount == 0) + { + delete this; + } + } + +void CTestCamPresets::ConstructL() + { + iSupportedPresets.Reset(); + iSupportedPresets.AppendL(KUidECamPresetFactoryDefault); + + iFactoryPresetAffectSettings.Reset(); + iFactoryPresetAffectSettings.AppendL(KUidECamEventCameraSettingDriveMode); + iFactoryPresetAffectSettings.AppendL(KUidECamEventBurstImages); + } + +void CTestCamPresets::GetSupportedPresetsL(RArray& aPresets) const + { + aPresets.Reset(); + for (TInt index=0; index < iSupportedPresets.Count(); index++) + { + User::LeaveIfError(aPresets.Append(iSupportedPresets[index])); + } + } + +void CTestCamPresets::SetPreset(TUid aPreset) + { + TInt eventError = iOwner.CheckReserveAndPower(); + if(eventError == KErrNone) + { + if(aPreset == iSupportedPresets[0]) + { + //ResetBrightness, Contrast, Drivemode, No. of burst mode images + iOwner.iBrightness = 0; + iOwner.iContrast = 0; + iOwner.iImgProcBrightness = 0; + iOwner.iImgProcContrast = 0; + iOwner.iDriveMode = KDefaultDriveMode; + iOwner.iBurstImages = KBurstImages; + } + else + { + eventError = KErrNotSupported; + } + } + + TECAMEvent ecamevent(aPreset, eventError); + + iOwner.iECamEvent = ecamevent; + iOwner.iHandleEventAsync.CallBack(); + } + +TUid CTestCamPresets::Preset() const + { + return iCurrentPreset; + } + +void CTestCamPresets::GetAffectedSettingsL(RArray& aSettings) const + { + aSettings.Reset(); + + if(iCurrentPreset == iSupportedPresets[0]) + { + for (TInt index=0; index < iFactoryPresetAffectSettings.Count(); index++) + { + User::LeaveIfError(aSettings.Append(iFactoryPresetAffectSettings[index])); + } + } + } + +void CTestCamPresets::GetAssociatedSettingsL(TUid aPreset, RArray& aSettings) const + { + switch(aPreset.iUid) + { + case KUidECamPresetFactoryDefaultUidValue: + { + aSettings.Reset(); + for (TInt index=0; index < iFactoryPresetAffectSettings.Count(); index++) + { + User::LeaveIfError(aSettings.Append(iFactoryPresetAffectSettings[index])); + } + break; + } + + //fall through + case KUidECamPresetOutdoorUidValue: + case KUidECamPresetOutdoorSportUidValue: + case KUidECamPresetSnowUidValue: + case KUidECamPresetBeachUidValue: + case KUidECamPresetNightPortraitUidValue: + case KUidECamPresetNightFireworksUidValue: + case KUidECamPresetFogUidValue: + case KUidECamPresetIndoorUidValue: + case KUidECamPresetIndoorSportUidValue: + { + User::Leave(KErrNotSupported); + } + //fall through + case KUidECamPresetNightPartyIndoorUidValue: + case KUidECamPresetNightCloseUpUidValue: + case KUidECamPresetNightMacroUidValue: + case KUidECamPresetTextDocumentUidValue: + case KUidECamPresetBarcodeUidValue: + case KUidECamPresetAutoUidValue: + case KUidECamPresetPortraitUidValue: + case KUidECamPresetLandscapeUidValue: + case KUidECamPresetAmbienceMoodUidValue: + { + if(iOwner.CameraVersion() == KCameraDefaultVersion) + { + User::Leave(KErrArgument); + } + else + { + User::Leave(KErrNotSupported); + } + } + + default: + User::Leave(KErrArgument); + + } + }