devsoundextensions/effects/EffectTest/EffectConsoleTest.cpp
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devsoundextensions/effects/EffectTest/EffectConsoleTest.cpp	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,990 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Effects console test implementation
+*
+*/
+
+
+
+#include "EffectConsoleTest.h"
+
+_LIT(KNewLine,"\n");
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> CmyActiveScheduler (implementation)
+//
+//////////////////////////////////////////////////////////////////////////////
+void CmyActiveScheduler::Error(TInt aError) const
+	{
+	_LIT(KMsgSchedErr,"CmyActiveScheduler-error");
+	User::Panic(KMsgSchedErr,aError);
+	}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> CActiveConsole (implementation)
+//
+//////////////////////////////////////////////////////////////////////////////
+CActiveConsole::CActiveConsole( CConsoleBase* aConsole)
+	: CActive(CActive::EPriorityStandard)
+	  // Construct high-priority active object
+	{
+	iConsole = aConsole;
+	}
+
+void CActiveConsole::ConstructL()
+	{
+	  // Add to active scheduler
+	CActiveScheduler::Add(this);
+	}
+
+CActiveConsole::~CActiveConsole()
+	{
+	// Make sure we're cancelled
+	Cancel();
+	}
+
+void  CActiveConsole::DoCancel()
+	{
+	iConsole->ReadCancel();
+	}
+
+void  CActiveConsole::RunL()
+	{
+	  // Handle completed request
+	ProcessKeyPress(TChar(iConsole->KeyCode()));
+	}
+
+void CActiveConsole::RequestCharacter()
+	{
+	  // A request is issued to the CConsoleBase to accept a
+	  // character from the keyboard.
+	iConsole->Read(iStatus);
+	SetActive();
+	}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> CWriteKeyProcessor (implementation)
+//
+//////////////////////////////////////////////////////////////////////////////
+CConsoleTest::CConsoleTest(CConsoleBase* aConsole)
+	:	CActiveConsole(aConsole),
+		iMenu(EMain)
+	{
+	iEqualizer = NULL;
+	iEnvironmentalReverb = NULL;
+	iStereoWidening = NULL;
+	iInitStatus = -1;
+	};
+
+CConsoleTest::~CConsoleTest()
+{
+	RDebug::Print(_L("CConsoleTest::~CConsoleTest\n"));
+	// Make sure we're cancelled
+	Cancel();
+
+	delete iPlayerAudioEqualizer;
+	delete iPlayerEnvironmentalReverb;
+	delete iPlayerStereoWidening;
+	delete iRecorderAudioEqualizer;
+	delete iRecorderEnvironmentalReverb;
+	delete iRecorderStereoWidening;
+
+	delete iCIUtility;
+
+	delete iAudioPlayer;
+	delete iAudioRecorder;
+	delete iAudioConverter;
+
+	iGoodData.Close();
+	iBadData.Close();
+
+	iFs.Close();
+
+}
+
+void CConsoleTest::ConstructL()
+{
+	User::LeaveIfError(iFs.Connect());
+
+	iAudioPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(KAMRTestFile, *this);
+	//iAudioRecorder = CMdaAudioRecorderUtility::NewL(*this);
+	//iAudioConverter = CMdaAudioConvertUtility::NewL(*this);
+
+	//iAudioPlayer->OpenFileL(KWAVTestFile);
+
+	// Add to active scheduler
+	CActiveScheduler::Add(this);
+	InitializeTestData();
+}
+
+CConsoleTest* CConsoleTest::NewLC(CConsoleBase* aConsole)
+{
+	CConsoleTest* self=new (ELeave) CConsoleTest(aConsole);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+}
+
+CConsoleTest* CConsoleTest::NewL(CConsoleBase* aConsole)
+{
+	CConsoleTest* self=NewLC(aConsole);
+	CleanupStack::Pop();
+	return self;
+}
+
+
+
+void CConsoleTest::ProcessKeyPress(TChar aChar)
+{
+//	iConsole->Printf(_L("You pressed: %d\n"), (TUint) aChar);
+
+	  // if key is ESC
+	  //   cancel any outstanding request
+	  //   stop the scheduler
+      TInt err(KErrNone);
+#ifdef __WINS__
+	if (aChar == EKeyEscape)
+#else
+	if (aChar == ' ')
+#endif
+	{
+		Cancel();
+		CActiveScheduler::Stop();
+		return;
+	}
+
+	if (aChar == EKeyEnter)
+	{
+		iConsole->Printf(KNewLine);
+		// Issue another request
+		RequestCharacter();
+		return;
+	}
+
+#ifdef __WINS__
+	if (aChar == '?')
+#else
+	if (aChar == '7')
+#endif
+	{
+		ShowMenu();
+		// Issue another request
+		RequestCharacter();
+		return;
+	}
+
+	switch (iMenu)
+	{
+	case EMain:
+		ProcessMain(aChar);
+		break;
+
+	case EPlay:
+		TRAP(err,ProcessPlayL(aChar));
+		break;
+
+	case ERecord:
+		//ProcessRecord(aChar);
+		break;
+
+	case EEqualizer:
+		TRAP(err,ProcessEqualizerL(aChar));
+		break;
+
+	case EBandId:
+		ProcessBandId(aChar);
+		break;
+
+	case EBandLevel:
+		TRAP(err,ProcessBandLevelL(aChar));
+		break;
+
+	case EEnvironmentalReverb1:
+		TRAP(err,ProcessEnvironmentalReverbL(aChar));
+		break;
+
+	case EEnvironmentalReverb2:
+		break;
+
+	case EStereoWideningLevel:
+		TRAP(err,ProcessStereoWideningLevelL(aChar));
+		break;
+
+	case EStereoWidening:
+		TRAP(err,ProcessStereoWideningL(aChar));
+		break;
+
+
+	default:
+		iConsole->Printf(_L("ProcessKeyPress - Unknown function\n"));
+		// Issue another request
+		RequestCharacter();
+		break;
+	}
+}
+
+
+void CConsoleTest::ShowMenu()
+{
+	iConsole->ClearScreen();
+	switch (iMenu)
+	{
+	case EMain:
+		iConsole->Printf(_L("1: Player\n"));
+		iConsole->Printf(_L("2: Recorder\n"));
+		iConsole->Printf(_L("3: Converter\n"));
+		iConsole->Printf(_L("9: Exit\n"));
+		break;
+
+	case EPlay:
+	case ERecord:
+	case EConvert:
+		iConsole->Printf(_L("0: Main Menu\n"));
+		iConsole->Printf(_L("1: Equalizer\n"));
+		iConsole->Printf(_L("2: Env Reverb\n"));
+		iConsole->Printf(_L("3: StereoWidening\n"));
+
+		break;
+
+	case EEqualizer:
+		iConsole->Printf(_L("0: Main Menu\n"));
+		iConsole->Printf(_L("1: Enable/Disable\n"));
+		iConsole->Printf(_L("2: Toggle Enforce\n"));
+		iConsole->Printf(_L("3: Set Band Level\n"));
+		iConsole->Printf(_L("4: Show Equalizer info\n"));
+		iConsole->Printf(_L("5: Show Band info\n"));
+		iConsole->Printf(_L("6: Apply Settings\n"));
+		iConsole->Printf(_L("9: Delete Equalizer\n"));
+		break;
+
+	case EBandLevel:
+		iConsole->Printf(_L("0: Equalizer Menu\n"));
+		iConsole->Printf(_L("1: Band Level Up\n"));
+		iConsole->Printf(_L("2: Band Level Down\n"));
+		iConsole->Printf(_L("3: Show Band info\n"));
+		break;
+
+	case EEnvironmentalReverb1:
+		iConsole->Printf(_L("0: Main Menu\n"));
+		iConsole->Printf(_L("1: Enable/Disable\n"));
+		iConsole->Printf(_L("2: Toggle Enforce\n"));
+		iConsole->Printf(_L("3: Test Case 1\n"));
+		iConsole->Printf(_L("4: Test Case 2\n"));
+		iConsole->Printf(_L("5: Test Case 3\n"));
+		iConsole->Printf(_L("6: Undef\n"));
+		iConsole->Printf(_L("7: Undef\n"));
+		iConsole->Printf(_L("8: Apply Settings\n"));
+		iConsole->Printf(_L("9: Del Env Reverb\n"));
+		break;
+	case EEnvironmentalReverb2:
+		iConsole->Printf(_L("0: Main Menu\n"));
+		iConsole->Printf(_L("1: \n"));
+		iConsole->Printf(_L("2: \n"));
+		iConsole->Printf(_L("3: \n"));
+		iConsole->Printf(_L("4: \n"));
+		iConsole->Printf(_L("5: \n"));
+		iConsole->Printf(_L("6: \n"));
+		iConsole->Printf(_L("7: More\n"));
+		iConsole->Printf(_L("8: Apply Settings\n"));
+		iConsole->Printf(_L("9: Del Env Reverb\n"));
+		break;
+
+	case EStereoWidening:
+		iConsole->Printf(_L("0: Main Menu\n"));
+		iConsole->Printf(_L("1: Enable/Disable\n"));
+		iConsole->Printf(_L("2: Toggle Enforce\n"));
+		iConsole->Printf(_L("3: Set Widening Level\n"));
+		iConsole->Printf(_L("4: Apply Settings\n"));
+		iConsole->Printf(_L("9: Delete Effect\n"));
+		break;
+
+
+	case EStereoWideningLevel:
+		iConsole->Printf(_L("0: StereoWidening Menu\n"));
+		iConsole->Printf(_L("1: Level Up\n"));
+		iConsole->Printf(_L("2: Level Down\n"));
+		iConsole->Printf(_L("3: Show Effect info\n"));
+		iConsole->Printf(_L("9: Go Back\n"));
+		break;
+
+
+
+		default:
+		// Do nothing
+		break;
+	}
+	iConsole->Printf(KNewLine);
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> MAIN
+//
+//////////////////////////////////////////////////////////////////////////////
+
+void CConsoleTest::ProcessMain(TChar aChar)
+{
+
+	if ( !iInitStatus )
+	{
+		switch (aChar)
+		{
+		case '1':
+			iMenu = iParentMenu = EPlay;
+			ShowMenu();
+			break;
+
+		case '2':
+			iMenu = iParentMenu = EPlay;
+			ShowMenu();
+			break;
+
+		case '3':
+			iMenu = iParentMenu = EPlay;
+			ShowMenu();
+			break;
+
+		case '9':
+			iConsole->Printf(_L("Stopping Scheduler...\n"));
+			CActiveScheduler::Stop();
+			iConsole->Printf(_L("Exiting...\n"));
+			break;
+
+
+		default:
+			iConsole->Printf(_L("ProcessMain - Unknown command\n"));
+			break;
+		};
+	}
+	else
+		iConsole->Printf(_L("Not Ready!\n"));
+
+
+
+	// Issue another request
+	RequestCharacter();
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> Play menu
+//
+//////////////////////////////////////////////////////////////////////////////
+
+void CConsoleTest::ProcessPlayL(TChar aChar)
+{
+	switch (aChar)
+	{
+	case '0':	// Main Menu
+		iMenu = EMain;
+		ShowMenu();
+		break;
+
+	case '1':	// Equalizer
+		iMenu = EEqualizer;
+		if (!iPlayerAudioEqualizer)
+			{
+			iPlayerAudioEqualizer = CAudioEqualizer::NewL(*iAudioPlayer);
+			iPlayerAudioEqualizer->RegisterObserverL(*this);
+			}
+		iAudioEqualizer = iPlayerAudioEqualizer;
+		ShowMenu();
+		break;
+
+	case '2':	// Environmental Reverb
+		iMenu = EEnvironmentalReverb1;
+		if (!iPlayerEnvironmentalReverb)
+			{
+			iPlayerEnvironmentalReverb = CEnvironmentalReverb::NewL(*iAudioPlayer);
+			iPlayerEnvironmentalReverb->RegisterObserverL(*this);
+			}
+		iEnvironmentalReverb = iPlayerEnvironmentalReverb;
+		ShowMenu();
+		break;
+
+
+	case '3':	// Stereo Widening
+		iMenu = EStereoWidening;
+		if (!iPlayerStereoWidening)
+			{
+			iPlayerStereoWidening = CStereoWidening::NewL(*iAudioPlayer,EFalse,5);
+			iPlayerStereoWidening->RegisterObserverL(*this);
+			}
+		iStereoWidening = iPlayerStereoWidening;
+		ShowMenu();
+		break;
+
+
+
+	default:
+		iConsole->Printf(_L("Play Menu - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> Equalizer Menu
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
+void CConsoleTest::ProcessEqualizerL(TChar aChar)
+{
+	TInt32 min, max;
+
+	switch (aChar)
+	{
+	case '0':	// Main Menu
+		iMenu = EMain;
+		ShowMenu();
+		break;
+
+	case '1':	// Enable / disable
+		if ( iAudioEqualizer->IsEnabled() )
+			iAudioEqualizer->DisableL();
+		else
+			iAudioEqualizer->EnableL();
+
+		break;
+
+	case '2':	// Enforce
+		if ( iAudioEqualizer->IsEnforced() )
+			iAudioEqualizer->EnforceL(EFalse);
+		else
+			iAudioEqualizer->EnforceL(ETrue);
+		break;
+
+	case '3':	// Set Band Level
+		iMenu = EBandId;
+		iConsole->Printf(_L("Enter Band ID: "));
+		break;
+
+	case '4':	// Print Equalizer information
+		iConsole->Printf(_L("Enabled: %d\n"), iAudioEqualizer->IsEnabled());
+		iConsole->Printf(_L("Enforced: %d\n"), iAudioEqualizer->IsEnforced());
+		iConsole->Printf(_L("Number Of Bands: %d\n"), iAudioEqualizer->NumberOfBands());
+		iAudioEqualizer->DbLevelLimits(min,max);
+		iConsole->Printf(_L("Db Min %d, Max %d\n"), min, max );
+		break;
+
+	case '5':	// Print Band Info
+		iMenu = EBandId;
+		iConsole->Printf(_L("Enter Band ID: "));
+		break;
+
+	case '6':	// Apply Settings
+		iAudioEqualizer->ApplyL();
+		break;
+
+	case '9':	// Delete volume object
+		if (iParentMenu == EPlay)
+			{
+			delete iAudioEqualizer;
+			iAudioEqualizer = NULL;
+			iPlayerAudioEqualizer = NULL;
+			}
+
+		if (iParentMenu == ERecord)
+			{
+			delete iAudioEqualizer;
+			iAudioEqualizer = NULL;
+			iRecorderAudioEqualizer = NULL;
+			}
+		break;
+
+	default:
+		iConsole->Printf(_L("ProcessEqualizerL - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> Band Menu
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
+void CConsoleTest::ProcessBandId(TChar aChar)
+{
+	iBandId = aChar.GetNumericValue();
+	iMenu = EBandLevel;
+	ShowMenu();
+	RequestCharacter();
+
+}
+
+
+void CConsoleTest::ProcessBandLevelL(TChar aChar)
+{
+	switch (aChar)
+	{
+	case '0':	// Main Menu
+		iMenu = EEqualizer;
+		ShowMenu();
+		break;
+
+	case '1':	// Level UP
+		ShowMenu();
+		iAudioEqualizer->SetBandLevelL(iBandId, iAudioEqualizer->BandLevel(iBandId) + 1);
+		iConsole->Printf(_L("Band[%d] Level[%d]\n"), iBandId, iAudioEqualizer->BandLevel(iBandId) );
+		//iAudioEqualizer->ApplyL();
+		break;
+
+	case '2':	// Level Down
+		ShowMenu();
+		iAudioEqualizer->SetBandLevelL(iBandId, iAudioEqualizer->BandLevel(iBandId) - 1);
+		iConsole->Printf(_L("Band[%d] Level[%d]\n"), iBandId, iAudioEqualizer->BandLevel(iBandId) );
+		//iAudioEqualizer->ApplyL();
+		break;
+
+	case '3':	// Print Band information
+		iConsole->Printf(_L("Band Number: %d\n"), iBandId);
+		iConsole->Printf(_L("BandLevel: %d\n"), iAudioEqualizer->BandLevel(iBandId));
+		iConsole->Printf(_L("BandWidth: %d\n"), iAudioEqualizer->BandWidth(iBandId));
+		iConsole->Printf(_L("Crossover Fequency %d\n"), iAudioEqualizer->CrossoverFrequency(iBandId));
+		iConsole->Printf(_L("Center Fequency %d\n"), iAudioEqualizer->CenterFrequency(iBandId));
+		break;
+
+	default:
+		iConsole->Printf(_L("ProcessEqualizerL - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> Stereo Widening Menu
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
+void CConsoleTest::ProcessStereoWideningL(TChar aChar)
+{
+
+	switch (aChar)
+	{
+	case '0':	// Main Menu
+		iMenu = EMain;
+		ShowMenu();
+		break;
+
+	case '1':	// Enable / disable
+		if ( iStereoWidening->IsEnabled() )
+			iStereoWidening->DisableL();
+		else
+			iStereoWidening->EnableL();
+
+		break;
+
+	case '2':	// Enforce
+		if ( iStereoWidening->IsEnforced() )
+			iStereoWidening->EnforceL(EFalse);
+		else
+			iStereoWidening->EnforceL(ETrue);
+		break;
+
+	case '3':	// Set Stereo Widening Level
+		iMenu = EStereoWideningLevel;
+		break;
+
+	case '4':	// Apply Settings
+		iStereoWidening->ApplyL();
+		break;
+
+	case '9':	// Delete volume object
+		if (iParentMenu == EPlay)
+			{
+			delete iStereoWidening;
+			iStereoWidening = NULL;
+			iPlayerStereoWidening = NULL;
+			}
+		if (iParentMenu == ERecord)
+			{
+			delete iStereoWidening;
+			iStereoWidening = NULL;
+			iRecorderStereoWidening = NULL;
+			}
+
+			iMenu = EMain;
+			ShowMenu();
+			break;
+
+	default:
+		iConsole->Printf(_L("ProcessStereoWideningL - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+void CConsoleTest::ProcessStereoWideningLevelL(TChar aChar)
+{
+
+	ShowMenu();
+	switch (aChar)
+	{
+
+	case '1':	// Level UP
+		ShowMenu();
+		iStereoWidening->SetStereoWideningLevelL(iStereoWidening->StereoWideningLevel() + 1);
+		iConsole->Printf(_L("Level[%d]\n"), iStereoWidening->StereoWideningLevel() );
+		break;
+
+	case '2':	// Level Down
+		ShowMenu();
+		iStereoWidening->SetStereoWideningLevelL(iStereoWidening->StereoWideningLevel() - 1);
+		iConsole->Printf(_L("Level[%d]\n"), iStereoWidening->StereoWideningLevel() );
+		break;
+
+	case '3':	// Print Level information
+		iConsole->Printf(_L("Level: %d\n"), iStereoWidening->StereoWideningLevel());
+		iConsole->Printf(_L("Continuous Level %d\n"), iStereoWidening->IsContinuousLevelSupported());
+		break;
+	case '9':	// Main Menu
+		iMenu = EStereoWidening;
+		ShowMenu();
+		break;
+
+	default:
+		iConsole->Printf(_L("ProcessStereoWideningL - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// -----> Environmental reverb Menu
+//
+//////////////////////////////////////////////////////////////////////////////
+
+void CConsoleTest::InitializeTestData()
+{
+	iGoodData.Append(1000); // Decay HF Ratio
+	iGoodData.Append(1000); // Decay Time
+	iGoodData.Append(1000); // Density
+	iGoodData.Append(1000); // Diffusion
+	iGoodData.Append(1000); // Reflections Delay
+	iGoodData.Append(1000); // Reflections Level
+	iGoodData.Append(1000); // Reverb Delay
+	iGoodData.Append(1000); // Reverb Level
+	iGoodData.Append(1000); // Room HF Level
+	iGoodData.Append(1000); // Room Level
+
+	iBadData.Append(50000); // Decay HF Ratio
+	iBadData.Append(300000); // Decay Time
+	iBadData.Append(10005); // Density
+	iBadData.Append(10005); // Diffusion
+	iBadData.Append(300000); // Reflections Delay
+	iBadData.Append(2000); // Reflections Level
+	iBadData.Append(300000); // Reverb Delay
+	iBadData.Append(2000); // Reverb Level
+	iBadData.Append(2000); // Room HF Level
+	iBadData.Append(2000); // Room Level
+
+}
+
+void CConsoleTest::ProcessEnvironmentalReverbL(TChar aChar)
+{
+
+	switch (aChar)
+	{
+	case '0':	// Main Menu
+		iMenu = EMain;
+		ShowMenu();
+		break;
+
+	case '1':	// Enable / disable
+		if ( iEnvironmentalReverb->IsEnabled() )
+			iEnvironmentalReverb->DisableL();
+		else
+			iEnvironmentalReverb->EnableL();
+
+		break;
+
+	case '2':	// Enforce
+		if ( iEnvironmentalReverb->IsEnforced() )
+			iEnvironmentalReverb->EnforceL(EFalse);
+		else
+			iEnvironmentalReverb->EnforceL(ETrue);
+		break;
+
+	case '3':	// Test 1: Setters normal case
+		TestCase1();
+		break;
+
+	case '4':	// Test 2: Setters abnormal case
+		TestCase2();
+		break;
+
+	case '5':	// Test 3: Getters abnormal case
+		TestCase3();
+		break;
+
+	case '8':	// Apply Settings
+		iEnvironmentalReverb->ApplyL();
+		break;
+
+	case '9':	// Delete environmental reverb object
+		if (iParentMenu == EPlay)
+			{
+			delete iEnvironmentalReverb;
+			iEnvironmentalReverb = NULL;
+			iPlayerEnvironmentalReverb = NULL;
+			}
+
+		if (iParentMenu == ERecord)
+			{
+			delete iEnvironmentalReverb;
+			iEnvironmentalReverb = NULL;
+			iRecorderEnvironmentalReverb = NULL;
+			}
+		break;
+
+	default:
+		iConsole->Printf(_L("ProcessEnvironmentalReverbL - Unknown command\n"));
+		break;
+	};
+
+	// Issue another request
+	RequestCharacter();
+}
+
+void CConsoleTest::TestCase1()
+{
+	TRAPD(err1, iEnvironmentalReverb->SetDecayHFRatioL(iGoodData[0]));
+	iConsole->Printf(_L("Result 1.1 - %d\n"),err1);
+	TRAPD(err2, iEnvironmentalReverb->SetDecayTimeL(iGoodData[1]));
+	iConsole->Printf(_L("Result 1.2 - %d\n"),err2);
+	TRAPD(err3, iEnvironmentalReverb->SetDensityL(iGoodData[2]));
+	iConsole->Printf(_L("Result 1.3 - %d\n"),err3);
+	TRAPD(err4, iEnvironmentalReverb->SetDiffusionL(iGoodData[3]));
+	iConsole->Printf(_L("Result 1.4 - %d\n"),err4);
+	TRAPD(err5, iEnvironmentalReverb->SetReflectionsDelayL(iGoodData[4]));
+	iConsole->Printf(_L("Result 1.5 - %d\n"),err5);
+	TRAPD(err6, iEnvironmentalReverb->SetReverbDelayL(iGoodData[6]));
+	iConsole->Printf(_L("Result 1.6 - %d\n"),err6);
+	TRAPD(err7, iEnvironmentalReverb->SetReverbLevelL(iGoodData[7]));
+	iConsole->Printf(_L("Result 1.7 - %d\n"),err7);
+	TRAPD(err8, iEnvironmentalReverb->SetRoomHFLevelL(iGoodData[8]));
+	iConsole->Printf(_L("Result 1.8 - %d\n"),err8);
+	TRAPD(err9, iEnvironmentalReverb->SetRoomLevelL(iGoodData[9]));
+	iConsole->Printf(_L("Result 1.9 - %d\n"),err9);
+	TRAPD(err10, iEnvironmentalReverb->SetReflectionsLevelL(iGoodData[5]));
+	iConsole->Printf(_L("Result 1.10 - %d\n"),err10);
+}
+
+void CConsoleTest::TestCase2()
+{
+	TRAPD(err1, iEnvironmentalReverb->SetDecayHFRatioL(iBadData[0]));
+	iConsole->Printf(_L("Result 1.1 - %d\n"),err1);
+	TRAPD(err2, iEnvironmentalReverb->SetDecayTimeL(iBadData[1]));
+	iConsole->Printf(_L("Result 1.2 - %d\n"),err2);
+	TRAPD(err3, iEnvironmentalReverb->SetDensityL(iBadData[2]));
+	iConsole->Printf(_L("Result 1.3 - %d\n"),err3);
+	TRAPD(err4, iEnvironmentalReverb->SetDiffusionL(iBadData[3]));
+	iConsole->Printf(_L("Result 1.4 - %d\n"),err4);
+	TRAPD(err5, iEnvironmentalReverb->SetReflectionsDelayL(iBadData[4]));
+	iConsole->Printf(_L("Result 1.5 - %d\n"),err5);
+	TRAPD(err6, iEnvironmentalReverb->SetReverbDelayL(iBadData[6]));
+	iConsole->Printf(_L("Result 1.6 - %d\n"),err6);
+	TRAPD(err7, iEnvironmentalReverb->SetReverbLevelL(iBadData[7]));
+	iConsole->Printf(_L("Result 1.7 - %d\n"),err7);
+	TRAPD(err8, iEnvironmentalReverb->SetRoomHFLevelL(iBadData[8]));
+	iConsole->Printf(_L("Result 1.8 - %d\n"),err8);
+	TRAPD(err9, iEnvironmentalReverb->SetRoomLevelL(iBadData[9]));
+	iConsole->Printf(_L("Result 1.9 - %d\n"),err9);
+	TRAPD(err10, iEnvironmentalReverb->SetReflectionsLevelL(iBadData[5]));
+	iConsole->Printf(_L("Result 1.10 - %d\n"),err10);
+}
+
+void CConsoleTest::TestCase3()
+{
+	if ( iEnvironmentalReverb->DecayHFRatio() == iGoodData[0] )
+		iConsole->Printf(_L("Result 3.1 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.1 - 0\n"));
+
+	if ( iEnvironmentalReverb->DecayTime() == iGoodData[1] )
+		iConsole->Printf(_L("Result 3.2 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.2 - 0\n"));
+
+	if ( iEnvironmentalReverb->Density() == iGoodData[2] )
+		iConsole->Printf(_L("Result 3.3 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.3 - 0\n"));
+
+	if ( iEnvironmentalReverb->Diffusion() == iGoodData[3] )
+		iConsole->Printf(_L("Result 3.4 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.4 - 0\n"));
+
+	if ( iEnvironmentalReverb->ReflectionsDelay() == iGoodData[4] )
+		iConsole->Printf(_L("Result 3.5 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.5 - 0\n"));
+
+	if ( iEnvironmentalReverb->ReflectionsLevel() == iGoodData[5] )
+		iConsole->Printf(_L("Result 3.6 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.6 - 0\n"));
+
+	if ( iEnvironmentalReverb->ReverbDelay() == iGoodData[6] )
+		iConsole->Printf(_L("Result 3.7 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.7 - 0\n"));
+
+	if ( iEnvironmentalReverb->ReverbLevel() == iGoodData[7] )
+		iConsole->Printf(_L("Result 3.8 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.8 - 0\n"));
+
+	if ( iEnvironmentalReverb->RoomHFLevel() == iGoodData[8] )
+		iConsole->Printf(_L("Result 3.9 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.9 - 0\n"));
+
+	if ( iEnvironmentalReverb->RoomLevel() == iGoodData[9] )
+		iConsole->Printf(_L("Result 3.10 - 1\n"));
+	else
+		iConsole->Printf(_L("Result 3.10 - 0\n"));
+}
+
+/************************************************************************************************************/
+
+
+
+
+void CConsoleTest::MapcInitComplete(TInt aStatus, const TTimeIntervalMicroSeconds& aDuration)
+	{
+	iConsole->Printf(_L("MapcInit: %d\n"), aStatus);
+	iInitStatus = aStatus;
+	TInt d = I64INT(aDuration.Int64());
+	RDebug::Print(_L("CConsoleTest::MapcInitComplete :-> Status[%d] Duration[%d]"), aStatus, d);
+	}
+
+void CConsoleTest::MapcPlayComplete(TInt aErr)
+	{
+	iConsole->Printf(_L("MapcPlay: %d"), aErr);
+	RDebug::Print(_L("CConsoleTest::MapcPlayComplete :-> Error[%d]"), aErr);
+	}
+
+void CConsoleTest::EffectChanged( const CAudioEffect* aAudioEffect, TUint8 aEvent )
+	{
+	RDebug::Print(_L("CConsoleTest::EffectChanged, Event = %d "), aEvent);
+
+	if ( aAudioEffect->Uid() == KUidAudioEqualizerEffect )
+		{
+		if ( aEvent == KEnabled )
+			{
+			iConsole->Printf(_L("Equalizer state: %d"), ((CAudioEqualizer*)aAudioEffect)->IsEnabled());
+			RDebug::Print(_L("CConsoleTest::EffectChanged :-> Enabled[%d]"), ((CAudioEqualizer*)aAudioEffect)->IsEnabled());
+			}
+		}
+	else if ( aAudioEffect->Uid() == KUidStereoWideningEffect )
+			{
+			if ( aEvent == KEnabled )
+				{
+				iConsole->Printf(_L("StereoWidening state: %d"), ((CStereoWidening*)aAudioEffect)->IsEnabled());
+				RDebug::Print(_L("CConsoleTest::EffectChanged :-> Enabled[%d]"), ((CStereoWidening*)aAudioEffect)->IsEnabled());
+				}
+			else
+				{
+				iConsole->Printf(_L("StereoWidening state: %d"), ((CStereoWidening*)aAudioEffect)->IsEnabled());
+				RDebug::Print(_L("CConsoleTest::EffectChanged :-> Enabled[%d]"), ((CStereoWidening*)aAudioEffect)->IsEnabled());
+				}
+			}
+
+
+	}
+
+void CConsoleTest::MoscoStateChangeEvent(CBase* /*aObject*/, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode)
+	{
+	RDebug::Print(_L("aPreviousState[%d], aCurrentState[%d], aErrorCode[%d]"), aPreviousState, aCurrentState, aErrorCode);
+	iInitStatus = aErrorCode;
+	iConsole->Printf(_L("Mosco: %d\n"), aErrorCode);
+	}
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Do the testing
+//
+//////////////////////////////////////////////////////////////////////////////
+LOCAL_C void doTestL()
+{
+
+	CConsoleBase* console = Console::NewL(KTxtDBTest,TSize(KConsFullScreen,KConsFullScreen));
+	CleanupStack::PushL(console);
+
+	CmyActiveScheduler* myScheduler = new (ELeave) CmyActiveScheduler;
+	CleanupStack::PushL(myScheduler);
+	CActiveScheduler::Install(myScheduler);
+
+	// Create a CConsoleTest active object
+	CConsoleTest* consoleTest = CConsoleTest::NewLC(console);
+	consoleTest->ShowMenu();
+	// Issue the first request
+	consoleTest->RequestCharacter();
+
+#ifdef __WINS__
+	_LIT(KTitleMsg,"Ready!\nPress ESC to end.\n\n");
+#else
+	_LIT(KTitleMsg,"Press SPACE(0) to end.\n");
+#endif
+	console->Printf(KTitleMsg);
+//	test.Title();
+
+	// Main part of program is a wait loop
+	// This function completes when the scheduler stops
+	CActiveScheduler::Start();
+
+	_LIT(KTxtPressAnyKey," [press any key]");
+	console->Printf(KTxtPressAnyKey);
+	console->Getch();					// get and ignore character
+
+	// Remove from the cleanup stack and destroy:
+	// 1. consoleTest
+	// 2. myScheduler
+	// 3. console
+	CleanupStack::PopAndDestroy(3);
+}
+