diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/src/cameracontroller/camconstantsettingprovider.cpp --- a/camerauis/cameraapp/generic/src/cameracontroller/camconstantsettingprovider.cpp Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,523 +0,0 @@ -/* -* 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: CCamCameraControllerActive class implementation. -* -* -*/ - -#include "camcameracontrollerflags.hrh" - -#include -#ifdef CAMERAAPP_CAPI_V2 - #include // KECamFineResolutionFactor -#endif - -#include "camlogging.h" -#include "camcameracontroller.pan" -#include "camcameracontrollertypes.h" -#include "camconstantsettingprovider.h" -#include "camsettingconversion.h" -#include "CamAppController.h" -#include "campointerutility.inl" - -using namespace NCamCameraController; - -// =========================================================================== -// Local data - -static const CCamera::TFormat KImageFormat = CCamera::EFormatExif; -static const TSize KImageSize = TSize(1600,1200); // 2MPix, supported in most products -static const TInt KImageFactor = 100; - -static const CCamera::TFormat KImageFormatSecondary = CCamera::EFormatFbsBitmapColor16M; -static const TSize KImageSizeSecondary = TSize( 320,240 ); -static const TInt KImageFactorSecondary = 100; - -static const TSize KViewfinderSize = TSize(320, 240); -static const TCamViewfinderMode KViewFinderMode = ECamViewfinderBitmap; - -static const TSize KViewfinderSizeSecondary = TSize( 240, 180 ); - -static const CCamera::TFormat KSnapshotFormat = CCamera::EFormatFbsBitmapColor16M; -static const TSize KSnapshotSize = TSize(320, 240); -static const TBool KSnapshotMaintainAspect = EFalse; - -static const CCamera::TFlash KFlashSetting = CCamera::EFlashAuto; - -static const CCamera::TExposure KEvModeSetting = CCamera::EExposureAuto; -#ifdef CAMERAAPP_CAPI_V2 - static const TInt KEvValueSetting = 2; -#endif - -static const TInt KISOValue = 100; -static const CCamera::TWhiteBalance KWbModeSetting = CCamera::EWBAuto; -static const CCamera::TBrightness KBrightnessValue = CCamera::EBrightnessAuto; -static const CCamera::TContrast KContrastValue = CCamera::EContrastAuto; -static const TInt KDigitalZoomValue = 1; -static const TInt KOpticalZoomValue = 1; - -#ifdef CAMERAAPP_CAPI_V2 - static const CCamera::CCameraAdvancedSettings::TFocusRange KFocusRange = - CCamera::CCameraAdvancedSettings::EFocusRangeAuto; -#endif // CAMERAAPP_CAPI_V2 - -// ------------------------------------- -// Video by CAE settings: -// - MMS video setting, as it's the same in all products in use. -#ifdef CAMERAAPP_CAE_FOR_VIDEO - -static const TSize KVideoFrameSize = TSize(176, 144); -static const TReal KVideoFrameRate = 15.0f; -static const TInt KVideoVideoBitRate = 64000; -static const TInt KVideoAudioBitRate = 12200; -static const TBool KVideoAudioOn = ETrue; - -_LIT8( KVideoMimeType, "video/3gpp" ); -_LIT ( KVideoSupplier, "Nokia" ); -_LIT8( KVideoVideoType, "video/H263-2000" ); -_LIT8( KVideoAudioType, " AMR" ); - -#endif // CAMERAAPP_CAE_FOR_VIDEO -// ------------------------------------- - - -// =========================================================================== -// Local methods - - -// =========================================================================== -// Methods - -// static -CCamConstantSettingProvider* -CCamConstantSettingProvider::NewL( CCamAppController& aController ) - { - CCamConstantSettingProvider* self = - CCamConstantSettingProvider::NewLC( aController ); - CleanupStack::Pop( self ); - return self; - } - -// static -CCamConstantSettingProvider* -CCamConstantSettingProvider::NewLC( CCamAppController& aController ) - { - CCamConstantSettingProvider* self = - new (ELeave) CCamConstantSettingProvider( aController ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// virtual -CCamConstantSettingProvider::~CCamConstantSettingProvider() - { - iPendingSettingChanges.Close(); - } - -// =========================================================================== -// From MCamSettingProvider - -// --------------------------------------------------------------------------- -// virtual -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::ProvideCameraParamL( - const NCamCameraController::TCamCameraParamId& aParamId, - TAny* aParamData ) - { - __ASSERT_DEBUG( aParamData, Panic( ECamNullPointer ) ); - switch( aParamId ) - { - // ----------------------------------------------------------------------- - case ECameraParamImage: - { - TPckgBuf* ptr = - static_cast*>( aParamData ); - CheckNonNullL( ptr, KErrNotFound ); - TCamParamsImage& params( (*ptr)() ); - - if( ECamActiveCameraPrimary == iController.ActiveCamera() ) - { - // Primary camera parameters - params.iFormat = KImageFormat; - params.iSize = KImageSize; - params.iQualityFactor = KImageFactor; - } - else - { - // Secondary camera parameters - params.iFormat = KImageFormatSecondary; - params.iSize = KImageSizeSecondary; - params.iQualityFactor = KImageFactorSecondary; - } - - break; - } - // ----------------------------------------------------------------------- -#ifdef CAMERAAPP_CAE_FOR_VIDEO - case ECameraParamVideoCae: - { - TPckgBuf* ptr = - static_cast*>( aParamData ); - CheckNonNullL( ptr, KErrNotFound ); - - TCamParamsVideoCae& params( (*ptr)() ); - - params.iFrameSize = KVideoFrameSize; - params.iFrameRate = KVideoFrameRate; - params.iVideoBitRate = KVideoVideoBitRate; - params.iAudioBitRate = KVideoAudioBitRate; - params.iAudioOn = KVideoAudioOn; - params.iMimeType.Set ( KVideoMimeType ); - params.iSupplier.Set ( KVideoSupplier ); - params.iVideoType.Set( KVideoVideoType ); - params.iAudioType.Set( KVideoAudioType ); - - break; - } -#endif // CAMERAAPP_CAE_FOR_VIDEO - // ----------------------------------------------------------------------- - case ECameraParamVfMode: - { - TPckgBuf* ptr = - static_cast*>( aParamData ); - CheckNonNullL( ptr, KErrNotFound ); - TCamViewfinderMode& params( (*ptr)() ); - params = KViewFinderMode; - break; - } - // ----------------------------------------------------------------------- - case ECameraParamSnapshot: - { - TPckgBuf* ptr = - static_cast*>( aParamData ); - CheckNonNullL( ptr, KErrNotFound ); - TCamParamsSnapshot& params( (*ptr)() ); - - params.iSize = KSnapshotSize; - params.iFormat = KSnapshotFormat; - params.iMaintainAspect = KSnapshotMaintainAspect; - break; - } - // ----------------------------------------------------------------------- - default: - { - User::Leave( KErrNotSupported ); - break; - } - // ----------------------------------------------------------------------- - } - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::ProvideCameraSettingL( - const NCamCameraController::TCamCameraSettingId& aSettingId, - TAny* aSettingData ) - { - switch( aSettingId ) - { - case ECameraSettingQualityFactor: - { - TInt* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KImageFactor; - break; - } - case ECameraSettingFlash: - { - CCamera::TFlash* ptr = - static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KFlashSetting; - break; - } - case ECameraSettingExposure: - { - TPckgBuf* ptr = - static_cast*>( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - - TCamSettingDataExposure& evData( (*ptr)() ); - evData.iExposureMode = KEvModeSetting; -#ifdef CAMERAAPP_CAPI_V2 - evData.iExposureStep = KEvValueSetting * KECamFineResolutionFactor; -#else - evData.iExposureStep = 0; -#endif - break; - } - case ECameraSettingLightSensitivity: - { - TInt* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KISOValue; - break; - } - case ECameraSettingWhiteBalance: - { - TPckgBuf* ptr = - static_cast*>( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - - TCamSettingDataWhiteBalance& wbData( (*ptr)() ); - wbData.iWhiteBalanceMode = KWbModeSetting; - break; - } - case ECameraSettingBrightness: - { - CCamera::TBrightness* ptr = - static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KBrightnessValue; - break; - } - case ECameraSettingContrast: - { - CCamera::TContrast* ptr = - static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KContrastValue; - break; - } - case ECameraSettingDigitalZoom: - { - TInt* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KDigitalZoomValue; - break; - } - case ECameraSettingOpticalZoom: - { - TInt* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KOpticalZoomValue; - break; - } - -#ifdef CAMERAAPP_CAPI_V2 - case ECameraSettingFocusRange: - { - CCamera::CCameraAdvancedSettings::TFocusRange* ptr = - static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = KFocusRange; - break; - } -#endif // CAMERAAPP_CAPI_V2 - case ECameraSettingAudioMute: - { - TBool* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = EFalse; - break; - } - case ECameraSettingContAF: - { - TBool* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = ETrue; - break; - } - case ECameraSettingFileMaxSize: - { - TInt* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = 0; // not limited - break; - } - case ECameraSettingFileName: - { - TPtr* ptr = static_cast( aSettingData ); - CheckNonNullL( ptr, KErrNotFound ); - *ptr = iController.CurrentFullFileName(); - break; - } - default: - { - User::Leave( KErrNotSupported ); - break; - } - } - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::ProvidePendingSettingChangesL( - RArray& aSettingIds ) - { - PRINT( _L("Camera => CCamConstantSettingProvider::ProvidePendingSettingChangesL") ); - aSettingIds.Reset(); - aSettingIds.ReserveL( iPendingSettingChanges.Count() ); - for( TInt i = 0; i < iPendingSettingChanges.Count(); i++ ) - { - aSettingIds.AppendL( iPendingSettingChanges[i] ); - } - PRINT1( _L("Camera <> %d settings changed"), aSettingIds.Count() ); - - - // Update: Reset only when asked. Enables retries. - // iPendingSettingChanges.Reset(); - PRINT( _L("Camera <= CCamConstantSettingProvider::ProvidePendingSettingChangesL") ); - } - - -// --------------------------------------------------------------------------- -// PendingSettingChangeCount -// --------------------------------------------------------------------------- -// -TInt -CCamConstantSettingProvider::PendingSettingChangeCount() const - { - return iPendingSettingChanges.Count(); - } - - -// =========================================================================== -// From MCamSettingsModelObserver -/* -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::IntegerSettingChangedL( - TCamSettingItemIds aSettingItem, - TInt// aSettingValue - ) - { - TCamCameraIntSettingId cameraId = - Map2CameraControllerSettingId( aSettingItem ); - - if( ECameraSettingNone != cameraId - && KErrNotFound == iPendingSettingChanges.Find( cameraId ) ) - { - iPendingSettingChanges.AppendL( cameraId ) - } - } - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::TextSettingChangedL( - TCamSettingItemIds aSettingItem, - const TDesC&// aSettingValue - ) - { - TCamCameraIntSettingId cameraId = - Map2CameraControllerSettingId( aSettingIds[i] ); - - if( ECameraSettingNone != cameraId ) - { - iPendingSettingChanges.Append( cameraId ) - } - } -*/ -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::Reset() - { - iPendingSettingChanges.Reset(); - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider -::AddPendingSettingChangesL( const RArray& aUiSettingIds ) - { - iPendingSettingChanges.ReserveL( aUiSettingIds.Count() - + iPendingSettingChanges.Count() ); - - for( TInt i = 0; i < aUiSettingIds.Count(); i++ ) - { - AddPendingSettingChangeL( aUiSettingIds[i] ); - } - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider -::AddPendingSettingChangeL( TCamSettingItemIds aUiSettingId ) - { - TCamCameraSettingId cameraId = - CCamSettingConversion::Map2CameraControllerSettingId( aUiSettingId ); - - // Add each setting only once - if( ECameraSettingNone != cameraId - && KErrNotFound == iPendingSettingChanges.Find( cameraId ) ) - { - iPendingSettingChanges.AppendL( cameraId ); - } - } - -// --------------------------------------------------------------------------- -// SetSupportedISORatesL -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::SetSupportedISORatesL( const RArray& aSupportedIsoRates ) - { - iSupportedISORates = aSupportedIsoRates; - if ( iSupportedISORates.Count() != 0 ) - { - iValidISORates = ETrue; - } - } - -// =========================================================================== -// private - - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -void -CCamConstantSettingProvider::ConstructL() - { - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -CCamConstantSettingProvider -::CCamConstantSettingProvider( CCamAppController& aController ) - : iController( aController ), - iPendingSettingChanges() - { - } -