sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include sl@0: #include sl@0: #include "ECamEnhanceFuncTest.h" sl@0: #include "ECamUnitTestPluginUids.hrh" sl@0: #include "ECamUnitTestPlugin.h" sl@0: #include sl@0: #include sl@0: sl@0: /*------------------------------------------------------ sl@0: Histogram : RECamHistTest sl@0: *------------------------------------------------------*/ sl@0: RECamHistTest* RECamHistTest::NewL(const TDesC& aTestStep) sl@0: { sl@0: RECamHistTest* self = new (ELeave) RECamHistTest(aTestStep); sl@0: return self; sl@0: } sl@0: sl@0: RECamHistTest::RECamHistTest(const TDesC& aTestStep) sl@0: { sl@0: iTestStepName.Copy(aTestStep); sl@0: } sl@0: sl@0: TVerdict RECamHistTest::DoTestStepL() sl@0: { sl@0: if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-020-HP"))) sl@0: { sl@0: return DoTestStep_20L(); sl@0: } sl@0: else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-021-HP"))) sl@0: { sl@0: return DoTestStep_21L(); sl@0: } sl@0: else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-022-HP"))) sl@0: { sl@0: return DoTestStep_22L(); sl@0: } sl@0: return EInconclusive; sl@0: } sl@0: sl@0: TVerdict RECamHistTest::DoTestStep_20L() sl@0: { sl@0: TVerdict verdict = EFail; sl@0: INFO_PRINTF1(_L("Alloc test")); sl@0: TInt i; sl@0: TInt err; sl@0: for (i = 1 ; ; i++) sl@0: { sl@0: __MM_HEAP_MARK; sl@0: sl@0: if (i % 5 == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Fail count = %d"), i); sl@0: } sl@0: sl@0: __UHEAP_SETFAIL(RHeap::EFailNext, i); sl@0: sl@0: TRAP(err, verdict = DoHistTestStepL()); sl@0: sl@0: TAny* testAlloc = User::Alloc(1); sl@0: TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone); sl@0: User::Free(testAlloc); sl@0: sl@0: __UHEAP_RESET; sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: if ((err != KErrNoMemory ) || heapTestingComplete) sl@0: { sl@0: INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i); sl@0: INFO_PRINTF1(_L("Alloc testing completed successfully")); sl@0: verdict = EPass; sl@0: break; sl@0: } sl@0: } sl@0: return verdict; sl@0: } sl@0: sl@0: TVerdict RECamHistTest::DoHistTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraHistogram* hist = NULL; sl@0: sl@0: // using observer 2 sl@0: MCameraObserver2* observer2 = NULL; sl@0: sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: hist = static_cast (camera->CustomInterface(KECamHistogramUid)); sl@0: if (hist!= NULL) sl@0: { sl@0: CleanupStack::PushL(hist); sl@0: INFO_PRINTF1(_L("CCameraHistogram object was created")); sl@0: CleanupStack::PopAndDestroy(hist); sl@0: } sl@0: else sl@0: { sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: // create a Hist object using New2L sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(hist); sl@0: INFO_PRINTF1(_L("CCameraHistogram object was created using NewL")); sl@0: CleanupStack::PopAndDestroy(hist); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL")); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: TVerdict RECamHistTest::DoTestStep_21L() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraHistogram* hist = NULL; sl@0: sl@0: // create a Hist object using New2L sl@0: __MM_HEAP_MARK; sl@0: MCameraObserver2* observer2 = NULL; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL")); sl@0: return EFail; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (hist!= NULL) sl@0: { sl@0: CleanupStack::PushL(hist); sl@0: sl@0: // get the supported set of values sl@0: TUint32 suppformats = hist->SupportedHistograms(); sl@0: sl@0: // the array should not be empty sl@0: if (suppformats == 0) sl@0: { sl@0: result = EFail; sl@0: } sl@0: // Preapare DSA Based Histogram sl@0: TUint histhandle = 0; sl@0: TPoint orgPos(5,5); sl@0: TSize orgSize(90,50); sl@0: TRgb orgColor(100,100,100); sl@0: sl@0: TRAP(error, histhandle = hist->PrepareDSAHistogramL(CCamera::CCameraHistogram::ELuminance, orgPos, orgSize, orgColor)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("DSA Histogram Created")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("DSA Histogram Created- %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: // set new value sl@0: TPoint curPos; sl@0: TSize curSize; sl@0: TRgb curColor; sl@0: TRAP(error, hist->GetDSAHistogramPropertiesL(histhandle, curPos, curSize, curColor)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Histogram Properties")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Histogram Properties- %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: if(curPos != orgPos || curSize != orgSize || curColor != orgColor) sl@0: { sl@0: INFO_PRINTF1(_L("Properties dont match")); sl@0: return EFail; sl@0: } sl@0: sl@0: // new values for properties sl@0: orgPos = TPoint(10,10); sl@0: orgSize = TSize(80,40); sl@0: orgColor = TRgb(90,90,90); sl@0: sl@0: // Lets try update sl@0: TRAP(error, hist->UpdateDSAHistogramPropertiesL(histhandle, orgPos, orgSize, orgColor)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Update Histogram Proporties Successfull")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Update Histogram Proporties- %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: // Get and verify with new values sl@0: TRAP(error, hist->GetDSAHistogramPropertiesL(histhandle, curPos, curSize, curColor)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Histogram Properties Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Histogram Properties- %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: if(curPos != orgPos || curSize != orgSize || curColor != orgColor) sl@0: { sl@0: INFO_PRINTF1(_L("Properties dont match")); sl@0: return EFail; sl@0: } sl@0: sl@0: sl@0: TRAP(error, hist->DestroyHistogramL(histhandle)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Destroy Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Destroy Histogram - %d"), error); sl@0: return EFail; sl@0: } sl@0: CleanupStack::PopAndDestroy(hist); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: // Test step MM-ECM-ADV-U-022-HP sl@0: TVerdict RECamHistTest::DoTestStep_22L() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraHistogram* hist = NULL; sl@0: sl@0: // create a Hist object using NewL sl@0: __MM_HEAP_MARK; sl@0: MCameraObserver2* observer2 = NULL; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL")); sl@0: return EFail; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (hist!= NULL) sl@0: { sl@0: CleanupStack::PushL(hist); sl@0: sl@0: // get the supported set of values sl@0: TUint32 suppformats = hist->SupportedHistograms(); sl@0: sl@0: // the array should not be empty sl@0: if (suppformats == 0) sl@0: { sl@0: result = EFail; sl@0: } sl@0: // Preapare Non-DSA Based Histogram sl@0: TUint histhandle = 0; sl@0: TPoint orgPos(5,5); sl@0: TSize orgSize(90,50); sl@0: TRgb orgColor(100,100,100); sl@0: sl@0: TRAP(error, histhandle = hist->PrepareHistogramL(CCamera::CCameraHistogram::ELuminance)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Non-DSA Histogram Created Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Non-DSA Histogram Created- %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: sl@0: hist->StartHistogramL(histhandle); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Start Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Start Histogram - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: // Get a list of active histograms : This has not been implemented and so the count will be 0 sl@0: RArray activeHistograms; sl@0: TRAP(error, hist->GetActiveHistogramsL(activeHistograms)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Histogram - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, hist->StopHistogramL(histhandle)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Histogram - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, hist->DestroyHistogramL(histhandle)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Destroy Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Destroy Histogram - %d"), error); sl@0: return EFail; sl@0: } sl@0: CleanupStack::PopAndDestroy(hist); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: // sl@0: // RECamHistogramNotificationTest sl@0: // sl@0: RECamHistogramNotificationTest* RECamHistogramNotificationTest::NewL(TBool aAllocTest) sl@0: { sl@0: RECamHistogramNotificationTest* self = new (ELeave) RECamHistogramNotificationTest(aAllocTest); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: void RECamHistogramNotificationTest::ConstructL() sl@0: { sl@0: iOriginalSet.Reset(); sl@0: iResultSet.Reset(); sl@0: sl@0: } sl@0: RECamHistogramNotificationTest::RECamHistogramNotificationTest(TBool /*aAllocTest*/) sl@0: { sl@0: iTestStepName = _L("MM-ECM-ADV-U-023-HP"); sl@0: } sl@0: sl@0: TVerdict RECamHistogramNotificationTest::DoTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraHistogram* hist = NULL; sl@0: sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*this,0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: sl@0: TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera)); sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL")); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (hist!= NULL) sl@0: { sl@0: CleanupStack::PushL(hist); sl@0: sl@0: // get the supported set of values sl@0: TUint32 suppformats = hist->SupportedHistograms(); sl@0: sl@0: // the array should not be empty sl@0: if (suppformats == 0) sl@0: { sl@0: result = EFail; sl@0: } sl@0: TUint histhandle = 0; sl@0: TRAP(error, histhandle = hist->PrepareHistogramL(CCamera::CCameraHistogram::ELuminance)); sl@0: sl@0: // set new value sl@0: iInputEventUid.iUid = KUidECamEventHistogramUidValue; sl@0: sl@0: hist->StartHistogramL(histhandle); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Start Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Start Histogram - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CheckNotification(iInputEventUid, result); sl@0: sl@0: // Ignore the Data - check the function sl@0: TRAP(error, hist->HistogramDataL()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Histogram DataL Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Histogram DataL - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Overload of HistogramDataL sl@0: TRAP(error, hist->HistogramDataL(histhandle)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Histogram DataL Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Histogram DataL - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, hist->StopHistogramL(histhandle)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Histogram - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, hist->DestroyHistogramL(histhandle)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Destroy Histogram Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Destroy Histogram - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(hist); sl@0: } sl@0: else sl@0: { sl@0: result = EFail; sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: /*------------------------------------------------------ sl@0: Overlay : RECamOvrlayTest sl@0: *------------------------------------------------------*/ sl@0: sl@0: RECamOvrlayTest* RECamOvrlayTest::NewL(const TDesC& aTestStep) sl@0: { sl@0: RECamOvrlayTest* self = new (ELeave) RECamOvrlayTest(aTestStep); sl@0: return self; sl@0: } sl@0: sl@0: RECamOvrlayTest::RECamOvrlayTest(const TDesC& aTestStep) sl@0: { sl@0: iTestStepName.Copy(aTestStep); sl@0: } sl@0: sl@0: TVerdict RECamOvrlayTest::DoTestStepL() sl@0: { sl@0: if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-030-HP"))) sl@0: { sl@0: return DoTestStep_30L(); sl@0: } sl@0: else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-031-HP"))) sl@0: { sl@0: return DoTestStep_31L(); sl@0: } sl@0: return EFail; sl@0: } sl@0: sl@0: TVerdict RECamOvrlayTest::DoTestStep_30L() sl@0: { sl@0: TVerdict verdict = EFail; sl@0: INFO_PRINTF1(_L("Alloc test")); sl@0: TInt i; sl@0: TInt err; sl@0: for (i = 1 ; ; i++) sl@0: { sl@0: __MM_HEAP_MARK; sl@0: sl@0: if (i % 5 == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Fail count = %d"), i); sl@0: } sl@0: sl@0: __UHEAP_SETFAIL(RHeap::EFailNext, i); sl@0: sl@0: TRAP(err, verdict = DoOverlayTestStepL()); sl@0: sl@0: TAny* testAlloc = User::Alloc(1); sl@0: TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone); sl@0: User::Free(testAlloc); sl@0: sl@0: __UHEAP_RESET; sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: if ((err != KErrNoMemory ) || heapTestingComplete) sl@0: { sl@0: INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i); sl@0: INFO_PRINTF1(_L("Alloc testing completed successfully")); sl@0: verdict = EPass; sl@0: break; sl@0: } sl@0: } sl@0: return verdict; sl@0: } sl@0: sl@0: TVerdict RECamOvrlayTest::DoOverlayTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraOverlay* ovrlay = NULL; sl@0: sl@0: // using observer 2 sl@0: MCameraObserver2* observer2 = NULL; sl@0: sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: ovrlay = static_cast (camera->CustomInterface(KECamOverlayUid)); sl@0: if (ovrlay!= NULL) sl@0: { sl@0: CleanupStack::PushL(ovrlay); sl@0: INFO_PRINTF1(_L("CCameraOverlay object was created")); sl@0: CleanupStack::PopAndDestroy(ovrlay); sl@0: } sl@0: else sl@0: { sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: // create overlay object using NewL sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(ovrlay); sl@0: INFO_PRINTF1(_L("CCameraOverlay object was created using NewL")); sl@0: sl@0: CleanupStack::PopAndDestroy(ovrlay); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraOverlay object was not created using NewL")); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: TVerdict RECamOvrlayTest::DoTestStep_31L() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraOverlay* ovrlay = NULL; sl@0: sl@0: // create a Overlay object using NewL sl@0: MCameraObserver2* observer2 = NULL; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: __MM_HEAP_MARK; sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraOverlay object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("CCameraOverlay object was not created using NewL - %d"), error); sl@0: result = EFail; sl@0: } sl@0: CleanupStack::PushL(ovrlay); sl@0: sl@0: sl@0: CCamera::CCameraOverlay::TOverlayParameters parameters; sl@0: parameters.iCurrentModes = CCamera::CCameraOverlay::EModeStillImage; sl@0: parameters.iCurrentTypes = CCamera::CCameraOverlay::EPerPixel; sl@0: parameters.iAlphaValue= 0; sl@0: parameters.iPosition = TPoint(2,2); sl@0: parameters.iZOrder = 1; sl@0: sl@0: TInt err = RFbsSession::Connect(); sl@0: if (err != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("RFbsSession::Connect() failed, err = %d"), err); sl@0: return EInconclusive; sl@0: } sl@0: sl@0: CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; sl@0: CleanupStack::PushL(bitmap); sl@0: sl@0: TUint ovrhandle =0; sl@0: sl@0: TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap)); sl@0: sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Create overlay was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Create overlay - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->SetOverlayBitmapL(ovrhandle, bitmap)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Overlay Bitmap was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Overlay Bitmap - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CFbsBitmap* modBitmap = new (ELeave) CFbsBitmap; sl@0: User::LeaveIfError(modBitmap->Create(TSize(1000,1000),EGray256)); sl@0: CleanupStack::PushL(modBitmap); sl@0: TRAP(error, ovrlay->SetModifiableOverlayBitmapL(ovrhandle, modBitmap)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Modifiable Overlay Bitmap was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Modifiable Overlay Bitmap - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CFbsBitmap* getBitmap = new (ELeave) CFbsBitmap; sl@0: User::LeaveIfError(getBitmap->Create(TSize(1000,1000),EGray256)); sl@0: CleanupStack::PushL(getBitmap); sl@0: TRAP(error, ovrlay->GetOverlayBitmapL(ovrhandle, getBitmap)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Bitmap was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay Bitmap - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CCamera::CCameraOverlay::TOverlaySupportInfo SuppInfo; sl@0: TRAP(error, ovrlay->GetOverlaySupport(SuppInfo)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay support was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay support - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: RArray overlayHandles; sl@0: TRAP(error, ovrlay->GetAllOverlaysInZOrderL(overlayHandles)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get All Overlays in Z order was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get All Overlays in Z order - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->GetAllOverlaysInZOrderL(CCamera::CCameraOverlay::EModeStillImage,1,overlayHandles)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get 'Mode specific' All Overlays in Z order was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get 'Mode specific' All Overlays in Z order - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: sl@0: TRAP(error, ovrlay->SetAllOverlaysInZOrderL(overlayHandles)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set All Overlay in Z order was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set All Overlay in Z order- Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->SetAllOverlaysInZOrderL(CCamera::CCameraOverlay::EModeStillImage,1,overlayHandles)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set 'Mode specific' All Overlay in Z order was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set 'Mode specific' All Overlay in Z order- Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: overlayHandles.Close(); sl@0: sl@0: TRAP(error, ovrlay->ReleaseOverlay(ovrhandle)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Release Overlay was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Release Overlay - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(4, ovrlay); //bitmap, ovrlay sl@0: sl@0: TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera)); sl@0: CleanupStack::PushL(ovrlay); sl@0: bitmap = new (ELeave) CFbsBitmap; sl@0: CleanupStack::PushL(bitmap); sl@0: ovrhandle =0; sl@0: sl@0: TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap)); sl@0: TSize originalSize = bitmap->SizeInPixels(); sl@0: sl@0: INFO_PRINTF1(_L("Test size change through CFbsbitmap")); sl@0: TSize modifiedSize(640, 480); sl@0: CFbsBitmap* modifiedBitmap = new (ELeave) CFbsBitmap; sl@0: User::LeaveIfError(modifiedBitmap->Create(modifiedSize,EColor4K)); sl@0: CleanupStack::PushL(modifiedBitmap); sl@0: originalSize = modifiedBitmap->SizeInPixels(); sl@0: TRAP(error, ovrlay->SetModifiableOverlayBitmapL(ovrhandle,modifiedBitmap)); sl@0: sl@0: CFbsBitmap* retrievedBitmap = new (ELeave) CFbsBitmap; sl@0: User::LeaveIfError(retrievedBitmap->Create(TSize(1000,1000),EGray256)); sl@0: CleanupStack::PushL(retrievedBitmap); sl@0: TRAP(error, ovrlay->GetOverlayBitmapL(ovrhandle, retrievedBitmap)); sl@0: sl@0: TSize retrievedSize = retrievedBitmap->SizeInPixels(); sl@0: sl@0: if(originalSize != retrievedSize) sl@0: { sl@0: INFO_PRINTF2(_L("Modifying overlay size - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(4, ovrlay); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: RFbsSession::Disconnect(); sl@0: sl@0: CleanupStack::PopAndDestroy(camera); sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: // sl@0: __MM_HEAP_MARK; sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraOverlay object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("CCameraOverlay object was not created using NewL - %d"), error); sl@0: result = EFail; sl@0: } sl@0: CleanupStack::PushL(ovrlay); sl@0: sl@0: sl@0: CCamera::CCameraOverlay::TOverlayParameters parameters; sl@0: parameters.iCurrentModes = CCamera::CCameraOverlay::EModeStillImage; sl@0: parameters.iCurrentTypes = CCamera::CCameraOverlay::EPerPixel; sl@0: parameters.iAlphaValue= 0; sl@0: TSize size2(20,20); sl@0: parameters.iPosition = TPoint(2,2); sl@0: parameters.iZOrder = 1; sl@0: sl@0: CFbsBitmap* bitmap = new (ELeave) CFbsBitmap; sl@0: CleanupStack::PushL(bitmap); sl@0: sl@0: TUint ovrhandle =0; sl@0: sl@0: TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Create overlay was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Create overlay - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(parameters.iCurrentModes & CCamera::CCameraOverlay::EModeStillImageContinuous) sl@0: { sl@0: INFO_PRINTF1(_L("GetOverlayParametersL was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Parameters unexpected result")); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CCamera::CCameraOverlay::TOverlaySupportInfo SuppInfo; sl@0: TRAP(error, ovrlay->GetOverlaySupport(SuppInfo)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay support was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay support - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(SuppInfo.iSupportedModes & CCamera::CCameraOverlay::EModeStillImageContinuous) sl@0: { sl@0: INFO_PRINTF1(_L("GetOverlaySupport values were successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("GetOverlaySupport values unexpected result")); sl@0: result = EFail; sl@0: } sl@0: sl@0: //conditional coverage for SetOverlay Parameter sl@0: parameters.iCurrentModes = CCamera::CCameraOverlay::EModeViewfinder; sl@0: TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: parameters.iCurrentModes = CCamera::CCameraOverlay::EModeNone; sl@0: TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Parameters was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(parameters.iCurrentModes & CCamera::CCameraOverlay::EModeClientViewfinder) sl@0: { sl@0: INFO_PRINTF1(_L("GetOverlayParametersL was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Get Overlay Parameters unexpected result")); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, ovrlay->ReleaseOverlay(ovrhandle)); sl@0: if (error == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Release Overlay was successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Release Overlay - Error - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(2, ovrlay); //bitmap, ovrlay sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: __MM_HEAP_MARKEND; sl@0: // sl@0: sl@0: return result; sl@0: } sl@0: sl@0: /*------------------------------------------------------ sl@0: Snapshot : RECamSnapTest sl@0: *------------------------------------------------------*/ sl@0: sl@0: RECamSnapTest* RECamSnapTest::NewL(const TDesC& aTestStep) sl@0: { sl@0: RECamSnapTest* self = new (ELeave) RECamSnapTest(aTestStep); sl@0: return self; sl@0: } sl@0: sl@0: RECamSnapTest::RECamSnapTest(const TDesC& aTestStep) sl@0: { sl@0: iTestStepName.Copy(aTestStep); sl@0: } sl@0: sl@0: TVerdict RECamSnapTest::DoTestStepL() sl@0: { sl@0: if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-040-HP"))) sl@0: { sl@0: return DoTestStep_40L(); sl@0: } sl@0: else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-041-HP"))) sl@0: { sl@0: return DoTestStep_41L(); sl@0: } sl@0: else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-042-HP"))) sl@0: { sl@0: return DoTestStep_42L(); sl@0: } sl@0: return EFail; sl@0: } sl@0: sl@0: TVerdict RECamSnapTest::DoTestStep_40L() sl@0: { sl@0: TVerdict verdict = EFail; sl@0: INFO_PRINTF1(_L("Alloc test")); sl@0: TInt i; sl@0: TInt err; sl@0: for (i = 1 ; ; i++) sl@0: { sl@0: __MM_HEAP_MARK; sl@0: sl@0: if (i % 5 == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Fail count = %d"), i); sl@0: } sl@0: sl@0: __UHEAP_SETFAIL(RHeap::EFailNext, i); sl@0: sl@0: TRAP(err, verdict = DoSnapTestStepL()); sl@0: sl@0: TAny* testAlloc = User::Alloc(1); sl@0: TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone); sl@0: User::Free(testAlloc); sl@0: sl@0: __UHEAP_RESET; sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: if ((err != KErrNoMemory ) || heapTestingComplete) sl@0: { sl@0: INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i); sl@0: INFO_PRINTF1(_L("Alloc testing completed successfully")); sl@0: verdict = EPass; sl@0: break; sl@0: } sl@0: } sl@0: return verdict; sl@0: } sl@0: sl@0: TVerdict RECamSnapTest::DoSnapTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraSnapshot* snap = NULL; sl@0: sl@0: // using observer 2 sl@0: MCameraObserver2* observer2 = NULL; sl@0: sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: snap = static_cast (camera->CustomInterface(KECamSnapshotUid)); sl@0: if (snap!= NULL) sl@0: { sl@0: CleanupStack::PushL(snap); sl@0: INFO_PRINTF1(_L("CCameraSnaphot object was created")); sl@0: CleanupStack::PopAndDestroy(snap); sl@0: } sl@0: else sl@0: { sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: // create a Snapshot object using NewL sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(snap); sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL")); sl@0: CleanupStack::PopAndDestroy(snap); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL")); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: User::Leave(KErrNoMemory); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: TVerdict RECamSnapTest::DoTestStep_41L() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraSnapshot* snap = NULL; sl@0: sl@0: // create a snapshot object using NewL sl@0: __MM_HEAP_MARK; sl@0: MCameraObserver2* observer2 = NULL; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL")); sl@0: return EFail; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (snap!= NULL) sl@0: { sl@0: CleanupStack::PushL(snap); sl@0: sl@0: // get the supported formats sl@0: TUint32 suppformats = snap->SupportedFormats(); sl@0: sl@0: CCamera::TFormat format = CCamera::EFormatMonochrome; sl@0: TSize orgSize(90,50); sl@0: TRgb orgColor(100,100,100); sl@0: TBool AspectRatio = ETrue; sl@0: TPoint orgPos(2,2); sl@0: sl@0: TRAP(error, snap->PrepareSnapshotL(format, orgPos, orgSize, orgColor,AspectRatio)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot Creation Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: TBool isActive = EFalse; sl@0: TRAP(error, isActive = snap->IsSnapshotActive()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Is Snapshot Active Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(isActive) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot must not be active")); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Start Snapshot sl@0: TRAP(error, snap->StartSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Start Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, isActive = snap->IsSnapshotActive()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Is Snapshot Active Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(!isActive) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot must not be active")); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->StopSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: // Test new snapshot methods. They shall leave with KErrNotSupported sl@0: INFO_PRINTF1(_L("Check New Snapshot methods leave with KErrNotSupported")); sl@0: CCamera::CCameraSnapshot::TSnapshotParameters snapshotParameters; sl@0: TRAP(error, snap->PrepareSnapshotL(snapshotParameters)); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("PrepareSnapshotL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->GetSnapshotParametersL(snapshotParameters)); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("GetSnapshotParametersL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->SetSnapshotParametersL(snapshotParameters)); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("SetSnapshotParametersL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: CCamera::CCameraSnapshot::TSnapshotState snapshotState = CCamera::CCameraSnapshot::ESnapshotInactive; sl@0: TRAP(error, snap->GetSnapshotStatusL(snapshotState)); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("GetSnapshotStatusL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: CCamera::CCameraSnapshot::TSnapshotVideoFrames snapshotVideoFrames = CCamera::CCameraSnapshot::ESnapshotVideoFirstFrame; sl@0: TRAP(error, snap->SelectSnapshotVideoFramesL(snapshotVideoFrames)); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("SelectSnapshotVideoFramesL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->EnableSnapshotL()); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("EnableSnapshotL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->DisableSnapshotL()); sl@0: if(error != KErrNotSupported) sl@0: { sl@0: INFO_PRINTF1(_L("DisableSnapshotL unexpected result!")); sl@0: return EFail; sl@0: } sl@0: sl@0: sl@0: CleanupStack::PopAndDestroy(snap); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: TVerdict RECamSnapTest::DoTestStep_42L() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraSnapshot* snap = NULL; sl@0: sl@0: // create a Hist object using NewL sl@0: __MM_HEAP_MARK; sl@0: MCameraObserver2* observer2 = NULL; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL")); sl@0: return EFail; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (snap!= NULL) sl@0: { sl@0: CleanupStack::PushL(snap); sl@0: sl@0: // get the supported formats sl@0: TUint32 suppformats = snap->SupportedFormats(); sl@0: sl@0: CCamera::TFormat format = CCamera::EFormatMonochrome; sl@0: TSize orgSize(90,50); sl@0: TRgb orgColor(100,100,100); sl@0: TBool AspectRatio = ETrue; sl@0: TPoint orgPos(2,2); sl@0: sl@0: // Test the other overload of PrepareSnapshotL sl@0: TRAP(error, snap->PrepareSnapshotL(format, orgSize, AspectRatio)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot Creation Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Set Background color Snapshot sl@0: TRAP(error, snap->SetBgColorL(orgColor)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Background Color Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Background Color Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Set Position sl@0: TRAP(error, snap->SetPositionL(orgPos)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Set Snapshot Position Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Set Snapshot Position Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Start Snapshot sl@0: TRAP(error, snap->StartSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Start Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: // Is shapshot active sl@0: TBool isActive = EFalse; sl@0: TRAP(error, isActive = snap->IsSnapshotActive()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Is Snapshot Active Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: if(!isActive) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot must not be active")); sl@0: result = EFail; sl@0: } sl@0: sl@0: // Stop Snapshot sl@0: TRAP(error, snap->StopSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(snap); sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: // sl@0: // RECamSnapNotificationTest sl@0: // sl@0: RECamSnapNotificationTest* RECamSnapNotificationTest::NewL(TBool aAllocTest) sl@0: { sl@0: RECamSnapNotificationTest* self = new (ELeave) RECamSnapNotificationTest(aAllocTest); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: void RECamSnapNotificationTest::ConstructL() sl@0: { sl@0: iOriginalSet.Reset(); sl@0: iResultSet.Reset(); sl@0: sl@0: } sl@0: RECamSnapNotificationTest::RECamSnapNotificationTest(TBool /*aAllocTest*/) sl@0: { sl@0: iTestStepName = _L("MM-ECM-ADV-U-043-HP"); sl@0: } sl@0: sl@0: TVerdict RECamSnapNotificationTest::DoTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: sl@0: TInt error = KErrNone; sl@0: CCamera::CCameraSnapshot* snap = NULL; sl@0: sl@0: __MM_HEAP_MARK; sl@0: INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2")); sl@0: sl@0: TRAP(error, camera = CCamera::New2L(*this,0,0)); sl@0: sl@0: if (error==KErrNone) sl@0: { sl@0: CleanupStack::PushL(camera); sl@0: INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()")); sl@0: sl@0: TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera)); sl@0: if (error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL")); sl@0: result = EFail; sl@0: } sl@0: sl@0: if (snap!= NULL) sl@0: { sl@0: CleanupStack::PushL(snap); sl@0: sl@0: // get the supported set of values sl@0: TUint32 suppformats = snap->SupportedFormats(); sl@0: sl@0: CCamera::TFormat format = CCamera::EFormatMonochrome; sl@0: TSize orgSize(90,50); sl@0: TRgb orgColor(100,100,100); sl@0: TPoint orgPos(2,2); sl@0: TBool AspectRatio = ETrue; sl@0: sl@0: TRAP(error, snap->PrepareSnapshotL(format, orgPos, orgSize, orgColor,AspectRatio)); sl@0: sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot Creation Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: // set new value sl@0: iInputEventUid.iUid = KUidECamEventSnapshotUidValue; sl@0: sl@0: // Start Snapshot sl@0: TRAP(error, snap->StartSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Start Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: CheckNotification(iInputEventUid, result); sl@0: sl@0: RArray FrameIndexOrder; sl@0: sl@0: // Ignore the data sl@0: TRAP(error, snap->SnapshotDataL(FrameIndexOrder)); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot DataL Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Snapshot DataL Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: FrameIndexOrder.Close(); sl@0: sl@0: TBool isActive = EFalse; sl@0: sl@0: TRAP(error, isActive = snap->IsSnapshotActive()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Is Snapshot Active Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: if(!isActive) sl@0: { sl@0: INFO_PRINTF1(_L("Snapshot must not be active")); sl@0: result = EFail; sl@0: } sl@0: sl@0: TRAP(error, snap->StopSnapshot()); sl@0: if(error==KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Stop Snapshot Successful")); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error); sl@0: return EFail; sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(snap); sl@0: } sl@0: else sl@0: { sl@0: result = EFail; sl@0: } sl@0: CleanupStack::PopAndDestroy(camera); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error); sl@0: result = EFail; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: