sl@0: // Copyright (c) 2004-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 "TestRecord.h" sl@0: #include "OpenFileByHandle1512.h" sl@0: sl@0: #include sl@0: sl@0: /** sl@0: * Constructor sl@0: */ sl@0: CTestMmfVclntOpenFile1512::CTestMmfVclntOpenFile1512(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aRec) sl@0: :iRec (aRec) sl@0: { sl@0: // store the name of this test case sl@0: // this is the name that is used by the script file sl@0: // Each test step initialises it's own name sl@0: iTestStepName = aTestName; sl@0: iSectName = aSectName; sl@0: iKeyName = aKeyName; sl@0: } sl@0: sl@0: CTestMmfVclntOpenFile1512* CTestMmfVclntOpenFile1512::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aRec) sl@0: { sl@0: CTestMmfVclntOpenFile1512* self = new (ELeave) CTestMmfVclntOpenFile1512(aTestName,aSectName,aKeyName,aRec); sl@0: return self; sl@0: } sl@0: sl@0: CTestMmfVclntOpenFile1512* CTestMmfVclntOpenFile1512::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aRec) sl@0: { sl@0: CTestMmfVclntOpenFile1512* self = CTestMmfVclntOpenFile1512::NewL(aTestName,aSectName,aKeyName,aRec); sl@0: CleanupStack::PushL(self); sl@0: return self; sl@0: } sl@0: sl@0: void CTestMmfVclntOpenFile1512::MvruoOpenComplete(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF1(_L("Open complete callback")); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: sl@0: void CTestMmfVclntOpenFile1512::MvruoRecordComplete(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF1(_L("Record complete callback")); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: sl@0: void CTestMmfVclntOpenFile1512::MvruoPrepareComplete(TInt aError) sl@0: { sl@0: iError = aError; sl@0: INFO_PRINTF1(_L("Prepare complete callback")); sl@0: CActiveScheduler::Stop(); sl@0: } sl@0: sl@0: void CTestMmfVclntOpenFile1512::MvruoEvent(const TMMFEvent& /*aEvent*/) sl@0: { sl@0: } sl@0: sl@0: /** sl@0: * Load and initialise an audio file. sl@0: */ sl@0: TVerdict CTestMmfVclntOpenFile1512::DoTestStepL() sl@0: { sl@0: return( PerformTestStepL() ); sl@0: } sl@0: sl@0: TVerdict CTestMmfVclntOpenFile1512::PerformTestStepL() sl@0: { sl@0: TVerdict ret = EFail; sl@0: sl@0: INFO_PRINTF1(_L("Test : Video Recorder - OpenFileL(RFile&)")); sl@0: sl@0: RFs fs; sl@0: RFile file; sl@0: sl@0: User::LeaveIfError(fs.Connect()); sl@0: CleanupClosePushL(fs); sl@0: User::LeaveIfError(fs.ShareProtected()); sl@0: sl@0: iError = KErrTimedOut; sl@0: sl@0: TPtrC filename; sl@0: if(!GetStringFromConfig(iSectName,iKeyName,filename)) sl@0: { sl@0: return EInconclusive; sl@0: } sl@0: sl@0: User::LeaveIfError(file.Replace(fs,filename,EFileWrite)); sl@0: CleanupClosePushL(file); sl@0: sl@0: CVideoRecorderUtility* rec = CVideoRecorderUtility::NewL(*this); sl@0: CleanupStack::PushL(rec); sl@0: TFourCC invalidDataType(0xAA, 0xAA, 0xAA, 0xAA); sl@0: sl@0: const TUid KVidTstControllerUid = {KMmfVideoTestControllerUid}; sl@0: TRAP(iError,rec->OpenFileL(file, sl@0: NULL, sl@0: KVidTstControllerUid, sl@0: KUidMdaBmpClipFormat, sl@0: KNullDesC8, sl@0: invalidDataType)); sl@0: sl@0: if(iError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CVideoRecorderUtility: Open file")); sl@0: // Wait for initialisation callback sl@0: CActiveScheduler::Start(); sl@0: } sl@0: sl@0: if(iError == KErrNotSupported) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: sl@0: // Check for errors. sl@0: if ((iError == KErrNone) && (rec != NULL)) sl@0: { sl@0: rec->Prepare(); sl@0: CActiveScheduler::Start(); sl@0: if(iError != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Prepare callback : error %d"), iError); sl@0: ret = EInconclusive; sl@0: } sl@0: sl@0: if(iRec) sl@0: { sl@0: iError = KErrTimedOut; sl@0: rec->Record(); sl@0: INFO_PRINTF1(_L("CVideoRecorderUtility: Record")); sl@0: // Wait for init callback sl@0: CActiveScheduler::Start(); sl@0: if(iError == KErrNone) sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ret = EPass; sl@0: } sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("CVideoRecorderUtility: Destroy")); sl@0: User::After(KOneSecond); // wait for deletion to shut down devsound sl@0: if(iError != KErrNone) sl@0: { sl@0: ERR_PRINTF2( _L("CVideoRecorderUtility failed with error %d"),iError ); sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(3, &fs); sl@0: sl@0: return ret; sl@0: }