diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/common/src/camconfigurationutility.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/common/src/camconfigurationutility.cpp Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,367 @@ +/* +* 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: Helper class for CCamConfiguration +* +*/ + + +#include "camlogging.h" +#include "camconfigurationutility.h" +#include "camconfigurationconstants.h" + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::PhotoSizeIndex +// --------------------------------------------------------------------------- +// +TInt +CamConfigurationUtility::PhotoSizeIndex( TInt aWidth, TInt aHeight ) + { + TInt index = KErrNotFound; + for( TInt i=0; i& aPhotoQualities ) + { + TInt n = aPhotoQualities.Count(); + + //TInt numPrint = 0; + //TInt lastPrintIndex = KErrNotFound; + + for( int i=0; i( i ); + } + + /* + if( EImageQualityPrint == quality ) + { + if( !numPrint ) + { + // This is the first print quality, so it should be print high + quality = EImageQualityPrintHigh; + } + + numPrint++; + lastPrintIndex = i; + } + } + + if( numPrint > 2 ) + { + // There ECamQualityPrintHigh and more than one EImageQualityPrint + // Change last of them to ECamImageQualityPrintLow + aPhotoQualities[lastPrintIndex].iPhotoQualitySetting.iPhotoQualityId + = EImageQualityPrintLow; + } + + */ + } + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::SetVideoQualityLevels +// --------------------------------------------------------------------------- +// +void +CamConfigurationUtility::SetVideoQualityLevels( RArray& aOrderedArray ) + { + TInt n = aOrderedArray.Count(); + + // Set quality setting values for each quality + // Only 3 or 5 qualities are supported + if( n==3 ) + { + aOrderedArray[0].iQualitySetting = ECamVideoQualityHigh; + aOrderedArray[1].iQualitySetting = ECamVideoQualityNormalHigh; + aOrderedArray[2].iQualitySetting = ECamVideoQualitySharing; + aOrderedArray[2].iQualitySettings.iVideoLength = ECamVideoClipShort; + } + else + if( n==5 ) + { + aOrderedArray[0].iQualitySetting = ECamVideoQualityHigh; + aOrderedArray[1].iQualitySetting = ECamVideoQualityNormalHigh; + aOrderedArray[2].iQualitySetting = ECamVideoQualityNormal; + aOrderedArray[3].iQualitySetting = ECamVideoQualityNormalLow; + aOrderedArray[4].iQualitySetting = ECamVideoQualitySharing; + aOrderedArray[4].iQualitySettings.iVideoLength = ECamVideoClipShort; + } + else + { + PRINT1( _L("Camera <> CamConfigurationUtility::SetVideoQualityLevels - Invalid number of levels (%d)"), n ); + User::Panic( KCamConfigPanicId, ECamConfigPanicInvalidNumberOfQualities ); + } + + // Set quality level for iQualitySettings. This is just the + // quality's index in the array. + for( TInt i=0; i& aArray ) + { + if( aArray.Find( aValue ) == KErrNotFound ) + { + aArray.AppendL( aValue ); + } + } + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::VideoResolution +// --------------------------------------------------------------------------- +// +TInt +CamConfigurationUtility::VideoResolution( TInt aWidth, TInt aHeight ) + { + RDebug::Print( _L("VideoResolution( %d, %d) "), aWidth, aHeight ); + for( TInt i=0; i= KCamVideoQualityMappings[i].iCamcorderVisibleMin ) + { + desc = KCamVideoQualityMappings[i].iDesc; + break; + } + } + + return desc; + } + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::ImageType +// --------------------------------------------------------------------------- +// +TCamImageType +CamConfigurationUtility::ImageType( TInt aValue ) + { + if( aValue >= KCamImageLargeTypeMin ) + { + return ECamImageTypeLarge; + } + else if( aValue >= KCamImageMediumTypeMin ) + { + return ECamImageTypeMedium; + } + else + { + return ECamImageTypeSmall; + } + } + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::IsSupported +// --------------------------------------------------------------------------- +// +TBool +CamConfigurationUtility::IsSupported( TInt aValue, TCamItemType aItemType, const TCamImageQualityData& aData ) + { + switch( aItemType ) + { + case ECamItemPhotoSize: + { + if( aValue == aData.iPhotoSize.iSizeId ) + { + return ETrue; + } + break; + } + case ECamItemPhotoQuality: + { + if( aValue == aData.iPhotoSize.iQualitySettingId ) + { + return ETrue; + } + break; + } + default: + { + User::Panic( KCamConfigPanicId, ECamConfigPanicInvalidItem ); + } + } + return EFalse; + } + + + + +// --------------------------------------------------------------------------- +// CamConfigurationUtility::MapDynamicSettingToSceneSetting +// Get the scene setting id from dynamic setting id. +// --------------------------------------------------------------------------- +// +TInt +CamConfigurationUtility::MapDynamicSettingToSceneSetting( TInt aSettingId ) + { + switch( aSettingId ) + { + case ECamSettingItemDynamicVideoWhiteBalance: // fall through + case ECamSettingItemDynamicPhotoWhiteBalance: + return ECamSettingItemSceneAWBMode; + + case ECamSettingItemDynamicVideoExposure: // fall through + case ECamSettingItemDynamicPhotoExposure: + return ECamSettingItemSceneEV; + + case ECamSettingItemDynamicVideoFlash: // fall through + case ECamSettingItemDynamicPhotoFlash: + return ECamSettingItemSceneFlashMode; + + case ECamSettingItemDynamicVideoContrast: // fall through + case ECamSettingItemDynamicPhotoContrast: + return ECamSettingItemSceneContrast; + + case ECamSettingItemDynamicPhotoImageSharpness: + return ECamSettingItemSceneSharpness; + + case ECamSettingItemDynamicVideoLightSensitivity: // fall through + case ECamSettingItemDynamicPhotoLightSensitivity: + return ECamSettingItemSceneISO; + + default: + return KErrNotFound; + } + } + +// End of file +