--- a/camerasrv_plat/camera_application_engine_api/tsrc/src/CaeTestSettingsClient.cpp Thu Aug 19 10:05:54 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1597 +0,0 @@
-/*
-* Copyright (c) 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: CaeTestSettingsClient.cpp
-*
-*/
-#include <fbs.h>
-
-#include "CaeTestSettingsClient.h"
-//#include "mmcleanup.h"
-
-//_LIT8(KVideoMimeType, "video/3gpp");
-//_LIT(KVideoPreferredSupplier, "Nokia");
-//_LIT8(KVideoType, "video/H263-2000");
-//_LIT8(KVideoAudioType, " AMR");
-
-const TUid KSdUidQltyLevels = {KNullUidValue};
-const TUid KSdIllegalUidQltyLevels = {666};
-
-CCaeTestSettingsClient::CCaeTestSettingsClient()
- {
- }
-
-
-CCaeTestSettingsClient::~CCaeTestSettingsClient()
- {
- }
-
-
-CCaeTestSettingsClient* CCaeTestSettingsClient::NewL()
- {
- CCaeTestSettingsClient* self = new(ELeave) CCaeTestSettingsClient;
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-
-void CCaeTestSettingsClient::ConstructL()
- {
- CCaeTestClient::ConstructL();
-
- iRunWithViewFinder = EFalse;
- }
-
-
-void CCaeTestSettingsClient::RunTestActionL( TestClientActions aAction )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestVideoSettingsClient::RunTestActionL() entering" ) );
- #endif
-
- iAction = aAction;
- iSavedAction = aAction;
-
- // Initialize all state variables.
- InitStateVariables();
-
- iCamAppEngine->InitL( KSdUidQltyLevels );
-
- // Main part of program is a wait loop.
- // This function completes when the scheduler stops.
- CActiveScheduler::Start();
-
- if ( iError )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient::RunTestActionL() leaving (error detected)" ) );
- #endif
- User::Leave( iError );
- }
-
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient::RunTestActionL() returning" ) );
- #endif
- }
-
-
-void CCaeTestSettingsClient::RunTrappedL()
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient::RunTrappedL() entering" ) );
- #endif
-
- if ( iStop )
- {
- if ( iCamAppEngine->IsViewFinding() )
- {
- iCamAppEngine->StopViewFinder();
- iViewFinderStarted = EFalse;
- }
- iCamAppEngine->CancelCaptureStill();
- iCamAppEngine->CloseVideoRecording();
- delete iBitmapSave;
- iBitmapSave = NULL;
- delete iDataSave;
- iDataSave = NULL;
- CActiveScheduler::Stop();
- }
- else if ( iInitReady )
- {
-
- if ( iAction != ESetVideoFileNameWhenNotInitialized &&
- iAction != ESetAudioWhenVideoNotInitialized &&
- iAction != ESetClipMaxSizeWhenVideoNotInitialized &&
- iAction != EGetAudioWhenVideoNotInitialized )
- {
- iCamAppEngine->InitVideoRecorderL( KSdUidQltyLevels );
- }
-
- User::After( 1000000 ); // Give some time for camera drivers to settle.
-
- switch ( iAction )
- {
- case EGetInfo:
- iCamAppEngine->GetInfo( iInfo );
- iStop = ETrue;
- break;
- case ESetVideoFileNameWhenInitialized:
- case ESetVideoFileNameWhenNotInitialized:
- iCamAppEngine->SetVideoRecordingFileNameL( iVideoFileName );
- iStop = ETrue;
- break;
- case ESetEmptyVideoFileNameWhenInitialized:
- iCamAppEngine->SetVideoRecordingFileNameL( _L("") );
- iStop = ETrue;
- break;
- case ESetDigiZoomWhenInitialized:
- iAction = EDefault;
- iCamAppEngine->SetZoomModeL( static_cast<CCaeEngine::TZoomMode>( iZoomMode ) );
- iCamAppEngine->SetZoomValueL( iDigiZoomValue );
- break;
- case ESetBrightnessWhenInitialized:
- iAction = EDefault;
- iCamAppEngine->SetBrightnessL( iBrightness );
- break;
- case ESetContrastWhenInitialized:
- {
- iAction = EDefault;
-
- //Test before setting, value is unknown?
- TInt contrast = iCamAppEngine->Contrast();
-
- iCamAppEngine->SetContrastL( iContrast );
-
- //Test immediately that value is right
- contrast = iCamAppEngine->Contrast();
- if ( contrast != iContrast )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetExposureModeWhenInitialized:
- iAction = EDefault;
- iCamAppEngine->SetExposureModeL( static_cast<CCamera::TExposure>( iExposureMode ) );
- break;
- case ESetEvCompensationWhenInitialized:
- {
- // Read value before setting, should be zero if not supported
- TInt evCompensation = iCamAppEngine->EvCompensation();
- if ( evCompensation != 0 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- iCamAppEngine->SetEvCompensationL( iEvCompensation );
- }
- break;
- case ESetWhiteBalanceModeWhenInitialized:
- iAction = EDefault;
- iCamAppEngine->SetWhiteBalanceModeL( static_cast<CCamera::TWhiteBalance>( iWhiteBalanceMode ) );
- break;
- case ESetFlashModeWhenInitialized:
- iAction = EDefault;
- iCamAppEngine->SetFlashModeL( static_cast<CCamera::TFlash>( iFlashMode ) );
- break;
- case EResetToDefaults:
- // iAction = EDefault;
- iCamAppEngine->SetZoomModeL( static_cast<CCaeEngine::TZoomMode>( iZoomMode ) );
- iCamAppEngine->SetZoomValueL( iDigiZoomValue );
- if ( TCameraInfo::EBrightnessSupported & iInfo.iOptionsSupported )
- {
- iCamAppEngine->SetBrightnessL( iBrightness );
- }
- if ( TCameraInfo::EContrastSupported & iInfo.iOptionsSupported )
- {
- iCamAppEngine->SetContrastL( iContrast );
- }
- iCamAppEngine->SetExposureModeL( static_cast<CCamera::TExposure>( iExposureMode ) );
- iCamAppEngine->SetWhiteBalanceModeL( static_cast<CCamera::TWhiteBalance>( iWhiteBalanceMode ) );
- iCamAppEngine->SetFlashModeL( static_cast<CCamera::TFlash>( iFlashMode ) );
- break;
- case ESetViewFinderMirror:
- {
- TBool mirrorVF = iCamAppEngine->ViewFinderMirror();
- if ( mirrorVF )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- iAction = EDefault;
- iCamAppEngine->SetViewFinderMirrorL( ETrue );
- break;
- case EGetStillFrameSizeWhenInitialized:
- // Test with invalid quality level index.
- iCamAppEngine->GetStillFrameSize( -1, iStillFrameSizeSet );
- iCamAppEngine->GetStillFrameSize( 666, iStillFrameSizeSet );
- // Test with valid quality level index.
- iCamAppEngine->GetStillFrameSize( iStillQualityLevelIndex, iStillFrameSizeSet );
- iStop = ETrue;
- break;
- case EEstimatedStillSizeInBytesWhenInitialized:
- // Test with invalid quality level index.
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( -1 );
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( 666 );
- // Test with valid quality level index.
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( iStillQualityLevelIndex );
- iStop = ETrue;
- break;
- case EGetVideoFrameSizeWhenInitialized:
- {
- // test first with invalid index values: negative and too big, should not modify data
- TSize tempFrameSize1( KImgWidthQCIF, KImgHeightQCIF );
- TSize tempFrameSize2( KImgWidthQCIF, KImgHeightQCIF );
-
- iCamAppEngine->GetVideoFrameSize( -1, tempFrameSize1 );
- if ( tempFrameSize1 != tempFrameSize2 )
- {
- User::Leave ( KErrArgument );
- }
- iCamAppEngine->GetVideoFrameSize( 666, tempFrameSize1 );
- if ( tempFrameSize1 != tempFrameSize2 )
- {
- User::Leave ( KErrArgument );
- }
- iCamAppEngine->GetVideoFrameSize( iVideoQualityLevelIndex, iVideoFrameSizeSet );
- iStop = ETrue;
- }
- break;
- case EVideoFrameRateWhenInitialized:
- {
- // test first with invalid index values: negative and too big, should return 0
- iVideoFrameRateSet = iCamAppEngine->VideoFrameRate( -1 );
- if ( iVideoFrameRateSet != 0 )
- {
- User::Leave ( KErrArgument );
- }
- iVideoFrameRateSet = iCamAppEngine->VideoFrameRate( 666 );
- if ( iVideoFrameRateSet != 0 )
- {
- User::Leave ( KErrArgument );
- }
- iVideoFrameRateSet = iCamAppEngine->VideoFrameRate( iVideoQualityLevelIndex );
- iStop = ETrue;
- }
- break;
- case EEstimatedVideoRecordingBitRateWhenInitialized:
- // test first with invalid index values: negative and too big, should return 0
- iEstimatedVideoBitRateSet =
- iCamAppEngine->EstimatedVideoRecordingBitRateL( -1 );
- if ( iEstimatedVideoBitRateSet != 0 )
- {
- User::Leave ( KErrArgument );
- }
- iEstimatedVideoBitRateSet =
- iCamAppEngine->EstimatedVideoRecordingBitRateL( 666 );
- if ( iEstimatedVideoBitRateSet != 0 )
- {
- User::Leave ( KErrArgument );
- }
- iEstimatedVideoBitRateSet =
- iCamAppEngine->EstimatedVideoRecordingBitRateL( iVideoQualityLevelIndex );
- iStop = ETrue;
- break;
- case ESetClipMaxSizeWhenVideoNotPrepared:
- iAction = EDefault;
- iCamAppEngine->SetVideoClipMaxSizeL( iVideoMaxClipSizeInBytes );
- break;
- /*
- case EPrepareAndSetStillBurstCaptureInterval:
- iAction = EDefault;
- iCamAppEngine->PrepareStillCaptureL( iStillQualityLevelIndex );
- break;
- */
- case EInitUid:
- iCamAppEngine->InitL( KSdIllegalUidQltyLevels );// will leave
- iStop = ETrue;
- break;
- case ESetAudioWhenVideoNotInitialized:
- iAction = EDefault;
- iCamAppEngine->SetVideoAudioL( iVideoAudioEnabled );
- break;
- case ESetClipMaxSizeWhenVideoNotInitialized:
- iAction = ENone;
- iCamAppEngine->SetVideoClipMaxSizeL( iVideoMaxClipSizeInBytes );
- break;
- case EGetAudioWhenVideoNotInitialized:
- {
- iStop = ETrue;
- TBool audio = iCamAppEngine->VideoAudio();
- if ( audio != EFalse )
- {
- User::Leave ( KErrArgument );
- }
- }
- break;
- case EEnumerateVideoFrameSize:
- {
- iStop = ETrue;
- TInt enumIndVGA;
- TInt enumIndCIF;
- TInt enumIndQCIF;
- TInt enumIndBIG;
- TInt enumIndZERO;
- TSize sizeVGA( KImgWidthVGA, KImgHeightVGA );
- TSize sizeCIF( KImgWidthCIF, KImgHeightCIF );
- TSize sizeQCIF( KImgWidthQCIF, KImgHeightQCIF );
- TSize sizeBIG( KImgWidthTooBig, KImgHeightTooBig );
- TSize sizeZERO( 0, 0 );
-
- enumIndVGA = iCamAppEngine->EnumerateVideoFrameSizeL( sizeVGA );
- enumIndCIF = iCamAppEngine->EnumerateVideoFrameSizeL( sizeCIF );
- enumIndQCIF = iCamAppEngine->EnumerateVideoFrameSizeL( sizeQCIF );
- enumIndBIG = iCamAppEngine->EnumerateVideoFrameSizeL( sizeBIG );
- enumIndZERO = iCamAppEngine->EnumerateVideoFrameSizeL( sizeZERO );
-
- if ( ( enumIndVGA < 0 && enumIndCIF < 0 && enumIndQCIF < 0 ) ||
- enumIndBIG >= 0 || enumIndZERO >= 0 )
- {
- User::Leave ( KErrNotSupported );
- }
- }
- break;
-
- case EInstalledExtensionList:
- {
- RCaeOrderedFeatureList installedExtensions1;
- RCaeOrderedFeatureList installedExtensions2;
- TCaeOrderedFeatureListItem item;
-
- // call the get function
- iCamAppEngine->GetOrderL( installedExtensions1 );
-
- // test that cae resets the parameter before usage
- item.iFeatureUid = KSdIllegalUidQltyLevels;
- installedExtensions2.Append( item );
- iCamAppEngine->GetOrderL( installedExtensions2 );
-
- // Check that the both arrays are the same
- if ( installedExtensions1.Count() != installedExtensions2.Count() )
- {
- installedExtensions1.Reset();
- installedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: CAE doesn't reset the array" ) );
- User::Leave ( KErrArgument );
- }
- for(TInt i=0; i < installedExtensions1.Count(); i++ )
- {
- if ( installedExtensions1[i].iServiceUid != installedExtensions2[i].iServiceUid ||
- installedExtensions1[i].iFeatureUid != installedExtensions2[i].iFeatureUid )
- {
- installedExtensions1.Reset();
- installedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: CAE the array is not same" ) );
- User::Leave ( KErrArgument );
- }
- }
- installedExtensions1.Reset();
- installedExtensions2.Reset();
- iStop = ETrue;
- }
- break;
-
- case ESkippedExtensionList:
- {
- RCaeOrderedFeatureList skippedExtensions1;
- RCaeOrderedFeatureList skippedExtensions2;
- TCaeOrderedFeatureListItem item;
- // call get function twice
- iCamAppEngine->SkippedExtensionListL( skippedExtensions1 );
- // test that cae resets non-empty parameter
- item.iFeatureUid = KSdIllegalUidQltyLevels;
- skippedExtensions2.Append( item );
- iCamAppEngine->SkippedExtensionListL( skippedExtensions2 );
- // Check that the both arrays are the same
- if ( skippedExtensions1.Count() != skippedExtensions2.Count() )
- {
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: CAE doesn't reset the array" ) );
- User::Leave ( KErrArgument );
- }
- for(TInt i=0; i < skippedExtensions1.Count(); i++ )
- {
- if ( skippedExtensions1[i].iServiceUid != skippedExtensions2[i].iServiceUid ||
- skippedExtensions1[i].iFeatureUid != skippedExtensions2[i].iFeatureUid )
- {
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: array is not same" ) );
- User::Leave ( KErrArgument );
- }
- }
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- iStop = ETrue;
- }
- break;
-
- case ESetSkippedExtensionList:
- {
- RCaeOrderedFeatureList skippedExtensions1;
- RCaeOrderedFeatureList skippedExtensions2;
- TCaeOrderedFeatureListItem item;
-
- // call set function twice
- iCamAppEngine->SetSkippedExtensionList( skippedExtensions1 );
- iCamAppEngine->SetSkippedExtensionList( skippedExtensions1 );
-
- // read and verify
- iCamAppEngine->SkippedExtensionListL( skippedExtensions1 );
- if ( skippedExtensions1.Count() != 0 )
- {
- skippedExtensions1.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: get/set error" ) );
- User::Leave ( KErrArgument );
- }
-
- // Add one UID
- item.iFeatureUid = KSdIllegalUidQltyLevels;
- skippedExtensions1.Append( item );
- iCamAppEngine->SetSkippedExtensionList( skippedExtensions1 );
- iCamAppEngine->SetSkippedExtensionList( skippedExtensions1 );
-
- // read and verify
- skippedExtensions1.Reset();
- iCamAppEngine->SkippedExtensionListL( skippedExtensions1 );
- if ( skippedExtensions1.Count() != 0 )
- {
- skippedExtensions1.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: set inv. error" ) );
- User::Leave ( KErrArgument );
- }
-
- // call the get function to get installed extensions
- iCamAppEngine->GetOrderL( skippedExtensions1 );
-
- // Add one invalid UID and set all skipped
- item.iFeatureUid = KSdIllegalUidQltyLevels;
- skippedExtensions1.Append( item );
- iCamAppEngine->SetSkippedExtensionList( skippedExtensions1 );
-
- // read and verify that both arrays are the same
- iCamAppEngine->SkippedExtensionListL( skippedExtensions1 );
- iCamAppEngine->GetOrderL( skippedExtensions2 );
-
- // Check that the both arrays are the same
- if ( skippedExtensions1.Count() != skippedExtensions2.Count() )
- {
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: CAE doesn't reset the array" ) );
- User::Leave ( KErrArgument );
- }
- for(TInt i=0; i < skippedExtensions1.Count(); i++ )
- {
- if ( skippedExtensions1[i].iServiceUid != skippedExtensions2[i].iServiceUid ||
- skippedExtensions1[i].iFeatureUid != skippedExtensions2[i].iFeatureUid )
- {
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: array is not same" ) );
- User::Leave ( KErrArgument );
- }
- }
-
- skippedExtensions1.Reset();
- skippedExtensions2.Reset();
- iStop = ETrue;
- }
- break;
-
- default:
- //iVideoRecordingOn = EFalse;
- //iCamAppEngine->StopVideoRecording();
- break;
- }
-
- User::After( 1000000 ); // Give some time for camera drivers to settle.
-
- if ( ( iAction != ENone ) && !iStop)
- {
- iInitReady = EFalse;
- iViewFinderStarted = EFalse;
- iStillPrepareReady = EFalse;
- iVideoPrepareReady = EFalse;
- switch ( iOpMode )
- {
- case EClientOpModeStill:
- switch ( iAction )
- {
- case ESetEvCompensationWhenInitialized:
- case ESetEvCompensationWhenStillPrepared:
- case ESetJpegQualityWhenStillPrepared:
- case EProcessExtCapturedImageBurst:
- case EProcessExtCapturedImageBurstTDesC8:
- if ( iAction == ESetEvCompensationWhenInitialized )
- {
- iAction = EDefault;
- }
- iCamAppEngine->PrepareStillCaptureL( iStillFrameSize,
- iStillDataFormat,
- iStillCompressionQuality );
- break;
- case ESetSnapImageSizeBeforePrepare:
- iCamAppEngine->SetSnapImageSizeL( iSnapImageSize );
- iCamAppEngine->PrepareStillCaptureL( iStillFrameSize,
- iStillDataFormat,
- iStillCompressionQuality );
- break;
- case ESetSnapImageSizeDuringAndAfterPrepare:
- iCamAppEngine->PrepareStillCaptureL( iStillFrameSize,
- iStillDataFormat,
- iStillCompressionQuality,
- TRect(),
- iSnapImageSize );
- break;
- case ESetJpegCodecWhenStillPrepared:
- iCamAppEngine->SetImageCodecsL( iImageDecoderUid, iImageEncoderUid );
- iCamAppEngine->PrepareStillCaptureL( iStillFrameSize,
- iStillDataFormat,
- iStillCompressionQuality );
- break;
- default:
- iCamAppEngine->PrepareStillCaptureL( iStillQualityLevelIndex );
- break;
- }
- break;
- case EClientOpModeVideo:
- iCamAppEngine->SetVideoRecordingFileNameL( iVideoFileName );
- iCamAppEngine->PrepareVideoRecordingL( iVideoQualityLevelIndex );
- break;
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- }
- else
- {
- CTimer::After( KNormalTimingDelay );
- }
- }
- else if ( iStillPrepareReady )
- {
-
- if ( iRunWithViewFinder && !iCamAppEngine->IsViewFinding() )
- {
- iCamAppEngine->StartViewFinderBitmapsL( iViewFinderSize );
- // User::After( 1000000 ); // Give some time for camera drivers to settle.
- }
-
- iStillPrepareReady = EFalse;
-
- TBool capture = EFalse;
-
- switch ( iAction )
- {
- case ESetDigiZoomWhenStillPrepared:
- {
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetZoomModeL( static_cast<CCaeEngine::TZoomMode>( iZoomMode ) );
- /*TInt zoomValue1 =*/ iCamAppEngine->ZoomValue();
- iCamAppEngine->SetZoomValueL( iDigiZoomValue );
- /*TInt zoomValue2 =*/ iCamAppEngine->ZoomValue();
- }
- break;
- case ESetBrightnessWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetBrightnessL( iBrightness );
- break;
- case ESetContrastWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetContrastL( iContrast );
- break;
- case ESetExposureModeWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetExposureModeL( static_cast<CCamera::TExposure>( iExposureMode ) );
- break;
- case ESetEvCompensationWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetEvCompensationL( iEvCompensation );
- break;
- case ESetWhiteBalanceModeWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetWhiteBalanceModeL( static_cast<CCamera::TWhiteBalance>( iWhiteBalanceMode ) );
- break;
- case ESetFlashModeWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->SetFlashModeL( static_cast<CCamera::TFlash>( iFlashMode ) );
- break;
- case ESetJpegQualityWhenStillPrepared:
- iAction = EDefault;
- capture = ETrue;
-// If interface after S60 2.1.
-#ifndef CAE_INTERFACE_21
- iCamAppEngine->SetJpegQuality( iStillCompressionQuality );
-#endif
- break;
- case EResetToDefaults:
- iAction = EDefault;
- capture = ETrue;
- iCamAppEngine->ResetToDefaultsL();
- {
- CCaeEngine::TZoomMode zoomModeR = iCamAppEngine->ZoomMode();
- if ( zoomModeR != CCaeEngine::EZoomModeDigital )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt zoomValueR = iCamAppEngine->ZoomValue();
- if ( zoomValueR != 0 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt brightnessR = iCamAppEngine->Brightness();
- if ( brightnessR != 0 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt contrastR = iCamAppEngine->Contrast();
- if ( contrastR != 0 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt exposuremodeR = iCamAppEngine->ExposureMode();
- if ( exposuremodeR != CCamera::EExposureAuto )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt whitebalancemodeR = iCamAppEngine->WhiteBalanceMode();
- if ( whitebalancemodeR != CCamera::EWBAuto )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt flashmodeR = iCamAppEngine->FlashMode();
- if ( flashmodeR != CCamera::EFlashNone )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetViewFinderMirror:
- {
- iAction = EDefault;
- TBool mirrorVF = iCamAppEngine->ViewFinderMirror();
- capture = ETrue;
- if ( !mirrorVF )
- {
- User::Leave( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case EGetStillFrameSizeWhenPrepared:
- // Test with invalid quality level index.
- iCamAppEngine->GetStillFrameSize( -1, iStillFrameSizeSet );
- iCamAppEngine->GetStillFrameSize( 666, iStillFrameSizeSet );
- // Test with valid quality level index.
- iCamAppEngine->GetStillFrameSize( iStillQualityLevelIndex, iStillFrameSizeSet );
- iStop = ETrue;
- break;
- case ESetSnapImageSizeDuringAndAfterPrepare:
- iCamAppEngine->SetSnapImageSizeL( iSnapImageSize );
- capture = ETrue;
- break;
- case EEstimatedStillSizeInBytesWhenPrepared:
- // Test with invalid quality level index.
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( -1 );
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( 666 );
- // Test with valid quality level index.
- iEstimatedStillSizeInBytesSet =
- iCamAppEngine->EstimatedStillSizeInBytes( iStillQualityLevelIndex );
- iStop = ETrue;
- break;
- case EPrepareAndSetStillBurstCaptureInterval:
- {
- iImageCountToCapture = iCamAppEngine->SetStillCaptureImageCountL( iStillBurstLength );
- iCamAppEngine->SetStillBurstCaptureIntervalL( iStillBurstCaptureInterval );
- /*TInt imgCount =*/ iCamAppEngine->StillCaptureImageCount();
- capture = ETrue;
- // "prepare-version" of burst mode
- // iCamAppEngine->PrepareStillBurstL( iStillBurstLength );
- }
- break;
- default:
- capture = ETrue;
- break;
- }
-
- if ( capture )
- {
- iStillCaptureReady = EFalse;
- iStillCapturingOn = ETrue;
- iStillCaptured = ETrue;
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->CaptureStill()" ) );
- #endif
- User::After( 1000000 ); // Give some time for camera drivers to settle.
- iCamAppEngine->CaptureStill();
- }
- else
- {
- CTimer::After( KNormalTimingDelay );
- }
-
- }
- else if ( iVideoPrepareReady )
- {
-
- if ( iRunWithViewFinder && !iCamAppEngine->IsViewFinding() )
- {
- iCamAppEngine->StartViewFinderBitmapsL( iViewFinderSize );
- // User::After( 1000000 ); // Give some time for camera drivers to settle.
- }
-
- TBool record( EFalse );
-
- iVideoPrepareReady = EFalse;
-
- switch ( iAction )
- {
- case ESetDigiZoomWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetZoomModeL( static_cast<CCaeEngine::TZoomMode>( iZoomMode ) );
- iCamAppEngine->SetZoomValueL( iDigiZoomValue );
- break;
- case ESetBrightnessWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetBrightnessL( iBrightness );
- break;
- case ESetContrastWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetContrastL( iContrast );
- break;
- case ESetExposureModeWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetExposureModeL( static_cast<CCamera::TExposure>( iExposureMode ) );
- break;
- case ESetEvCompensationWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetEvCompensationL( iEvCompensation );
- break;
- case ESetWhiteBalanceModeWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetWhiteBalanceModeL( static_cast<CCamera::TWhiteBalance>( iWhiteBalanceMode ) );
- break;
- case ESetFlashModeWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetFlashModeL( static_cast<CCamera::TFlash>( iFlashMode ) );
- break;
- case ESetVideoTimesIntervalWhenVideoPrepared:
- record = ETrue;
- iCamAppEngine->SetVideoTimesIntervalL( iVideoTimesInterval );
- break;
- case ESetVideoFileNameWhenPrepared:
- iAction = EDefault;
- iCamAppEngine->StopViewFinder();
- iCamAppEngine->SetVideoRecordingFileNameL( iVideoFileName );
- break;
- case ESetClipMaxSizeWhenVideoPrepared:
- iAction = EDefault;
- iCamAppEngine->SetVideoClipMaxSizeL( iVideoMaxClipSizeInBytes );
- break;
- case ESetAudioWhenVideoPrepared:
- iAction = EDefault;
- iCamAppEngine->SetVideoAudioL( iVideoAudioEnabled );
- break;
- case EGetVideoFrameSizeWhenPrepared:
- iCamAppEngine->GetVideoFrameSize( iVideoQualityLevelIndex, iVideoFrameSizeSet );
- iStop = ETrue;
- break;
- case EVideoFrameRateWhenPrepared:
- iVideoFrameRateSet = iCamAppEngine->VideoFrameRate( iVideoQualityLevelIndex );
- iStop = ETrue;
- break;
- case EEstimatedVideoRecordingBitRateWhenPrepared:
- iEstimatedVideoBitRateSet =
- iCamAppEngine->EstimatedVideoRecordingBitRateL( iVideoQualityLevelIndex );
- iStop = ETrue;
- break;
- default:
- // iVideoPrepareReady = EFalse;
- record = ETrue;
- break;
- }
- /*
- iVideoRecordingReady = EFalse;
- iVideoRecordingOn = EFalse;
- iVideoRecorded = ETrue;
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->StartVideoRecording()" ) );
- #endif
- iCamAppEngine->StartVideoRecording();
- */
- if ( record )
- {
- iVideoRecordingReady = EFalse;
- iVideoRecordingOn = EFalse;
- iVideoRecorded = ETrue;
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->StartVideoRecording()" ) );
- #endif
- User::After( 1000000 ); // Give some time for camera drivers to settle.
- iCamAppEngine->StartVideoRecording();
- }
- else if ( iAction != EDefault )
- {
- CTimer::After( KNormalTimingDelay );
- }
- }
- else if ( iSnapImageReady )
- {
- iSnapImageReady = EFalse;
- }
- else if ( iStillCaptureReady )
- {
- // Check here if the settings were taken into use.
- // (For settings with a get-method.)
- switch ( iSavedAction )
- {
- case ESetDigiZoomWhenStillPrepared:
- case ESetDigiZoomWhenInitialized:
- {
- CCaeEngine::TZoomMode zoomMode = iCamAppEngine->ZoomMode();
- if ( zoomMode != CCaeEngine::EZoomModeDigital )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt zoomValue = iCamAppEngine->ZoomValue();
- if ( zoomValue != iDigiZoomValue )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetBrightnessWhenStillPrepared:
- case ESetBrightnessWhenInitialized:
- {
- TInt brightness = iCamAppEngine->Brightness();
- if ( brightness != iBrightness )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetContrastWhenStillPrepared:
- case ESetContrastWhenInitialized:
- {
- TInt contrast = iCamAppEngine->Contrast();
- if ( contrast != iContrast )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
-
- // Test poweroff case, contrast should be 0
- iCamAppEngine->PowerOff();
- contrast = iCamAppEngine->Contrast();
- if ( contrast != 0 )
- {
- User::Leave ( KErrArgument );
- }
- }
- break;
- case ESetExposureModeWhenStillPrepared:
- case ESetExposureModeWhenInitialized:
- {
- TInt exposuremode = iCamAppEngine->ExposureMode();
- if ( exposuremode != iExposureMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetEvCompensationWhenStillPrepared:
- case ESetEvCompensationWhenInitialized:
- {
- TInt evCompensation = iCamAppEngine->EvCompensation();
- if ( evCompensation != iEvCompensation )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetJpegQualityWhenStillPrepared:
- {
-// If interface after S60 2.1.
-#ifndef CAE_INTERFACE_21
- TInt jpegQuality = iCamAppEngine->JpegQuality();
- if ( ( iStillCompressionQuality >= 1 ) && ( iStillCompressionQuality <= 100 ) )
- {
- if ( jpegQuality != iStillCompressionQuality )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- else
- {
- // Test clamping to the range 1-100.
- if ( iStillCompressionQuality < 1 )
- {
- if ( jpegQuality != 1 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- else if ( iStillCompressionQuality > 100 )
- {
- if ( jpegQuality != 100 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- }
-#endif
- }
- break;
- case ESetWhiteBalanceModeWhenStillPrepared:
- case ESetWhiteBalanceModeWhenInitialized:
- {
- TInt whitebalancemode = iCamAppEngine->WhiteBalanceMode();
- if ( whitebalancemode != iWhiteBalanceMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetFlashModeWhenStillPrepared:
- case ESetFlashModeWhenInitialized:
- {
- TInt flashmode = iCamAppEngine->FlashMode();
- if ( flashmode != iFlashMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case EPrepareAndSetStillBurstCaptureInterval:
- break;
- default:
- break;
- }
-
- iStillCaptureReady = EFalse;
-
- // #ifdef _DEBUG
- // RDebug::Print( _L( "Cae: CCaeTestStillSettingsClient: calling iCamAppEngine->StartViewFinderBitmapsL()" ) );
- // #endif
- // iViewFindingUsed = ETrue;
- // iCamAppEngine->StartViewFinderBitmapsL( iViewFinderSize );
-
- if ( iAction == EProcessExtViewFinderFrameReady ||
- iAction == EProcessExtSnapImage ||
- iAction == EProcessExtCapturedImage ||
- iAction == EProcessExtCapturedImageTDesC8 ||
- iAction == EProcessExtCapturedImageCFbsBitmap ||
- iAction == EProcessExtCapturedImageBurst ||
- iAction == EProcessExtCapturedImageBurstTDesC8 ||
- iAction == EProcessExtCancel ||
- iAction == EProcessExtCancel2 )
- {
- if ( iAction == EProcessExtCapturedImageTDesC8 )
- {
- // Test also that release should not stop the extension mode operation
- iCamAppEngine->Release();
- }
- iCamAppEngine->SetCaeExtensionModeL( ETrue, EFalse );
- iExtensionMode = ETrue;
- CTimer::After( iTimeout );
- }
- else if ( iAction == EProcessExtCapturedImageNoInit )
- {
- // test images are captured now, delete observer1 engine and create a new
- delete iCamAppEngine;
- iCamAppEngine = NULL;
- iCamAppEngine = CCaeEngine::NewL( 0 );
- iCamAppEngine->SetCamAppEngineObserver( *this );
- iCamAppEngine->SetCaeStillBurstObserver( *this );
- iCamAppEngine->GetInfo( iInfo );
-
- // Move cae to extension mode without initl or prepare call
- iCamAppEngine->SetCaeExtensionModeL( ETrue, EFalse );
- iExtensionMode = ETrue;
- CTimer::After( iTimeout );
- }
- else if ( iStillBurstLength == 1 )
- {
- iStop = ETrue;
- CTimer::After( iTimeout );
- }
- }
-
- else if ( iStillBurstReady )
- {
- iStillBurstReady = EFalse;
-
- switch ( iAction )
- {
- case EPrepareAndSetStillBurstCaptureInterval:
- default:
- iAction = ENone;
- {
- TTimeIntervalMicroSeconds stillburstcaptureinterval =
- iCamAppEngine->StillBurstCaptureInterval();
- if ( stillburstcaptureinterval != iStillBurstCaptureInterval )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
-
- iImageCountToCapture = iCamAppEngine->SetStillCaptureImageCountL( 1 );
- if ( iImageCountToCapture != 1 )
- {
- User::Leave( KErrGeneral );
- }
- }
- iStop = ETrue;
- CTimer::After( KNormalTimingDelay );
- break;
- }
- }
-
- else if ( iVideoRecordingOn )
- {
- switch ( iAction )
- {
- case ESetDigiZoomWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetZoomModeL( static_cast<CCaeEngine::TZoomMode>( iZoomMode ) );
- iCamAppEngine->SetZoomValueL( iDigiZoomValue );
- break;
- case ESetBrightnessWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetBrightnessL( iBrightness );
- break;
- case ESetContrastWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetContrastL( iContrast );
- break;
- case ESetExposureModeWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetExposureModeL( static_cast<CCamera::TExposure>( iExposureMode ) );
- break;
- case ESetEvCompensationWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetEvCompensationL( iEvCompensation );
- break;
- case ESetWhiteBalanceModeWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetWhiteBalanceModeL( static_cast<CCamera::TWhiteBalance>( iWhiteBalanceMode ) );
- break;
- case ESetFlashModeWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetFlashModeL( static_cast<CCamera::TFlash>( iFlashMode ) );
- break;
- case ESetVideoTimesIntervalWhenVideoRecording:
- iAction = EDefault;
- iCamAppEngine->SetVideoTimesIntervalL( iVideoTimesInterval );
- break;
- case ESetClipMaxSizeWhenVideoRecording:
- iAction = ENone;
- iCamAppEngine->SetVideoClipMaxSizeL( iVideoMaxClipSizeInBytes );
- break;
- case ESetAudioWhenVideoRecording:
- iAction = ENone;
- iCamAppEngine->SetVideoAudioL( iVideoAudioEnabled );
- break;
- case ESetVideoFileNameWhenRecording:
- iAction = EDefault;
- iCamAppEngine->SetVideoRecordingFileNameL( iVideoFileName );
- iStop = ETrue;
- break;
- case ESetVideoTimesIntervalWhenVideoPrepared:
- iAction = ENone;
- iVideoRecordingOn = EFalse;
- iCamAppEngine->PauseVideoRecording();
- break;
-
- default:
- iAction = ENone;
- iVideoRecordingOn = EFalse;
- iCamAppEngine->StopVideoRecording();
- break;
- }
-
- if ( iAction != ENone )
- {
- CTimer::After( iTimeout );
- }
- }
- else if ( iVideoRecordingPaused )
- {
- iAction = ENone;
- iVideoRecordingPaused = EFalse;
- iCamAppEngine->ResumeVideoRecording();
- }
- else if ( iVideoRecordingReady )
- {
- // Check here if the settings were taken into use.
- // (For settings with a get-method.)
- switch ( iSavedAction )
- {
- case ESetDigiZoomWhenVideoPrepared:
- case ESetDigiZoomWhenVideoRecording:
- {
- CCaeEngine::TZoomMode zoomMode = iCamAppEngine->ZoomMode();
- if ( zoomMode != CCaeEngine::EZoomModeDigital )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- TInt zoomValue = iCamAppEngine->ZoomValue();
- if ( zoomValue != iDigiZoomValue )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetBrightnessWhenVideoPrepared:
- case ESetBrightnessWhenVideoRecording:
- {
- TInt brightness = iCamAppEngine->Brightness();
- if ( brightness != iBrightness )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
-
- // Test poweroff case, brightness should be 0
- iCamAppEngine->PowerOff();
- brightness = iCamAppEngine->Brightness();
- if ( brightness != 0 )
- {
- User::Leave ( KErrArgument );
- }
- }
- break;
- case ESetContrastWhenVideoPrepared:
- case ESetContrastWhenVideoRecording:
- {
- TInt contrast = iCamAppEngine->Contrast();
- if ( contrast != iContrast )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetExposureModeWhenVideoPrepared:
- case ESetExposureModeWhenVideoRecording:
- {
- TInt exposuremode = iCamAppEngine->ExposureMode();
- if ( exposuremode != iExposureMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetEvCompensationWhenVideoPrepared:
- case ESetEvCompensationWhenVideoRecording:
- {
- TInt evCompensation = iCamAppEngine->EvCompensation();
- if ( evCompensation != iEvCompensation )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetWhiteBalanceModeWhenVideoPrepared:
- case ESetWhiteBalanceModeWhenVideoRecording:
- {
- TInt whitebalancemode = iCamAppEngine->WhiteBalanceMode();
- if ( whitebalancemode != iWhiteBalanceMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetFlashModeWhenVideoPrepared:
- case ESetFlashModeWhenVideoRecording:
- {
- TInt flashmode = iCamAppEngine->FlashMode();
- if ( flashmode != iFlashMode )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetClipMaxSizeWhenVideoNotPrepared:
- case ESetClipMaxSizeWhenVideoPrepared:
- {
- TInt clipmaxsize = iCamAppEngine->VideoClipMaxSize();
- if ( iVideoMaxClipSizeInBytes >= 0 )
- {
- if ( clipmaxsize != iVideoMaxClipSizeInBytes )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- else
- {
- if ( clipmaxsize != 0 )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- }
- break;
- case ESetAudioWhenVideoPrepared:
- {
- TBool audio = iCamAppEngine->VideoAudio();
- if ( audio != iVideoAudioEnabled )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- case ESetVideoTimesIntervalWhenVideoPrepared:
- {
- TTimeIntervalMicroSeconds timesinterval =
- iCamAppEngine->VideoTimesInterval();
- if ( timesinterval != iVideoTimesInterval )
- {
- User::Leave ( KErrGetNotEqualToValuePreviouslySet );
- }
- }
- break;
- default:
- break;
- }
-
- iAction = ENone;
- iVideoRecordingReady = EFalse;
- iStopViewFinder = ETrue;
- CTimer::After( KNormalTimingDelay );
-
- }
- else if ( !iStillCaptured && !iVideoRecorded &&
- !iVideoRecordingOn && !iStopViewFinder )
- {
- switch ( iAction )
- {
- case EStartVfPrepareCaptureStillStartAndStopVf:
- if ( !iStillPrepareReady )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->PrepareStillCaptureL()" ) );
- #endif
- iCamAppEngine->PrepareStillCaptureL( iStillQualityLevelIndex );
- }
- break;
- case EStartVfPrepareRecordVideoStartAndStopVf:
- if ( !iVideoPrepareReady )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->PrepareVideoRecordingL()" ) );
- #endif
- iCamAppEngine->PrepareVideoRecordingL( iVideoQualityLevelIndex );
- }
- break;
- case ESwitchPowerOffWhenVfRunning:
- iCamAppEngine->PowerOff();
- iStopViewFinder = ETrue;
- CTimer::After( KNormalTimingDelay );
- break;
- default:
- break;
- }
- }
- else if ( iStopViewFinder )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: calling iCamAppEngine->StopViewFinder()" ) );
- #endif
- iCamAppEngine->StopViewFinder();
- iViewFinderStarted = EFalse;
- iStop = ETrue;
- CTimer::After( KNormalTimingDelay );
- }
- else if ( iExtensionMode )
- {
- switch ( iAction )
- {
- case EProcessExtViewFinderFrameReady:
- if ( !iBitmapSendDone && iBitmapSave )
- {
- // send the original bitmap to ext handling
- // before sending the iBitmapSave bust be cleared because callback
- // writes the handled bitmap back there
- iBitmapSendDone = ETrue;
- CFbsBitmap* tempBitmap = iBitmapSave;
- iBitmapSave = NULL;
- iCamAppEngine->ProcessExtViewFinderFrameReadyL( *tempBitmap );
- // delete tempBitmap;
- delete tempBitmap;
- tempBitmap = NULL;
- }
- else if ( iBitmapSendDone )
- {
- // check that there is new handled bitmap
- if ( !iBitmapSave )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iBitmapSave not found after ProcessExtViewFinderFrameReadyL" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
- // all ok, set iAction to default to stop new VF frame copy and delete
- // bitmap, return to normal mode and stop test case
- iAction = EDefault;
- delete iBitmapSave;
- iBitmapSave = NULL;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
- }
-
- CTimer::After( KLongTimingDelay );
- break;
-
- case EProcessExtSnapImage:
- if ( !iBitmapSendDone && iBitmapSave )
- {
- // send the original snap bitmap to ext handling
- // before sending the iBitmapSave bust be cleared because callback
- // writes the handled bitmap back there
- iBitmapSendDone = ETrue;
- CFbsBitmap* tempBitmap = iBitmapSave;
- iBitmapSave = NULL;
- iCamAppEngine->ProcessExtSnapImageL( *tempBitmap );
- // delete tempBitmap;
- delete tempBitmap;
- tempBitmap = NULL;
- }
- else if ( iBitmapSendDone )
- {
- // check that there is new handled bitmap
- if ( !iBitmapSave )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iBitmapSave not found after EProcessExtSnapImage" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
- // all ok, set iAction to default to stop new VF frame copy and delete
- // bitmap, return to normal mode and stop test case
- iAction = EDefault;
- delete iBitmapSave;
- iBitmapSave = NULL;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
- CTimer::After( KLongTimingDelay );
- }
- break;
-
- case EProcessExtCapturedImage:
- case EProcessExtCapturedImageTDesC8:
- case EProcessExtCapturedImageCFbsBitmap:
- case EProcessExtCapturedImageNoInit:
- if ( !iBitmapSendDone && iDataSave )
- {
- // send the original image to ext handling
- // before sending the iDataSave must be cleared because callback
- // writes the handled bitmap back there
- // Note that iBitmapSendDone flag is used even though this there is no bitmap involved
- iBitmapSendDone = ETrue;
- HBufC8* tempData = iDataSave;
- CleanupStack::PushL( tempData );
- iDataSave = NULL;
- if ( iAction == EProcessExtCapturedImage || iAction == EProcessExtCapturedImageNoInit)
- {
- // Test interface with HBufC8, CAE takes ownership of data
- iCamAppEngine->ProcessExtCapturedImageL( tempData, EFalse );
- }
- else if ( iAction == EProcessExtCapturedImageTDesC8 )
- {
- // Test interface with TDesC8
- // Create new pointer
- TDesC8* tempDataDes = tempData;
- tempData = NULL;
- iCamAppEngine->ProcessExtCapturedImageL( *tempDataDes, EFalse );
- delete tempDataDes; // CAE makes own copy of this type
- tempDataDes = NULL;
- }
- else if ( iAction == EProcessExtCapturedImageCFbsBitmap )
- {
- // Test interface with CFbsBitmap
- // Create new pointer
-
- CFbsBitmap* tempBitmap = iBitmapSave;
- CleanupStack::PushL( tempBitmap );
- iBitmapSave = NULL;
- delete tempData; // not used in this test case
- tempData = NULL;
- // CAE makes own copy of bitmap data (duplicate)
- iCamAppEngine->ProcessExtCapturedImageL( *tempBitmap, EFalse );
- CleanupStack::PopAndDestroy( tempBitmap );
- }
- CleanupStack::Pop( /*tempData*/ );
- }
- else if ( iBitmapSendDone )
- {
- // check that there is new handled image
- if ( !iDataSave )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iDataSave not found after EProcessExtCapturedImage" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
- // all ok, set iAction to default to stop new VF frame copy and delete
- // image data, return to normal mode and stop test case
- iAction = EDefault;
- delete iDataSave;
- iDataSave = NULL;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
- CTimer::After( KLongTimingDelay );
- }
- break;
-
- case EProcessExtCancel:
- iCamAppEngine->ProcessExtCancel();
- iAction = EDefault;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
- CTimer::After( KLongTimingDelay );
- break;
- case EProcessExtCancel2:
-
- if ( iDataSave )
- {
- // send the original image to ext handling
- iBitmapSendDone = ETrue;
- HBufC8* tempData = iDataSave;
- iDataSave = NULL;
- // Test interface with TDesC8
- TDesC8* tempDataDes = tempData;
- tempData = NULL;
- iCamAppEngine->ProcessExtCapturedImageL( *tempDataDes, EFalse );
- delete tempDataDes; // CAE makes own copy of this type
- tempDataDes = NULL;
- }
- else
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iDataSave not found after EProcessExtCancel2" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
-
- // Cancel image processing
- iCamAppEngine->ProcessExtCancel();
-
- // return back to normal mode
- iAction = EDefault;
- delete iDataSave;
- iDataSave = NULL;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
-
- // start timer as all activities are stopped
- CTimer::After( KNormalTimingDelay );
- break;
-
- case EProcessExtCapturedImageBurst:
- case EProcessExtCapturedImageBurstTDesC8:
- if ( !iBitmapSendDone && iDataSave && iBitmapSave )
- {
- // send the original snap bitmap and image to ext handling
- // before sending the iBitmapSave and iDataSave must be cleared because callback
- // writes the handled bitmap back there
-
- iBitmapSendDone = ETrue;
- CFbsBitmap* tempBitmap = iBitmapSave;
- iBitmapSave = NULL;
- HBufC8* tempData = iDataSave;
- iDataSave = NULL;
-
- // Change CAE state to burst mode
- iImageCountToCapture = iCamAppEngine->SetStillCaptureImageCountL( iStillBurstLength );
- iCountSnapImageReady = 0; // Reset image counters
- iCountStillImageReady = 0;
-
- // Send all burst snapimages and main images at once
-
- for ( TInt i=0; i < iStillBurstLength; i++ )
- {
- // Send bitmap
- iCamAppEngine->ProcessExtSnapImageL( *tempBitmap );
-
- // Copy main image
- HBufC8* msg = HBufC8::NewL( tempData->Size());
- *msg = *tempData;
-
- // Send main image copy
- if ( iAction == EProcessExtCapturedImageBurst )
- {
- // Test interface with HBufC8
- iCamAppEngine->ProcessExtCapturedImageL( msg, i >= (iStillBurstLength - 1) );
- }
- else
- {
- // Test interface with TDesC8
- // Create new pointer
- TDesC8* tempDataDes = msg;
- msg = NULL;
- iCamAppEngine->ProcessExtCapturedImageL( *tempDataDes, i >= (iStillBurstLength - 1) );
- delete tempDataDes; // CAE makes own copy of this type
- tempDataDes = NULL;
- }
- }
-
- delete tempBitmap;
- tempBitmap = NULL;
- delete tempData;
- tempData = NULL;
- }
- else if ( iBitmapSendDone )
- {
- // check that there is at least one new handled image (snap + main)
- //
- if ( !iBitmapSave )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iBitmapSave not found after EProcessExtCapturedImageBurst" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
- if ( !iDataSave )
- {
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient: iDataSave not found after EProcessExtCapturedImageBurst" ) );
- #endif
- User::Leave ( KErrNotFound );
- }
- // all ok, set iAction to default to stop new VF frame copy and delete
- // image data, return to normal mode and stop test case
- iAction = EDefault;
- delete iBitmapSave;
- iBitmapSave = NULL;
- delete iDataSave;
- iDataSave = NULL;
- iCamAppEngine->SetCaeExtensionModeL( EFalse, ETrue );
- iExtensionMode = EFalse;
- iBitmapSendDone = EFalse;
- iStop = ETrue;
- CTimer::After( KLongTimingDelay );
- }
- break;
-
- default:
- break;
- }
-
- }
- #ifdef _DEBUG
- RDebug::Print( _L( "Cae: CCaeTestSettingsClient::RunTrappedL() returning" ) );
- #endif
- }
-
-