diff -r 000000000000 -r b8ed18f6c07b mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TSI_MMFACLNT.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/TSI_MMFACLNT.cpp Thu Oct 07 22:34:12 2010 +0100 @@ -0,0 +1,287 @@ + +// Copyright (c) 2002-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: +// This program is designed to test the MMF_ACLNT. +// +// + +/** + @file TSI_MMFACLNT.cpp +*/ +#include +#include +#include "TSI_MMFACLNT.h" +#include "TSI_MMFACLNT.inl" +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + +void CPlayerCallbackHandler::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/) + { + iMchObserver->MchoComplete(ID(),aError); + } + +void CPlayerCallbackHandler::MapcPlayComplete(TInt aError) + { + iMchObserver->MchoComplete(ID(),aError); + } + +void CStateCallbackHandler::MoscoStateChangeEvent(CBase* /*aObject*/, TInt /*aPreviousState*/, TInt /*aCurrentState*/, TInt aErrorCode) + { + iMchObserver->MchoComplete(ID(),aErrorCode); + } + +void CToneCallbackHandler::MatoPrepareComplete(TInt aError) + { + iMchObserver->MchoComplete(ID(),aError); + } + +void CToneCallbackHandler::MatoPlayComplete(TInt aError) + { + iMchObserver->MchoComplete(ID(),aError); + } + +/** + * Timeout function + */ +void CTestMmfAclntStep::WaitWithTimeout(TRequestStatus& aStatus, TInt aNumberOfMicroSeconds) + { + TRequestStatus timerStatus; + RTimer timer ; + timer.CreateLocal() ; + timer.After(timerStatus,aNumberOfMicroSeconds); + + User::WaitForRequest(aStatus, timerStatus); + if (timerStatus == KRequestPending) + { + timer.Cancel(); + User::WaitForRequest(timerStatus); + } + else + { + INFO_PRINTF1(_L("Time is over!!!")) ; + } + timer.Close() ; + } + +/** + * Time comparison utility function + * + * @param "const TUint aActual" + * The actual timer value produced + * @param "const TUint aExpected" + * Expected timer value + * @param "const TUint aDeviation" + * Allowed deviation of the expected value + * from the actual value. + * @return "TBool" + * Did actual timed value fall within deviation limits + */ +TBool CTestMmfAclntStep::TimeComparison(const TUint aActual, const TUint aExpected, const TUint aDeviation) + { + // save unnessary conditions + if(aActual == aExpected) + return ETrue; + + // Prevent unsigned wrapping errors + TUint difference; + if(aActual > aExpected) + difference = aActual - aExpected; + else + difference = aExpected - aActual; + + // comapare + if(difference < aDeviation) + return ETrue; + return EFalse; + } + +/** + * Test Preample routines. + * + * Creates our own Active Scheduler. + * + * @return "TVerdict" + * Did Preamble complete. + */ +TVerdict CTestMmfAclntStep::DoTestStepPreambleL() + { + + iActiveScheduler = new(ELeave) CActiveScheduler; + CActiveScheduler::Install(iActiveScheduler); + + + return EPass; + } + +/** + * Test Postamble routines. + * + * Destroys our Active Scheduler. + * + * @return "TVerdict" + * Did Postamble complete. + */ +TVerdict CTestMmfAclntStep::DoTestStepPostambleL() + { + delete iActiveScheduler; + iActiveScheduler = NULL; + + return EPass; + } + +/** + * CTestMMFACLNTStep Implementation + * + * @parameter "const CTestSuite* aTestSuite" + * Sets test suite pointer + */ +void CTestMmfAclntStep::SetTestSuite(const CTestSuite* aTestSuite ) + { + iTestSuite = aTestSuite; + } + +/** + * CTestMMFACLNTStep Implementation + */ +CTestMmfAclntStep::CTestMmfAclntStep() + :iActiveScheduler( NULL ) + {} + +//------------------------------------------------------ + +/** + * Deconstructors destroys iFormat and iCodec + * + */ +TVerdict CTestMmfAclntCodecTest::DoTestStepPostambleL() + { + if(iFormat != NULL) + { + delete iFormat; + iFormat = NULL; + } + if(iCodec != NULL) + { + delete iCodec; + iCodec = NULL; + } + return CTestMmfAclntStep::DoTestStepPostambleL(); + } + +/** + * Setup codec and format to test + * + * @parameter "const TTestFormat aFormat" + * enum of format to use + */ +void CTestMmfAclntCodecTest::SetupFormatL(const TTestFormat aFormat) + { + if(iFormat) + delete iFormat; + if(iCodec) + delete iCodec; + iFormat = NULL; + iCodec = NULL; + + switch(aFormat) + { + case EPcm16Wav: + iFormat = new (ELeave) TMdaWavClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaPcmWavCodec; + CleanupStack::PushL(iCodec); + break; + case EMulawRaw: + iFormat = new (ELeave) TMdaRawAudioClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaAlawRawAudioCodec; + CleanupStack::PushL(iCodec); + break; + case E16BitAu: + iFormat = new (ELeave) TMdaAuClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaAuCodec; + CleanupStack::PushL(iCodec); + break; + case EAlawAu: + iFormat = new (ELeave) TMdaAuClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaAlawAuCodec; + CleanupStack::PushL(iCodec); + break; + case EPcm16Au: + iFormat = new (ELeave) TMdaAuClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaPcm16BitAuCodec; + CleanupStack::PushL(iCodec); + break; + case EImaAdpcmWav: + iFormat = new (ELeave) TMdaWavClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaImaAdpcmWavCodec; + CleanupStack::PushL(iCodec); + break; + case EAlawWav: + iFormat = new (ELeave) TMdaWavClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaAlawWavCodec; + CleanupStack::PushL(iCodec); + break; + case EPcmU16: + iFormat = new (ELeave) TMdaRawAudioClipFormat(); + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaUB16RawAudioCodec(); + CleanupStack::PushL(iCodec); + break; + case EPcmU8: + iFormat = new (ELeave) TMdaRawAudioClipFormat(); + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaU8PcmRawAudioCodec(); + CleanupStack::PushL(iCodec); + break; + case EImasPcmWav: + iFormat = new (ELeave) TMdaWavClipFormat(); + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaImaAdpcmWavCodec(); + CleanupStack::PushL(iCodec); + break; + case EPcm8: + iFormat = new (ELeave) TMdaWavClipFormat(); + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaPcmWavCodec(TMdaPcmWavCodec::E8BitPcm); + CleanupStack::PushL(iCodec); + break; + case EGsmWav: + iFormat = new (ELeave) TMdaWavClipFormat; + CleanupStack::PushL(iFormat); + iCodec = new (ELeave) TMdaGsmWavCodec; + CleanupStack::PushL(iCodec); + break; + case EEpocWve: + case ENone: + default: + // will create an inconlusive result as preamble leaves. + iFormat = NULL; + iCodec = NULL; + break; + } + + if((iFormat != NULL) && (iCodec != NULL)) + { + CleanupStack::Pop(); // iFormat + CleanupStack::Pop(); // iCodec + } + } +