sl@0: // Copyright (c) 2008-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 "char_a3f_devsound_tonetest.h" sl@0: sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0001 sl@0: */ sl@0: RA3FDevSoundToneSetConfigTest::RA3FDevSoundToneSetConfigTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iSampleRate(0), sl@0: iChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetConfigTest* RA3FDevSoundToneSetConfigTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetConfigTest * self = new(ELeave)RA3FDevSoundToneSetConfigTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KSampleRate, iSampleRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KChannel, iChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundToneSetConfigTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetConfigTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFCapabilities capabilitiesSet; sl@0: TBuf stringSampleRateSet; sl@0: TBuf stringChannelsSet; sl@0: TMMFSampleRate eSampleRate; sl@0: SampleRateFromTIntToTMMFSampleRate (iSampleRate, eSampleRate); sl@0: capabilitiesSet.iRate = eSampleRate; sl@0: capabilitiesSet.iChannels = iChannels; sl@0: SampleRateFromTUintToString (capabilitiesSet.iRate, stringSampleRateSet); sl@0: ChannelsFromTUintToString (capabilitiesSet.iChannels, stringChannelsSet); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetConfigL using sample rate = %S and channel mode =%S"), &stringSampleRateSet, &stringChannelsSet); sl@0: TRAPD(err, iMMFDevSound->SetConfigL(capabilitiesSet)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetConfigL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: TMMFCapabilities capabilitiesGet; sl@0: TBuf stringSampleRateGet; sl@0: TBuf stringChannelsGet; sl@0: capabilitiesGet=iMMFDevSound->Config(); sl@0: SampleRateFromTUintToString (capabilitiesGet.iRate, stringSampleRateGet); sl@0: ChannelsFromTUintToString (capabilitiesGet.iChannels, stringChannelsGet); sl@0: if (capabilitiesGet.iRate != capabilitiesSet.iRate && capabilitiesGet.iChannels != capabilitiesSet.iChannels) sl@0: { sl@0: ERR_PRINTF3(_L("Retrieved sample rate and channel %S %S"), &stringSampleRateGet, &stringChannelsGet); sl@0: ERR_PRINTF3(_L("Expected %S %S"), &stringSampleRateSet, &stringChannelsSet); sl@0: StopTest(aError, EFail); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("========== Test Case Successfully Completed ==========")); sl@0: StopTest(); sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0002 sl@0: */ sl@0: RA3FDevSoundToneSetPrioritySettingsTest::RA3FDevSoundToneSetPrioritySettingsTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iPriority(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetPrioritySettingsTest* RA3FDevSoundToneSetPrioritySettingsTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetPrioritySettingsTest * self = new(ELeave)RA3FDevSoundToneSetPrioritySettingsTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPrioritySettingsTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KPriority, iPriority)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPriority); sl@0: StopTest(KErrUnknown); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPrioritySettingsTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetPrioritySettingsTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFPrioritySettings priority; sl@0: priority.iPriority = iPriority; sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetPrioritySettings using a priority value = %d"), iPriority); sl@0: iMMFDevSound->SetPrioritySettings (priority); sl@0: INFO_PRINTF1(_L("========== Test Case Successfully Completed ==========")); sl@0: StopTest(); sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0003 sl@0: */ sl@0: RA3FDevSoundToneSetVolumeTest::RA3FDevSoundToneSetVolumeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iVolume(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetVolumeTest* RA3FDevSoundToneSetVolumeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetVolumeTest * self = new(ELeave)RA3FDevSoundToneSetVolumeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrUnknown); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetVolumeTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolume with volume value = %d"), iVolume); sl@0: iMMFDevSound->SetVolume(iVolume); sl@0: TInt volumeGet; sl@0: volumeGet=iMMFDevSound->Volume(); sl@0: if (volumeGet == iVolume) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetVolume succeeded with value = %d"), volumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetVolume failed with value = %d"), volumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0004 sl@0: */ sl@0: RA3FDevSoundToneVolumeRampTest::RA3FDevSoundToneVolumeRampTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iVolumeRamp(0), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneVolumeRampTest* RA3FDevSoundToneVolumeRampTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneVolumeRampTest * self = new(ELeave)RA3FDevSoundToneVolumeRampTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeRampTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolumeRamp, iVolumeRamp)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolumeRamp); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeRampTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneVolumeRampTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolumeRamp using volume ramp time = %d"), iVolumeRamp); sl@0: iMMFDevSound->SetVolumeRamp(iVolumeRamp); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeRampTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0005 sl@0: */ sl@0: RA3FDevSoundToneSetToneRepeatsTest::RA3FDevSoundToneSetToneRepeatsTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), sl@0: iFrequencyTone1(0), sl@0: iRepeatTrailingSilence(0), sl@0: iRepeatCount(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetToneRepeatsTest* RA3FDevSoundToneSetToneRepeatsTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetToneRepeatsTest * self = new(ELeave)RA3FDevSoundToneSetToneRepeatsTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepeatsTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatCount, iRepeatCount)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatCount); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatTrailingSilence, iRepeatTrailingSilence)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatTrailingSilence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepeatsTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetToneRepeatsTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetToneRepeats using repeatCount = %d and trailingSilence = %d"), iRepeatCount, iRepeatTrailingSilence); sl@0: iMMFDevSound->SetToneRepeats(iRepeatCount, iRepeatTrailingSilence); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepeatsTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt repeatTrailingSilenceToSecs = iRepeatTrailingSilence/KMicroSecsInOneSec; sl@0: TInt totalExpectedReproductionTime = (iRepeatCount * iDuration + iDuration + (repeatTrailingSilenceToSecs*iRepeatCount))*KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("Play tone repeats succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Play tone repeats did not work as planned.")); sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0006 sl@0: */ sl@0: RA3FDevSoundToneSetDTMFLengthsTest::RA3FDevSoundToneSetDTMFLengthsTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iToneOnLength(0), sl@0: iToneOffLength(0), iPauseLength(0), iDTMFPauses(0), sl@0: iDTMFTones(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetDTMFLengthsTest* RA3FDevSoundToneSetDTMFLengthsTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetDTMFLengthsTest * self = new(ELeave)RA3FDevSoundToneSetDTMFLengthsTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KToneOnLength, iToneOnLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOnLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KToneOffLength, iToneOffLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOffLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KPauseLength, iPauseLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPauseLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: for(TInt i =0 ; i< iDTMFString.Length() ; i++) sl@0: { sl@0: if (iDTMFString[i] == ',') sl@0: { sl@0: iDTMFPauses++; sl@0: } sl@0: else sl@0: { sl@0: iDTMFTones++; sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetDTMFLengthsTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TTimeIntervalMicroSeconds32 ToneOnLength(iToneOnLength); sl@0: TTimeIntervalMicroSeconds32 ToneOffLength(iToneOffLength); sl@0: TTimeIntervalMicroSeconds32 PauseLength(iPauseLength); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::SetDTMFLengths. ToneOnLength = %d, ToneOffLength = %d and PauseLength = %d"), ToneOnLength.Int(), ToneOffLength.Int(), PauseLength.Int()); sl@0: iMMFDevSound->SetDTMFLengths(ToneOnLength, ToneOffLength, PauseLength); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iToneOnLength*iDTMFTones + iToneOffLength * iDTMFTones + iDTMFPauses * iPauseLength; sl@0: if (iPlayToneTime.Int64() < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime.Int64() > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SetDTMFLengths succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Calling CMMFDevSound::SetDTMFLengths failed with %Ld"), iPlayToneTime.Int64()); sl@0: ERR_PRINTF2(_L("Expected time %d"), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0007 sl@0: */ sl@0: RA3FDevSoundToneSetVolumeWhilePlayingTest::RA3FDevSoundToneSetVolumeWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iVolume(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetVolumeWhilePlayingTest* RA3FDevSoundToneSetVolumeWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetVolumeWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetVolumeWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetVolumeWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using frequency = %d Hz and duration = %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolume with volume value = %d"), iVolume); sl@0: iMMFDevSound->SetVolume(iVolume); sl@0: TInt volumeGet; sl@0: volumeGet=iMMFDevSound->Volume(); sl@0: if (volumeGet == iVolume) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetVolume succeeded with value = %d"), volumeGet); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetVolume failed with value = %d"), volumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iVolume); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0008 sl@0: */ sl@0: RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::RA3FDevSoundToneSetPlayBalanceWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iVolume(0), iFrequencyTone1(0), iLSpeakerBalance(0), sl@0: iRSpeakerBalance(0) sl@0: sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetPlayBalanceWhilePlayingTest* RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetPlayBalanceWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetPlayBalanceWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KLSpeakerBalance, iLSpeakerBalance)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KLSpeakerBalance); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRSpeakerBalance, iRSpeakerBalance)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRSpeakerBalance); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetPlayBalanceWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using frequency = %d Hz and duration = %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetPlayBalanceL using left = %d right = %d"), iLSpeakerBalance, iRSpeakerBalance); sl@0: TRAPD(err, iMMFDevSound->SetPlayBalanceL(iLSpeakerBalance, iRSpeakerBalance)); sl@0: if (err == KErrNone) sl@0: { sl@0: TInt getBalanceL, getBalanceR; sl@0: TRAPD(err, iMMFDevSound->GetPlayBalanceL(getBalanceL, getBalanceR)); sl@0: if (err == KErrNone) sl@0: { sl@0: if(iLSpeakerBalance == getBalanceL && iRSpeakerBalance == getBalanceR) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetPlayBalanceL to set balance values succeeded, left = %d right = %d"), getBalanceL, getBalanceR); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Calling CMMFDevSound::SetPlayBalanceL to set balance values failed, left = %d right = %d"), getBalanceL, getBalanceR); sl@0: ERR_PRINTF3(_L("Expected balances values for right and left respectively %d, %d"),iLSpeakerBalance, iRSpeakerBalance); sl@0: StopTest(err,EFail); sl@0: } sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Error in setting left and right play balance.")); sl@0: StopTest (err, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPlayBalanceWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: * **======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0009 sl@0: */ sl@0: RA3FDevSoundToneSetVolumeWhilePausePlayingTest::RA3FDevSoundToneSetVolumeWhilePausePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iVolume(0), sl@0: iFrequencyTone1(0), sl@0: iTimeToEnterPauseElapsed(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetVolumeWhilePausePlayingTest* RA3FDevSoundToneSetVolumeWhilePausePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetVolumeWhilePausePlayingTest * self = new(ELeave)RA3FDevSoundToneSetVolumeWhilePausePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePausePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePausePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetVolumeWhilePausePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF3(_L("CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolume with volume value = %d"), iVolume); sl@0: iMMFDevSound->SetVolume(iVolume); sl@0: TInt volumeGet; sl@0: volumeGet=iMMFDevSound->Volume(); sl@0: if (volumeGet == iVolume) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetVolume succeeded with value = %d"), volumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetVolume failed with value = %d"), volumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePausePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if(!iTimeToEnterPauseElapsed) sl@0: { sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeWhilePausePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0010 sl@0: */ sl@0: RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest::RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iVolume(0), sl@0: iReinitialized(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest* RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest * self = new(ELeave)RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetVolumeThenInitializeToPlayAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if(!iReinitialized) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: iReinitialized = ETrue; sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolume with volume value = %d"), iVolume); sl@0: iMMFDevSound->SetVolume(iVolume); sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: TInt volumeGet; sl@0: volumeGet=iMMFDevSound->Volume(); sl@0: if (volumeGet == iVolume) sl@0: { sl@0: INFO_PRINTF1(_L("After calling CMMFDevSound::InitializeL for playing audio, ")); sl@0: INFO_PRINTF2(_L("the volume which was set when calling CMMFDevSound::InitializeL for playing tones is kept. Volume = %d"), volumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("After calling CMMFDevSound::InitializeL for playing audio, ")); sl@0: INFO_PRINTF2(_L("the volume which was set when calling CMMFDevSound::InitializeL for playing tones is NOT kept. Volume = %d"), volumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0011 sl@0: */ sl@0: RA3FDevSoundToneSetVolumeRampWhilePlayingTest::RA3FDevSoundToneSetVolumeRampWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iVolume(0), iFrequencyTone1(0),iTonePlayedTwice(EFalse), sl@0: iTimesToneFinishedCalled(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetVolumeRampWhilePlayingTest* RA3FDevSoundToneSetVolumeRampWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetVolumeRampWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetVolumeRampWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeRampWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KVolume, iVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KVolumeRamp, iVolumeRamp)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KVolumeRamp); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeRampWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetVolumeRampWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using frequency = %d Hz and duration = %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Play tone left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeRampWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetVolumeRamp using volume ramp time = %d"), iVolumeRamp); sl@0: iMMFDevSound->SetVolumeRamp(iVolumeRamp); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetVolumeRampWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: TInt totalExpectedReproductionTime; sl@0: iTimesToneFinishedCalled++; sl@0: totalExpectedReproductionTime = iDuration * iTimesToneFinishedCalled * KMicroSecsInOneSec; sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: if(!iTonePlayedTwice) sl@0: { sl@0: INFO_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using frequency = %d Hz and duration = %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL with error : %d!"), err); sl@0: StopTest(err); sl@0: } sl@0: iTonePlayedTwice = ETrue; sl@0: } sl@0: else if (iPlayToneTime < totalExpectedReproductionTime + (2*KPlayVarianceTime) && iPlayToneTime > totalExpectedReproductionTime - (2*KPlayVarianceTime)) sl@0: { sl@0: INFO_PRINTF2(_L("DevSound called ToneFinished twice with error = %d"), aError); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0012 sl@0: */ sl@0: RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), sl@0: iFrequencyTone1(0), sl@0: iRepeatTrailingSilence(0), sl@0: iRepeatCount(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest* RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatCount, iRepeatCount)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatCount); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatTrailingSilence, iRepeatTrailingSilence)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatTrailingSilence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetToneRepetitionsWhilePlayingConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetToneRepeats using RepeatCount = %d and RepeatTrailingSilence = %d microsecs"), iRepeatCount, iRepeatTrailingSilence); sl@0: iMMFDevSound->SetToneRepeats(iRepeatCount, iRepeatTrailingSilence); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: const TInt KtimesPlayToneIsCalled = 2; sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt repeatTrailingSilenceToSecs = iRepeatTrailingSilence/KMicroSecsInOneSec; sl@0: TInt totalExpectedReproductionTime = (KtimesPlayToneIsCalled*iDuration+iRepeatCount*iDuration + (repeatTrailingSilenceToSecs*iRepeatCount))*KMicroSecsInOneSec; sl@0: if(iPlayToneTime < ((iDuration*KMicroSecsInOneSec) + KPlayVarianceTime)&& iPlayToneTime > (iDuration*KMicroSecsInOneSec) - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("First play tone succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL failed with error : %d!"), err); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: else if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("Play tone repeats succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Play tone repeats did not work as planned.")); sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0013 sl@0: */ sl@0: RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iFirstToneFinishedCall(EFalse), sl@0: iToneOnLength(0), iToneOffLength(0), sl@0: iPauseLength(0), iDTMFString(KNullDesC), sl@0: iDTMFPauses(0), iDTMFTones(0), sl@0: iTotalExpectedPlayToneTime(0) sl@0: { sl@0: } sl@0: RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest* RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KToneOnLength, iToneOnLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOnLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KToneOffLength, iToneOffLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOffLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KPauseLength, iPauseLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPauseLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: for(TInt i =0 ; i< iDTMFString.Length() ; i++) sl@0: { sl@0: if (iDTMFString[i] == ',') sl@0: { sl@0: iDTMFPauses++; sl@0: } sl@0: else sl@0: { sl@0: iDTMFTones++; sl@0: } sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetDTMFToneRepetitionsWhilePlayingConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::L %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState=EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: TTimeIntervalMicroSeconds32 ToneOnLength(iToneOnLength); sl@0: TTimeIntervalMicroSeconds32 ToneOffLength(iToneOffLength); sl@0: TTimeIntervalMicroSeconds32 PauseLength(iPauseLength); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::SetDTMFLengths. ToneOnLength = %d, ToneOffLength = %d and PauseLength = %d"), ToneOnLength.Int(), ToneOffLength.Int(), PauseLength.Int()); sl@0: iMMFDevSound->SetDTMFLengths(ToneOnLength, ToneOffLength, PauseLength); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: if (!iFirstToneFinishedCall) sl@0: { sl@0: INFO_PRINTF1(_L("First play tone succeded")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: iFirstToneFinishedCall = ETrue; sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error = %d"), err); sl@0: StopTest(err); sl@0: } sl@0: iTotalExpectedPlayToneTime = iToneOnLength*iDTMFTones + iToneOffLength * iDTMFTones + iDTMFPauses * iPauseLength + iPlayToneTime.Int64(); sl@0: return; sl@0: } sl@0: if (iPlayToneTime.Int64() < iTotalExpectedPlayToneTime + KPlayVarianceTime && iPlayToneTime.Int64() > iTotalExpectedPlayToneTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SetDTMFLengths succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Calling CMMFDevSound::SetDTMFLengths failed with %Ld"), iPlayToneTime.Int64()); sl@0: ERR_PRINTF2(_L("Expected time %d"), iTotalExpectedPlayToneTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %Ld"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0014 sl@0: */ sl@0: RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest::RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), sl@0: iRepeatTrailingSilence(0), iRepeatCount(0), sl@0: iInitializedToPlayTones(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest* RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest * self = new(ELeave)RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatCount, iRepeatCount)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatCount); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatTrailingSilence, iRepeatTrailingSilence)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatTrailingSilence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStatePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if(!iInitializedToPlayTones) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetToneRepeats using RepeatCount = %d and RepeatTrailingSilence = %d microsecs"), iRepeatCount, iRepeatTrailingSilence); sl@0: iMMFDevSound->SetToneRepeats(iRepeatCount, iRepeatTrailingSilence); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL for playing tones")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: iInitializedToPlayTones = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsNotPlayingTonesModeTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt repeatTrailingSilenceToSecs = iRepeatTrailingSilence/KMicroSecsInOneSec; sl@0: TInt totalExpectedReproductionTime = (iDuration + iRepeatCount * iDuration+ (repeatTrailingSilenceToSecs*iRepeatCount)) * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < (totalExpectedReproductionTime + KPlayVarianceTime) && iPlayToneTime > (totalExpectedReproductionTime - KPlayVarianceTime)) sl@0: { sl@0: INFO_PRINTF1(_L("Play tone repeats succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Play tone repeats did not work as planned.")); sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0015 sl@0: */ sl@0: RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest::RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iInitializedToPlayTones(EFalse), sl@0: iDTMFString(KNullDesC), iToneOnLength(0), sl@0: iToneOffLength(0), iPauseLength(0), sl@0: iDTMFPauses(0), iDTMFTones(0) sl@0: sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest* RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest * self = new(ELeave)RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KToneOnLength, iToneOnLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOnLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KToneOffLength, iToneOffLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOffLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KPauseLength, iPauseLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPauseLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: for(TInt i =0 ; i< iDTMFString.Length() ; i++) sl@0: { sl@0: if (iDTMFString[i] == ',') sl@0: { sl@0: iDTMFPauses++; sl@0: } sl@0: else sl@0: { sl@0: iDTMFTones++; sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateRecording)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if(!iInitializedToPlayTones) sl@0: { sl@0: TTimeIntervalMicroSeconds32 ToneOnLength(iToneOnLength); sl@0: TTimeIntervalMicroSeconds32 ToneOffLength(iToneOffLength); sl@0: TTimeIntervalMicroSeconds32 PauseLength(iPauseLength); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::SetDTMFLengths. ToneOnLength = %d, ToneOffLength = %d and PauseLength = %d"), ToneOnLength.Int(), ToneOffLength.Int(), PauseLength.Int()); sl@0: iMMFDevSound->SetDTMFLengths(ToneOnLength, ToneOffLength, PauseLength); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: iInitializedToPlayTones = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Play DTMF string failed with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsNotPlayingTonesModeTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iToneOnLength*iDTMFTones + iToneOffLength * iDTMFTones + iDTMFPauses * iPauseLength; sl@0: if (iPlayToneTime.Int64() < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime.Int64() > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("CMMFDevSound::SetDTMFLengths settings were remembered after re-initialization.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("CMMFDevSound::SetDTMFLengths settings were not remembered after re-initialization.")); sl@0: ERR_PRINTF2(_L("Expected time %d"), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0016 sl@0: */ sl@0: RA3FDevSoundToneSetConfigWhilePlayingTest::RA3FDevSoundToneSetConfigWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iVolume(0), iFrequencyTone1(0), sl@0: iSampleRate(0), iChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetConfigWhilePlayingTest* RA3FDevSoundToneSetConfigWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetConfigWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetConfigWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KSampleRate, iSampleRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KChannel, iChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetConfigWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("CMMFDevSound::PlayToneL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: TMMFCapabilities capabilitiesSet; sl@0: TBuf stringSampleRateSet; sl@0: TBuf stringChannelsSet; sl@0: TMMFSampleRate eSampleRate; sl@0: SampleRateFromTIntToTMMFSampleRate (iSampleRate, eSampleRate); sl@0: capabilitiesSet.iRate = eSampleRate; sl@0: capabilitiesSet.iChannels = iChannels; sl@0: SampleRateFromTUintToString (capabilitiesSet.iRate, stringSampleRateSet); sl@0: ChannelsFromTUintToString (capabilitiesSet.iChannels, stringChannelsSet); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetConfigL using sample rate = %S and channel mode = %S"), &stringSampleRateSet, &stringChannelsSet); sl@0: TRAPD(err, iMMFDevSound->SetConfigL(capabilitiesSet)); sl@0: if (err == KErrNotReady) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetConfigL succeeded with error = %d"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetConfigL failed with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotReady); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0017 sl@0: */ sl@0: RA3FDevSoundToneSetPriorityWhilePlayingTest::RA3FDevSoundToneSetPriorityWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetPriorityWhilePlayingTest* RA3FDevSoundToneSetPriorityWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetPriorityWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneSetPriorityWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: iDevsoundToneClient = CA3FDevSoundToneClient::NewL(*this); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetPriorityWhilePlayingConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume ()); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::SetPrioritySettings using a priority(highest) value = %d"), KMaximumPriority); sl@0: TMMFPrioritySettings priority; sl@0: priority.iPriority = KMaximumPriority; sl@0: iMMFDevSound->SetPrioritySettings(priority); sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::ClientInitializeCompleteCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("==========Second DevSound client called InitializeComplete()==========")); sl@0: if (aError == KErrNone) sl@0: { sl@0: TInt err = iDevsoundToneClient->PlayTone (); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Second Devsound client called PlayTone and failed with error = %d"), err); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Second Devsound InitializeComplete received an error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::ClientToneFinishedCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== Second DevSound client called ToneFinished()==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: INFO_PRINTF2(_L("Second DevSound client called ToneFinished and succeeded with error = %d"), aError); sl@0: StopTest(aError, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Second DevSound client called ToneFinished and failed with error = %d"), aError); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("Starting another devsound client using the highest priority")); sl@0: iDevsoundToneClient->SetPriority(KMaximumPriority); sl@0: TInt err = iDevsoundToneClient->InitTonePlay(iFrequencyTone1, iDuration*KMicroSecsInOneSec); sl@0: if(err != KErrNone) sl@0: { sl@0: ERR_PRINTF1(_L("Initialization to play tone thru second devsound client failed")); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetPriorityWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrInUse || aError == KErrDied || aError == KErrAccessDenied) sl@0: { sl@0: INFO_PRINTF1(_L("========== Preempting 1st DevSound Instance==========")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished and failed with error = %d"), aError); sl@0: ERR_PRINTF4(_L("Expected errors posibilities %d %d %d"), KErrInUse, KErrDied, KErrAccessDenied); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0018 sl@0: */ sl@0: RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue::RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iSampleRate(0), sl@0: iChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue* RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue * self = new(ELeave)RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KSampleRate, iSampleRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KChannel, iChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: #ifdef MM_TB101_L sl@0: //Reason: Check remains since this is a valid test case, but we need to know why we are not testing invalid rates. sl@0: INFO_PRINTF1(_L("MM_TB101_L defined: All sample rates are valid for MM_TB101_L (HW), therefore no invalid rates can be tested.")); sl@0: StopTest(KErrNotSupported, EPass); sl@0: #else sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetConfigTestToInvalidSampleRateValue"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFCapabilities capabilitiesSet; sl@0: TBuf stringSampleRateSet; sl@0: TBuf stringChannelsSet; sl@0: TMMFSampleRate eSampleRate; sl@0: SampleRateFromTIntToTMMFSampleRate (iSampleRate, eSampleRate); sl@0: capabilitiesSet.iRate = eSampleRate; sl@0: capabilitiesSet.iChannels = iChannels; sl@0: SampleRateFromTUintToString (capabilitiesSet.iRate, stringSampleRateSet); sl@0: ChannelsFromTUintToString (capabilitiesSet.iChannels, stringChannelsSet); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetConfigL using an invalid sample rate = %S and channel mode = %S"), &stringSampleRateSet, &stringChannelsSet); sl@0: TRAPD(err, iMMFDevSound->SetConfigL(capabilitiesSet)); sl@0: if (err == KErrNotSupported || err == KErrArgument) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetConfigL succeeded with error = %d"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetConfigL failed with error = %d"), err); sl@0: ERR_PRINTF3(_L("Expected error posibilities %d %d"), KErrArgument, KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: #endif// MM_TB101_L sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0019 sl@0: */ sl@0: RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest::RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iSampleRate(0), sl@0: iChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest* RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest * self = new(ELeave)RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KSampleRate, iSampleRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KChannel, iChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetConfigTestToInvalidChannelValueTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFCapabilities capabilitiesSet; sl@0: TBuf stringSampleRateSet; sl@0: TBuf stringChannelsSet; sl@0: TMMFSampleRate eSampleRate; sl@0: SampleRateFromTIntToTMMFSampleRate (iSampleRate, eSampleRate); sl@0: capabilitiesSet.iRate = eSampleRate; sl@0: capabilitiesSet.iChannels = iChannels; sl@0: SampleRateFromTUintToString (capabilitiesSet.iRate, stringSampleRateSet); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetConfigL using a sample rate = %S and an invalid channel mode = %d"), &stringSampleRateSet, iChannels); sl@0: TRAPD(err, iMMFDevSound->SetConfigL(capabilitiesSet)); sl@0: if (err == KErrNotSupported || err == KErrArgument) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::SetConfigL succeeded with error = %d"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::SetConfigL failed with error = %d"), err); sl@0: ERR_PRINTF3(_L("Expected error posibilities %d %d"), KErrArgument, KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0020 sl@0: */ sl@0: RA3FDevSoundToneSetDTMFLengthsToNegativeTest::RA3FDevSoundToneSetDTMFLengthsToNegativeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iToneOnLength(0), sl@0: iToneOffLength(0), iPauseLength(0), sl@0: iDTMFString(KNullDesC) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetDTMFLengthsToNegativeTest* RA3FDevSoundToneSetDTMFLengthsToNegativeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetDTMFLengthsToNegativeTest * self = new(ELeave)RA3FDevSoundToneSetDTMFLengthsToNegativeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsToNegativeTest::DoKickoffTestL() sl@0: { sl@0: if ( !GetIntFromConfig(iTestStepName, KToneOnLength, iToneOnLength) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOnLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if ( !GetIntFromConfig(iTestStepName, KToneOffLength, iToneOffLength) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOffLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if ( !GetIntFromConfig(iTestStepName, KPauseLength, iPauseLength) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPauseLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: TPtrC DTMF; sl@0: if ( !GetStringFromConfig(iTestStepName, KDTMFString, DTMF) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsToNegativeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetDTMFLengthsToNegativeConfigurationTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TTimeIntervalMicroSeconds32 ToneOnLength(iToneOnLength); sl@0: TTimeIntervalMicroSeconds32 ToneOffLength(iToneOffLength); sl@0: TTimeIntervalMicroSeconds32 PauseLength(iPauseLength); sl@0: INFO_PRINTF4(_L("Setting DTMF tone to negative lengths. ToneOnLength %d, ToneOffLength %d and PauseLength %d"), iToneOnLength, iToneOffLength, iPauseLength); sl@0: iMMFDevSound->SetDTMFLengths(ToneOnLength, ToneOffLength, PauseLength); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFLengthsToNegativeTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: INFO_PRINTF3(KMsgErrorDevSoundCallback, &KToneFinishedText, aError); sl@0: sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: if(iPlayToneTime <= KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Setting DTMF tone lengths to negative gives a reproduction time of %Ld microseconds which is the expected result"), iPlayToneTime.Int64()); sl@0: StopTest(aError, EPass); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("DevSound called ToneFinished with error = %d that was NOT expected"), aError); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0021 sl@0: */ sl@0: RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iFirstToneFinishedCall(EFalse), sl@0: iToneOnLength(0), iToneOffLength(0), sl@0: iPauseLength(0), iDTMFString(KNullDesC) sl@0: { sl@0: } sl@0: RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest* RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest * self = new(ELeave)RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KToneOnLength, iToneOnLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOnLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KToneOffLength, iToneOffLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KToneOffLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KPauseLength, iPauseLength)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KPauseLength); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: TTimeIntervalMicroSeconds32 ToneOnLength(iToneOnLength); sl@0: TTimeIntervalMicroSeconds32 ToneOffLength(iToneOffLength); sl@0: TTimeIntervalMicroSeconds32 PauseLength(iPauseLength); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::SetDTMFLengths. ToneOnLength = %Ld, ToneOffLength = %Ld and PauseLength = %Ld"), iToneOnLength, iToneOffLength, iPauseLength); sl@0: iMMFDevSound->SetDTMFLengths(ToneOnLength, ToneOffLength, PauseLength); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicrosecsInTenSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState=EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: INFO_PRINTF1(_L("SetDTMF lengths succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetDTMFToneOnLengthToMinusOneTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: INFO_PRINTF1(_L("ToneFinished was called before the timer event.")); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0022 sl@0: */ sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest::RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), sl@0: iRepeatTrailingSilence(0), iRepeatCount(0), sl@0: iInitializedToPlayTones(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest* RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest * self = new(ELeave)RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatCount, iRepeatCount)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatCount); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatTrailingSilence, iRepeatTrailingSilence)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatTrailingSilence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetToneRepeats using RepeatCount = %d and RepeatTrailingSilence = %d microsecs"), iRepeatCount, iRepeatTrailingSilence); sl@0: iMMFDevSound->SetToneRepeats(iRepeatCount, iRepeatTrailingSilence); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatTrailingSilenceToNegativeTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt repeatTrailingSilenceToSecs = iRepeatTrailingSilence/KMicroSecsInOneSec; sl@0: TInt totalExpectedReproductionTime = (iRepeatCount * iDuration + iDuration + (repeatTrailingSilenceToSecs*iRepeatCount))*KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF1(_L("Play tone repeats succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF1(_L("Play tone repeats did not work as planned.")); sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0023 sl@0: */ sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), sl@0: iRepeatTrailingSilence(0), iRepeatCount(0), sl@0: iInitializedToPlayTones(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest* RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest * self = new(ELeave)RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatCount, iRepeatCount)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatCount); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KRepeatTrailingSilence, iRepeatTrailingSilence)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KRepeatTrailingSilence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest"), EFsmIncorrectErrorPassed)); sl@0: if(aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicrosecsInTenSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::SetToneRepeats using RepeatCount = %d and RepeatTrailingSilence = %d microsecs"), iRepeatCount, iRepeatTrailingSilence); sl@0: iMMFDevSound->SetToneRepeats(iRepeatCount, iRepeatTrailingSilence); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: INFO_PRINTF1(_L("Setting repeatCount value to KMdaRepeatForeverTest succeded.")); sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: iMMFDevSound->Stop(); sl@0: StopTest(); sl@0: } sl@0: sl@0: void RA3FDevSoundToneSetToneRepetitionsRepeatCountToKMdaRepeatForeverTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: INFO_PRINTF1(_L("ToneFinished was called before the timer event.")); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0024 sl@0: */ sl@0: RA3FDevSoundToneCapsTest::RA3FDevSoundToneCapsTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iExCapRate(0), iExCapChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneCapsTest* RA3FDevSoundToneCapsTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneCapsTest * self = new(ELeave)RA3FDevSoundToneCapsTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneCapsTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneCapsTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneCapsTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFCapabilities capabilities; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Capabilities")); sl@0: capabilities = iMMFDevSound->Capabilities(); sl@0: PrintSupportedCapabilities(capabilities.iRate, capabilities.iChannels); sl@0: if(capabilities.iRate == iExCapRate) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible sample rate values is 0x%08x"), capabilities.iRate); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible sample rate values failed with 0x%08x"), capabilities.iRate); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapRate); sl@0: StopTest(aError, EFail); sl@0: } sl@0: if(capabilities.iChannels == iExCapChannels) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible channel values is 0x%08x"),capabilities.iChannels ); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible channel values failed with 0x%08x"), capabilities.iChannels ); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapChannels); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0025 sl@0: */ sl@0: RA3FDevSoundToneConfigDefaultTest::RA3FDevSoundToneConfigDefaultTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iExCapRate(0), sl@0: iExCapChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneConfigDefaultTest* RA3FDevSoundToneConfigDefaultTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneConfigDefaultTest * self = new(ELeave)RA3FDevSoundToneConfigDefaultTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigDefaultTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapChannels); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigDefaultTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneConfigDefaultTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState=EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TMMFCapabilities capabilitiesGet; sl@0: TBuf stringSampleRateGet; sl@0: TBuf stringChannelsGet; sl@0: TBuf stringSampleRateExpected; sl@0: TBuf stringChannelsExpected; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Config")); sl@0: capabilitiesGet=iMMFDevSound->Config(); sl@0: SampleRateFromTUintToString (capabilitiesGet.iRate, stringSampleRateGet); sl@0: ChannelsFromTUintToString (capabilitiesGet.iChannels, stringChannelsGet); sl@0: SampleRateFromTIntToTMMFSampleRate (iExCapRate, iExSampleRate); sl@0: SampleRateFromTUintToString (iExSampleRate, stringSampleRateExpected); sl@0: ChannelsFromTUintToString (iExCapChannels, stringChannelsExpected); sl@0: if (stringSampleRateExpected.Compare(stringSampleRateGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Sample rate value match default as expected with %S"), &stringSampleRateGet); sl@0: if (stringChannelsExpected.Compare(stringChannelsGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value match default as expected with %S"), &stringChannelsGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value failed with %S"), &stringChannelsGet); sl@0: ERR_PRINTF2(_L("Expected channel mode %S"), &stringChannelsExpected); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Sample rate value failed with %S"), &stringSampleRateGet); sl@0: ERR_PRINTF2(_L("Expected sample rate %S"), &stringSampleRateExpected); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0026 sl@0: */ sl@0: RA3FDevSoundToneMaxVolumeTest::RA3FDevSoundToneMaxVolumeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iExVolume(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneMaxVolumeTest* RA3FDevSoundToneMaxVolumeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneMaxVolumeTest * self = new(ELeave)RA3FDevSoundToneMaxVolumeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneMaxVolumeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::MaxVolume")); sl@0: TInt maxVolumeGet = iMMFDevSound->MaxVolume(); sl@0: if (maxVolumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume is %d."), maxVolumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume failed with %d."), maxVolumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d."), iExVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0027 sl@0: */ sl@0: RA3FDevSoundToneVolumeTest::RA3FDevSoundToneVolumeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iExVolume(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneVolumeTest* RA3FDevSoundToneVolumeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneVolumeTest * self = new(ELeave)RA3FDevSoundToneVolumeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneVolumeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Volume")); sl@0: TInt volumeGet = iMMFDevSound->Volume(); sl@0: if(volumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("Default device volume succeeded with = %d"), volumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Default device volume failed with = %d"), volumeGet); sl@0: ERR_PRINTF2(_L("Expected value % d"), iExVolume); sl@0: StopTest(aError , EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0028 sl@0: */ sl@0: RA3FDevSoundToneQueryCapsWhilePlayingTest::RA3FDevSoundToneQueryCapsWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExCapRate(0), iExCapChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneQueryCapsWhilePlayingTest* RA3FDevSoundToneQueryCapsWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneQueryCapsWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneQueryCapsWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneQueryCapsWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: TMMFCapabilities capabilities; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Capabilities")); sl@0: capabilities = iMMFDevSound->Capabilities(); sl@0: PrintSupportedCapabilities(capabilities.iRate, capabilities.iChannels); sl@0: if(capabilities.iRate == iExCapRate) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible sample rate values is 0x%08x"), capabilities.iRate); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible sample rate values failed with 0x%08x"), capabilities.iRate); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapRate); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: if(capabilities.iChannels == iExCapChannels) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible channel values is 0x%08x"),capabilities.iChannels ); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible channel values failed with 0x%08x"), capabilities.iChannels ); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapChannels); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0029 sl@0: */ sl@0: RA3FDevSoundToneConfigWhilePlayingTest::RA3FDevSoundToneConfigWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0) sl@0: { sl@0: } sl@0: RA3FDevSoundToneConfigWhilePlayingTest* RA3FDevSoundToneConfigWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneConfigWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneConfigWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapChannels); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneConfigWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: TMMFCapabilities capabilitiesGet; sl@0: TBuf stringSampleRateGet; sl@0: TBuf stringChannelsGet; sl@0: TBuf stringSampleRateExpected; sl@0: TBuf stringChannelsExpected; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Config while playing")); sl@0: capabilitiesGet=iMMFDevSound->Config(); sl@0: SampleRateFromTUintToString (capabilitiesGet.iRate, stringSampleRateGet); sl@0: ChannelsFromTUintToString (capabilitiesGet.iChannels, stringChannelsGet); sl@0: SampleRateFromTIntToTMMFSampleRate (iExCapRate, iExSampleRate); sl@0: SampleRateFromTUintToString (iExSampleRate, stringSampleRateExpected); sl@0: ChannelsFromTUintToString (iExCapChannels, stringChannelsExpected); sl@0: if (stringSampleRateExpected.Compare(stringSampleRateGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Sample rate value match default as expected with %S"), &stringSampleRateGet); sl@0: if (stringChannelsExpected.Compare(stringChannelsGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value match default as expected with %S"), &stringChannelsGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value failed with %S"), &stringChannelsGet); sl@0: ERR_PRINTF2(_L("Expected channel mode %S"), &stringChannelsExpected); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Sample rate value failed with %S"), &stringSampleRateGet); sl@0: ERR_PRINTF2(_L("Expected sample rate %S"), &stringSampleRateExpected); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0030 sl@0: */ sl@0: RA3FDevSoundToneMaxVolumeWhilePlayingTest::RA3FDevSoundToneMaxVolumeWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExVolume(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneMaxVolumeWhilePlayingTest* RA3FDevSoundToneMaxVolumeWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneMaxVolumeWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneMaxVolumeWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneMaxVolumeWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::MaxVolume")); sl@0: TInt maxVolumeGet = iMMFDevSound->MaxVolume(); sl@0: if (maxVolumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume is %d."), maxVolumeGet); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume failed with %d."), maxVolumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d."), iExVolume); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0031 sl@0: */ sl@0: RA3FDevSoundToneVolumeWhilePlayingTest::RA3FDevSoundToneVolumeWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExVolume(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneVolumeWhilePlayingTest* RA3FDevSoundToneVolumeWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneVolumeWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneVolumeWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneVolumeWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Volume")); sl@0: TInt maxVolumeGet = iMMFDevSound->Volume(); sl@0: if (maxVolumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("The device default supported volume value is %d."), maxVolumeGet); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("The device default supported volume value failed with %d."), maxVolumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d."), iExVolume); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0032 sl@0: */ sl@0: RA3FDevSoundToneQueryCapsWhilePausePlayingTest::RA3FDevSoundToneQueryCapsWhilePausePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExCapRate(0), iExCapChannels(0), sl@0: iTimeToEnterPauseElapsed(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneQueryCapsWhilePausePlayingTest* RA3FDevSoundToneQueryCapsWhilePausePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneQueryCapsWhilePausePlayingTest * self = new(ELeave)RA3FDevSoundToneQueryCapsWhilePausePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePausePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KSampleRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KChannel); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePausePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneQueryCapsWhilePausePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TMMFCapabilities capabilities; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Capabilities")); sl@0: capabilities = iMMFDevSound->Capabilities(); sl@0: PrintSupportedCapabilities(capabilities.iRate, capabilities.iChannels); sl@0: if(capabilities.iRate == iExCapRate) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible sample rate values is 0x%08x"), capabilities.iRate); sl@0: if(capabilities.iChannels == iExCapChannels) sl@0: { sl@0: INFO_PRINTF2(_L("The total of possible channel values is 0x%08x"),capabilities.iChannels ); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible channel values failed with 0x%08x"), capabilities.iChannels ); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapChannels); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("The total of possible sample rate values failed with 0x%08x"), capabilities.iRate); sl@0: ERR_PRINTF2(_L("Expected value = %d"), iExCapRate); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePausePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if(!iTimeToEnterPauseElapsed) sl@0: { sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneQueryCapsWhilePausePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused then stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0033 sl@0: */ sl@0: RA3FDevSoundToneConfigWhilePausePlayingTest::RA3FDevSoundToneConfigWhilePausePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iTimeToEnterPauseElapsed(EFalse), sl@0: iExCapRate(0), iExCapChannels(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneConfigWhilePausePlayingTest* RA3FDevSoundToneConfigWhilePausePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneConfigWhilePausePlayingTest * self = new(ELeave)RA3FDevSoundToneConfigWhilePausePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePausePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapRate, iExCapRate)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapRate); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExCapChannels, iExCapChannels)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExCapChannels); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePausePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneConfigWhilePausePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TMMFCapabilities capabilitiesGet; sl@0: TBuf stringSampleRateGet; sl@0: TBuf stringChannelsGet; sl@0: TBuf stringSampleRateExpected; sl@0: TBuf stringChannelsExpected; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Config while playing")); sl@0: capabilitiesGet=iMMFDevSound->Config(); sl@0: SampleRateFromTUintToString (capabilitiesGet.iRate, stringSampleRateGet); sl@0: ChannelsFromTUintToString (capabilitiesGet.iChannels, stringChannelsGet); sl@0: SampleRateFromTIntToTMMFSampleRate (iExCapRate, iExSampleRate); sl@0: SampleRateFromTUintToString (iExSampleRate, stringSampleRateExpected); sl@0: ChannelsFromTUintToString (iExCapChannels, stringChannelsExpected); sl@0: if (stringSampleRateExpected.Compare(stringSampleRateGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Sample rate value match default as expected with %S"), &stringSampleRateGet); sl@0: if (stringChannelsExpected.Compare(stringChannelsGet) == 0) sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value match default as expected with %S"), &stringChannelsGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("Channel mode value failed with %S"), &stringChannelsGet); sl@0: ERR_PRINTF2(_L("Expected channel mode %S"), &stringChannelsExpected); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Sample rate value failed with %S"), &stringSampleRateGet); sl@0: ERR_PRINTF2(_L("Expected sample rate %S"), &stringSampleRateExpected); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePausePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if(!iTimeToEnterPauseElapsed) sl@0: { sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneConfigWhilePausePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused then stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0034 sl@0: */ sl@0: RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::RA3FDevSoundToneMaxVolumeWhilePausePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExVolume(0), sl@0: iTimeToEnterPauseElapsed(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneMaxVolumeWhilePausePlayingTest* RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneMaxVolumeWhilePausePlayingTest * self = new(ELeave)RA3FDevSoundToneMaxVolumeWhilePausePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneMaxVolumeWhilePausePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::MaxVolume")); sl@0: TInt maxVolumeGet = iMMFDevSound->MaxVolume(); sl@0: if (maxVolumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume is %d."), maxVolumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("The max device supported volume failed with %d."), maxVolumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d."), iExVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if(!iTimeToEnterPauseElapsed) sl@0: { sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneMaxVolumeWhilePausePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused then stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0035 sl@0: */ sl@0: RA3FDevSoundToneVolumeWhilePausePlayingTest::RA3FDevSoundToneVolumeWhilePausePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iExVolume(0), sl@0: iTimeToEnterPauseElapsed(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneVolumeWhilePausePlayingTest* RA3FDevSoundToneVolumeWhilePausePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneVolumeWhilePausePlayingTest * self = new(ELeave)RA3FDevSoundToneVolumeWhilePausePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePausePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KExVolume, iExVolume)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KExVolume); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePausePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneVolumeWhilePausePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Volume")); sl@0: TInt maxVolumeGet = iMMFDevSound->Volume(); sl@0: if (maxVolumeGet == iExVolume) sl@0: { sl@0: INFO_PRINTF2(_L("The device default supported volume value is %d."), maxVolumeGet); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF2(_L("The device default supported volume value failed with %d."), maxVolumeGet); sl@0: ERR_PRINTF2(_L("Expected value = %d."), iExVolume); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePausePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if(!iTimeToEnterPauseElapsed) sl@0: { sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iTimeToEnterPauseElapsed = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneVolumeWhilePausePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused then stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0036 sl@0: */ sl@0: RA3FDevSoundTonePlayToneOnceTest::RA3FDevSoundTonePlayToneOnceTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneOnceTest* RA3FDevSoundTonePlayToneOnceTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneOnceTest * self = new(ELeave)RA3FDevSoundTonePlayToneOnceTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneOnceTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: iStartTime.HomeTime(); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL failed with error : %d!"), err); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0037 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneTest::RA3FDevSoundTonePlayDualToneTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0), sl@0: iFrequencyTone2(0) sl@0: { sl@0: } sl@0: RA3FDevSoundTonePlayDualToneTest* RA3FDevSoundTonePlayDualToneTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneTest(aTestName); sl@0: return self; sl@0: } sl@0: void RA3FDevSoundTonePlayDualToneTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0038 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFToneTest::RA3FDevSoundTonePlayDTMFToneTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName),iDTMFString(KNullDesC), sl@0: iDTMFPauses(0), iDTMFTones(0) sl@0: sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFToneTest* RA3FDevSoundTonePlayDTMFToneTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFToneTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFToneTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFToneTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: for(TInt i =0 ; i< iDTMFString.Length() ; i++) sl@0: { sl@0: if (iDTMFString[i] == ',') sl@0: { sl@0: iDTMFPauses++; sl@0: } sl@0: else sl@0: { sl@0: iDTMFTones++; sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFToneTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFToneTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFToneTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt defaultToneOn = 250000; sl@0: TInt defaultToneOff = 50000; sl@0: TInt defaultPauseLength = 250000; sl@0: TInt totalExpectedReproductionTime = defaultToneOn*iDTMFTones + defaultToneOff * iDTMFTones + iDTMFPauses * defaultPauseLength; sl@0: if (iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL failed with %Ld"), iPlayToneTime.Int64()); sl@0: ERR_PRINTF2(_L("Expected time %d"), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0039 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceTest::RA3FDevSoundTonePlayToneSequenceTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceTest* RA3FDevSoundTonePlayToneSequenceTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceTest::DoKickoffTestL() sl@0: { sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling MMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TUint8* tablePointer = const_cast(&(KFixedSequenceTestSequenceDataX[0])); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Play tone sequence failed with error = %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0040 sl@0: */ sl@0: RA3FDevSoundToneNewToneRequestWhilePlayingTest::RA3FDevSoundToneNewToneRequestWhilePlayingTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneNewToneRequestWhilePlayingTest* RA3FDevSoundToneNewToneRequestWhilePlayingTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneNewToneRequestWhilePlayingTest * self = new(ELeave)RA3FDevSoundToneNewToneRequestWhilePlayingTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneNewToneRequestWhilePlayingTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundToneNewToneRequestWhilePlayingTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneNewToneRequestWhilePlayingTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: iStartTime.HomeTime(); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("CMMFDevSound::PlayToneL left with the expected error = %d"), err); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error value = %d!"), KErrNotReady); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneNewToneRequestWhilePlayingTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: sl@0: void RA3FDevSoundToneNewToneRequestWhilePlayingTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: iEndTime.HomeTime(); sl@0: iPlayToneTime = iEndTime.MicroSecondsFrom(iStartTime); sl@0: TInt totalExpectedReproductionTime = iDuration * KMicroSecsInOneSec; sl@0: if(iPlayToneTime < totalExpectedReproductionTime + KPlayVarianceTime && iPlayToneTime > totalExpectedReproductionTime - KPlayVarianceTime) sl@0: { sl@0: INFO_PRINTF2(_L("Play time is %Ld microseconds"), iPlayToneTime.Int64()); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("Play time is %Ld microseconds and it should have been %d microseconds"), iPlayToneTime.Int64(), totalExpectedReproductionTime); sl@0: StopTest(KErrNone, EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called ToneFinished with error = %d"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrUnderflow); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0041 sl@0: */ sl@0: RA3FDevSoundTonePreemptionTest::RA3FDevSoundTonePreemptionTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePreemptionTest* RA3FDevSoundTonePreemptionTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePreemptionTest * self = new(ELeave)RA3FDevSoundTonePreemptionTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: iDevsoundToneClient = CA3FDevSoundToneClient::NewL(*this); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePreemptionTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TMMFPrioritySettings prioritySettings; sl@0: prioritySettings.iPriority = KMinimumPriority; sl@0: prioritySettings.iPref = EMdaPriorityPreferenceTime; sl@0: prioritySettings.iState = EMMFStateIdle; sl@0: iMMFDevSound->SetPrioritySettings(prioritySettings); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Starting lower priority devsound client")); sl@0: iDevsoundToneClient->SetPriority(KMaximumPriority); sl@0: TInt err = iDevsoundToneClient->InitTonePlay(iFrequencyTone1, iDuration*KMicroSecsInOneSec); sl@0: if(err != KErrNone) sl@0: { sl@0: ERR_PRINTF1(_L("Initialization to play tone thru second devsound client failed")); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrInUse || aError == KErrDied || aError == KErrAccessDenied) sl@0: { sl@0: INFO_PRINTF1(_L("========== Preempting 1st DevSound Instance==========")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("First DevSound client called ToneFinished() and failed with error = %d "), aError); sl@0: ERR_PRINTF4(_L("Expected posibilities %d %d %d "), KErrInUse, KErrDied, KErrAccessDenied); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::ClientInitializeCompleteCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== Second Client DevSound InitializeComplete() callback ==========")); sl@0: if (aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Second Devsound InitializeComplete received an error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Starting to play audio thru second devsound client")); sl@0: TInt err = iDevsoundToneClient->PlayTone(); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Starting to play tones thru second devsound client left with error = %d"), err); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePreemptionTest::ClientToneFinishedCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: INFO_PRINTF2(_L("Second DevSound instance called ToneFinished with error = %d"), aError); sl@0: StopTest(aError,EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Second DevSound instance called ToneFinished with error = %d that was NOT expected"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0042 sl@0: */ sl@0: RA3FDevSoundToneRejectionTest::RA3FDevSoundToneRejectionTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundToneRejectionTest* RA3FDevSoundToneRejectionTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundToneRejectionTest * self = new(ELeave)RA3FDevSoundToneRejectionTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundToneRejectionTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: iDevsoundToneClient = CA3FDevSoundToneClient::NewL(*this); sl@0: } sl@0: sl@0: void RA3FDevSoundToneRejectionTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundToneRejectionTest"), EFsmIncorrectErrorPassed)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TMMFPrioritySettings prioritySettings; sl@0: prioritySettings.iPriority = KMinimumPriority; sl@0: prioritySettings.iPref = EMdaPriorityPreferenceTime; sl@0: prioritySettings.iState = EMMFStateIdle; sl@0: iMMFDevSound->SetPrioritySettings(prioritySettings); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Starting lower priority devsound client")); sl@0: iDevsoundToneClient->SetPriority(KMinimumPriority); sl@0: TInt err = iDevsoundToneClient->InitTonePlay(iFrequencyTone1, iDuration*KMicroSecsInOneSec); sl@0: if(err != KErrNone) sl@0: { sl@0: ERR_PRINTF1(_L("Initialization to play tone thru second devsound client failed")); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneRejectionTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: sl@0: void RA3FDevSoundToneRejectionTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrUnderflow) sl@0: { sl@0: INFO_PRINTF2(_L("First DevSound instance called ToneFinished with error = %d"), aError); sl@0: StopTest(aError,EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("First DevSound instance called ToneFinished with error = %d that was NOT expected"), aError); sl@0: ERR_PRINTF2(_L("Expected error = %d"), aError); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: sl@0: void RA3FDevSoundToneRejectionTest::ClientInitializeCompleteCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== Second Client DevSound InitializeComplete() callback ==========")); sl@0: if (aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Second Devsound InitializeComplete received an error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Starting to play audio thru second devsound client")); sl@0: TInt err = iDevsoundToneClient->PlayTone(); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("Starting to play tones thru second devsound client left with error = %d"), err); sl@0: StopTest(err); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundToneRejectionTest::ClientToneFinishedCallback(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrInUse || aError == KErrDied || aError == KErrAccessDenied) sl@0: { sl@0: INFO_PRINTF1(_L("========== Rejection 2nd DevSound Instance==========")); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Second DevSound client called ToneFinished() and failed with error = %d "), aError); sl@0: ERR_PRINTF4(_L("Expected posibilities %d %d %d "), KErrInUse, KErrDied, KErrAccessDenied); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0043 sl@0: */ sl@0: RA3FDevSoundTonePlayToneOnceAndStopTest::RA3FDevSoundTonePlayToneOnceAndStopTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0), sl@0: iToneStopped(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneOnceAndStopTest* RA3FDevSoundTonePlayToneOnceAndStopTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneOnceAndStopTest * self = new(ELeave)RA3FDevSoundTonePlayToneOnceAndStopTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceAndStopTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceAndStopTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneOnceAndStopTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if (!iToneStopped) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop succeeded")); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop")); sl@0: iMMFDevSound->Stop(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceAndStopTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: if(!iToneStopped) sl@0: { sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iToneStopped = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNone); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceAndStopTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to have been stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0044 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneOnceAndStopTest::RA3FDevSoundTonePlayDualToneOnceAndStopTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0), iFrequencyTone1(0), sl@0: iFrequencyTone2(0), iToneStopped(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDualToneOnceAndStopTest* RA3FDevSoundTonePlayDualToneOnceAndStopTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneOnceAndStopTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneOnceAndStopTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceAndStopTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceAndStopTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneOnceAndStopTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if (!iToneStopped) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error = %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop succeeded")); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop")); sl@0: iMMFDevSound->Stop(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceAndStopTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: if(!iToneStopped) sl@0: { sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iToneStopped = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNone); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceAndStopTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to have been stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0045 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::RA3FDevSoundTonePlayDTMFStringOnceAndStopTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName),iDTMFString(KNullDesC), sl@0: iToneStopped(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFStringOnceAndStopTest* RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFStringOnceAndStopTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFStringOnceAndStopTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if ( !GetStringFromConfig(iTestStepName, KDTMFString, DTMF) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFStringOnceAndStopTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if (!iToneStopped) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop succeeded")); sl@0: StopTest(aError); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop")); sl@0: iMMFDevSound->Stop(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: if(!iToneStopped) sl@0: { sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iToneStopped = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNone); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceAndStopTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to have been stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0046 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::RA3FDevSoundTonePlayToneSequenceOnceAndStopTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iToneStopped(EFalse) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceOnceAndStopTest* RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceOnceAndStopTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceOnceAndStopTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::DoKickoffTestL() sl@0: { sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceOnceAndStopTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: if (!iToneStopped) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: TUint8* tablePointer = const_cast( &(KFixedSequenceTestSequenceDataX[0])); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with error = %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop succeeded")); sl@0: StopTest(aError); sl@0: } sl@0: sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Stop")); sl@0: iMMFDevSound->Stop(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: if(!iToneStopped) sl@0: { sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iToneStopped = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNone); sl@0: StopTest(err); sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceAndStopTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to have been stopped")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0047 sl@0: */ sl@0: RA3FDevSoundTonePlayToneOncePauseTest::RA3FDevSoundTonePlayToneOncePauseTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName),iDuration(0), sl@0: iFrequencyTone1(0), iPaused(EFalse), sl@0: iSamplesPlayedPaused(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneOncePauseTest* RA3FDevSoundTonePlayToneOncePauseTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneOncePauseTest * self = new(ELeave)RA3FDevSoundTonePlayToneOncePauseTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOncePauseTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOncePauseTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneOncePauseTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs "), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error = %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SamplesPlayed")); sl@0: iSamplesPlayedPaused = iMMFDevSound->SamplesPlayed(); sl@0: INFO_PRINTF2(_L("The number of samples played is %d"), iSamplesPlayedPaused); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if (aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TInt samplesPlayed = iMMFDevSound->SamplesPlayed(); sl@0: if(iSamplesPlayedPaused == samplesPlayed) sl@0: { sl@0: INFO_PRINTF2(_L("After waiting a couple of seconds, the samples played are still being the same %d"), iSamplesPlayedPaused); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("After waiting a couple of seconds, the samples played are not the same %d"), samplesPlayed); sl@0: ERR_PRINTF2(_L("Expected samples played = %d"), iSamplesPlayedPaused); sl@0: StopTest(aError,EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOncePauseTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if (!iPaused) sl@0: { sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iPaused = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOncePauseTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0048 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneOncePauseTest::RA3FDevSoundTonePlayDualToneOncePauseTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDuration(0),iFrequencyTone1(0), sl@0: iFrequencyTone2(0), iPaused(EFalse), sl@0: iSamplesPlayedPaused(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDualToneOncePauseTest* RA3FDevSoundTonePlayDualToneOncePauseTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneOncePauseTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneOncePauseTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOncePauseTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOncePauseTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneOncePauseTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SamplesPlayed")); sl@0: iSamplesPlayedPaused = iMMFDevSound->SamplesPlayed(); sl@0: INFO_PRINTF2(_L("The number of samples played is %d"), iSamplesPlayedPaused); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if (aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TInt samplesPlayed = iMMFDevSound->SamplesPlayed(); sl@0: if(iSamplesPlayedPaused == samplesPlayed) sl@0: { sl@0: INFO_PRINTF2(_L("After waiting a couple of seconds, the samples played are still being the same %d"), iSamplesPlayedPaused); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("After waiting a couple of seconds, the samples played are not the same %d"), samplesPlayed); sl@0: ERR_PRINTF2(_L("Expected samples played = %d"), iSamplesPlayedPaused); sl@0: StopTest(aError,EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOncePauseTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if (!iPaused) sl@0: { sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iPaused = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOncePauseTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0049 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFStringOncePauseTest::RA3FDevSoundTonePlayDTMFStringOncePauseTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), sl@0: iDTMFString(KNullDesC),iPaused(EFalse), sl@0: iSamplesPlayedPaused(0),iDTMFPauses(0), sl@0: iDTMFTones(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFStringOncePauseTest* RA3FDevSoundTonePlayDTMFStringOncePauseTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFStringOncePauseTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFStringOncePauseTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOncePauseTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if ( !GetStringFromConfig(iTestStepName, KDTMFString, DTMF) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: for(TInt i =0 ; i< iDTMFString.Length() ; i++) sl@0: { sl@0: if (iDTMFString[i] == ',') sl@0: { sl@0: iDTMFPauses++; sl@0: } sl@0: else sl@0: { sl@0: iDTMFTones++; sl@0: } sl@0: } sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOncePauseTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFStringOncePauseTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: iMMFDevSound->SetVolume(iMMFDevSound->MaxVolume()); sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error : %d!"), err); sl@0: StopTest(err); sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SamplesPlayed")); sl@0: iSamplesPlayedPaused = iMMFDevSound->SamplesPlayed(); sl@0: INFO_PRINTF2(_L("The number of samples played is %d"), iSamplesPlayedPaused); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if (aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TInt samplesPlayed = iMMFDevSound->SamplesPlayed(); sl@0: if(iSamplesPlayedPaused == samplesPlayed) sl@0: { sl@0: INFO_PRINTF2(_L("After waiting a couple of seconds, the samples played are still being the same %d"), iSamplesPlayedPaused); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("After waiting a couple of seconds, the samples played are not the same %d"), samplesPlayed); sl@0: ERR_PRINTF2(_L("Expected samples played = %d"), iSamplesPlayedPaused); sl@0: StopTest(aError,EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOncePauseTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if (!iPaused) sl@0: { sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iPaused = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOncePauseTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0050 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceOncePauseTest::RA3FDevSoundTonePlayToneSequenceOncePauseTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iPaused(EFalse), sl@0: iSamplesPlayedPaused(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceOncePauseTest* RA3FDevSoundTonePlayToneSequenceOncePauseTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceOncePauseTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceOncePauseTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOncePauseTest::DoKickoffTestL() sl@0: { sl@0: iTimer = CPeriodic::NewL(CActive::EPriorityHigh); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOncePauseTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceOncePauseTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TUint8* tablePointer = const_cast( &(KFixedSequenceTestSequenceDataX[0] ) ); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with error : %d!"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: StartTimer(KMicroSecsTwoSec); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePlaying")); sl@0: iDevSoundState = EStatePlaying; sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePlaying: sl@0: { sl@0: if(aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::Pause")); sl@0: iMMFDevSound->Pause(); sl@0: INFO_PRINTF1(_L("DevSound State: EStatePause")); sl@0: iDevSoundState = EStatePause; sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::SamplesPlayed")); sl@0: iSamplesPlayedPaused = iMMFDevSound->SamplesPlayed(); sl@0: INFO_PRINTF2(_L("The number of samples played is %d"), iSamplesPlayedPaused); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStatePause: sl@0: { sl@0: if (aDevSoundEvent == EEventTimerComplete) sl@0: { sl@0: TInt samplesPlayed = iMMFDevSound->SamplesPlayed(); sl@0: if(iSamplesPlayedPaused == samplesPlayed) sl@0: { sl@0: INFO_PRINTF2(_L("After waiting a couple of seconds, the samples played are still being the same %d"), iSamplesPlayedPaused); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("After waiting a couple of seconds, the samples played are not the same %d"), samplesPlayed); sl@0: ERR_PRINTF2(_L("Expected samples played = %d"), iSamplesPlayedPaused); sl@0: StopTest(aError,EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("EEventTimerComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOncePauseTest::DoTimerCallback() sl@0: { sl@0: INFO_PRINTF1(_L("TimerEvent called")); sl@0: if (!iPaused) sl@0: { sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: iPaused = ETrue; sl@0: } sl@0: else sl@0: { sl@0: iTimer->Cancel(); sl@0: INFO_PRINTF1(_L("DevSound Event: EEventTimerComplete")); sl@0: Fsm(EEventTimerComplete, KErrNone); sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOncePauseTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: ERR_PRINTF1(_L("DevSound should not have called ToneFinished because it is supposed to be paused")); sl@0: StopTest(aError, EFail); sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0051 sl@0: */ sl@0: RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest::RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest* RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest * self = new(ELeave)RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneOnceInitializedToPlayAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL for playing audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStatePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs"), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0052 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest::RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iFrequencyTone2(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest* RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneOnceInitializedToPlayAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL for playing audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStatePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0053 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest::RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDTMFString(KNullDesC) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest* RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFStringOnceInitializedToPlayAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL for playing audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStatePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S "), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0054 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest::RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest* RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: void RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest::DoKickoffTestL() sl@0: { sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceOnceInitializedToPlayAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL for playing audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStatePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TUint8* tablePointer = const_cast( &(KFixedSequenceTestSequenceDataX[0] ) ); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Play dual tone failed with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0055 sl@0: */ sl@0: RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest::RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest* RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest * self = new(ELeave)RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneOnceInitializedToRecordAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL for recording audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateRecording)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs"), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0056 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest::RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iFrequencyTone2(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest* RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneOnceInitializedToRecordAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::InitializeL for recording audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateRecording)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0057 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest::RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDTMFString(KNullDesC) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest* RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFStringOnceInitializedToRecordAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL for recording audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateRecording)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S "), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0058 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest::RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest* RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest(aTestName); sl@0: return self; sl@0: } sl@0: void RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest::DoKickoffTestL() sl@0: { sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch(iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceOnceInitializedToRecordAudioTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL for playing audio files")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateRecording)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: TUint8* tablePointer = const_cast( &(KFixedSequenceTestSequenceDataX[0] ) ); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err == KErrNotSupported) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with KErrNotSupported %d which is the expected error"), err); sl@0: StopTest(err, EPass); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("Play dual tone failed with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotSupported); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0059 sl@0: */ sl@0: RA3FDevSoundTonePlayToneWithoutCallingInitializeTest::RA3FDevSoundTonePlayToneWithoutCallingInitializeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneWithoutCallingInitializeTest* RA3FDevSoundTonePlayToneWithoutCallingInitializeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneWithoutCallingInitializeTest * self = new(ELeave)RA3FDevSoundTonePlayToneWithoutCallingInitializeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneWithoutCallingInitializeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneWithoutCallingInitializeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneWithoutCallingInitializeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF3(_L("Calling CMMFDevSound::PlayToneL using %d Hz during %d secs"), iFrequencyTone1, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayToneL(iFrequencyTone1, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotReady) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with KErrNotReady %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotReady); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0060 sl@0: */ sl@0: RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest::RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDuration(0), sl@0: iFrequencyTone1(0), iFrequencyTone2(0) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest* RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest * self = new(ELeave)RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest::DoKickoffTestL() sl@0: { sl@0: if (!GetIntFromConfig(iTestStepName, KDuration, iDuration)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDuration); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone1, iFrequencyTone1)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone1); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: if (!GetIntFromConfig(iTestStepName, KFrequencyTone2, iFrequencyTone2)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KFrequencyTone2); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDualToneWithoutCallingInitializeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF4(_L("Calling CMMFDevSound::PlayDualToneL using %d Hz %d Hz during %d secs "), iFrequencyTone1, iFrequencyTone2, iDuration); sl@0: TRAPD(err, iMMFDevSound->PlayDualToneL(iFrequencyTone1, iFrequencyTone2, iDuration*KMicroSecsInOneSec)); sl@0: if (err == KErrNotReady) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with KErrNotReady %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDualToneL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotReady); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0061 sl@0: */ sl@0: RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest::RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iDTMFString(KNullDesC) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest* RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest * self = new(ELeave)RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest::DoKickoffTestL() sl@0: { sl@0: TPtrC DTMF; sl@0: if (!GetStringFromConfig(iTestStepName, KDTMFString, DTMF)) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KDTMFString); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iDTMFString.Copy(DTMF); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayDTMFStringWithoutCallingInitializeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF2(_L("Calling CMMFDevSound::PlayDTMFStringL %S"), &iDTMFString); sl@0: TRAPD(err, iMMFDevSound->PlayDTMFStringL(iDTMFString)); sl@0: if (err == KErrNotReady) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with KErrNotReady %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayDTMFStringL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotReady); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0062 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest::RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest* RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest::DoKickoffTestL() sl@0: { sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceWithoutCallingInitializeTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: TUint8* tablePointer = const_cast( &(KFixedSequenceTestSequenceDataX[0] ) ); sl@0: TPtrC8 KFixedSequenceData(tablePointer, sizeof(KFixedSequenceTestSequenceDataX)); sl@0: INFO_PRINTF1(_L("Calling CMMFDevSound::PlayToneSequenceL")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(KFixedSequenceData)); sl@0: if (err == KErrNotReady) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with KErrNotReady %d which is the expected error"), err); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with error = %d"), err); sl@0: ERR_PRINTF2(_L("Expected error = %d"), KErrNotReady); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: /* sl@0: *======================================================================================================== sl@0: * MM-A3F-DEVSOUND-CHRTZ-TONE-0063 sl@0: */ sl@0: RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest::RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest(const TDesC& aTestName) sl@0: : RA3FDevSoundTestBase(aTestName), iInvalidToneSequence(KNullDesC8) sl@0: { sl@0: } sl@0: sl@0: RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest* RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest::NewL(const TDesC& aTestName) sl@0: { sl@0: RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest * self = new(ELeave)RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest(aTestName); sl@0: return self; sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest::DoKickoffTestL() sl@0: { sl@0: TPtrC TS; sl@0: if ( !GetStringFromConfig(iTestStepName, KInvalidToneSequence, TS) ) sl@0: { sl@0: ERR_PRINTF2(KMsgErrorGetParameter, &KInvalidToneSequence); sl@0: StopTest(KErrNotFound); sl@0: return; sl@0: } sl@0: iInvalidToneSequence.Copy(TS); sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest::Fsm(TMmfDevSoundEvent aDevSoundEvent, TInt aError) sl@0: { sl@0: switch (iDevSoundState) sl@0: { sl@0: case EStateCreated: sl@0: { sl@0: __ASSERT_ALWAYS((aError == KErrNone), Panic(_L("RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest"), EFsmIncorrectErrorPassed)); sl@0: if (aDevSoundEvent == EEventInitialize) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound::InitializeL")); sl@0: TRAPD(err, iMMFDevSound->InitializeL(*this, EMMFStateTonePlaying)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::InitializeL left with error = %d"), err); sl@0: StopTest(err); sl@0: break; sl@0: } sl@0: INFO_PRINTF1(_L("DevSound State: EStateInitializing")); sl@0: iDevSoundState = EStateInitializing; sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitialize not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: case EStateInitializing: sl@0: { sl@0: if (aDevSoundEvent == EEventInitComplete && aError == KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("Calling iMMFDevSound->PlayToneSequenceL with an invalid descriptor as argument")); sl@0: TRAPD(err, iMMFDevSound->PlayToneSequenceL(iInvalidToneSequence)); sl@0: if (err != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("CMMFDevSound::PlayToneSequenceL left with error = %d and it should not leave"), err); sl@0: StopTest(err, EFail); sl@0: } sl@0: } sl@0: else if (aDevSoundEvent == EEventInitComplete && aError != KErrNone) sl@0: { sl@0: ERR_PRINTF2(_L("DevSound called CMMFDevSound::InitializeComplete with error = %d"), aError); sl@0: StopTest(aError); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF2(_L("DevSound EEventInitComplete not received as expected. Received event: %d"), aDevSoundEvent); sl@0: StopTest(aError, EFail); sl@0: } sl@0: break; sl@0: } sl@0: default: sl@0: { sl@0: ERR_PRINTF2(_L("Invalid DevSound state received: %d"), iDevSoundState); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void RA3FDevSoundTonePlayToneSequenceUsingInvalidDescriptorTest::ToneFinished(TInt aError) sl@0: { sl@0: INFO_PRINTF1(_L("========== DevSound ToneFinished() callback ==========")); sl@0: if (aError == KErrCorrupt) sl@0: { sl@0: INFO_PRINTF2(_L("ToneFinished called with KErrCorrupt %d which is the expected error"), aError); sl@0: StopTest(); sl@0: } sl@0: else sl@0: { sl@0: ERR_PRINTF3(_L("ToneFinished called with error = %d, when the expected error is = %d"), aError, KErrCorrupt); sl@0: StopTest(aError, EFail); sl@0: } sl@0: } sl@0: