mmaudio_pub/audio_effects_presets_api/tsrc/EffectPresetsTest/src/EffectPresetTestCore.cpp
changeset 0 b8ed18f6c07b
child 5 b220a9341636
equal deleted inserted replaced
-1:000000000000 0:b8ed18f6c07b
       
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  EffectsPresets
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <e32svr.h>
       
    20 #include <e32cons.h>
       
    21 
       
    22 #include "EffectPresetTestCore.h"
       
    23 
       
    24 #include <AudioEffectBase.h>
       
    25 #include <AudioEqualizerBase.h>
       
    26 #include <EnvironmentalReverbBase.h>
       
    27 #include <StereoWideningBase.h>
       
    28 /*==================================================================================
       
    29 //  CTestAudioEffect
       
    30 //
       
    31 //  This is the base class for Test classes
       
    32 ====================================================================================*/
       
    33 CTestAudioEffectPreset::CTestAudioEffectPreset(CStifLogger * aLogger)
       
    34 {
       
    35 	iLogger = aLogger;
       
    36 //	iAudioEffectPreset = NULL;
       
    37 }
       
    38 
       
    39 CTestAudioEffectPreset::~CTestAudioEffectPreset()
       
    40 {
       
    41 }
       
    42 
       
    43 
       
    44 
       
    45 void CTestAudioEffectPreset::PrintError(TInt err)
       
    46 {
       
    47     iLogger->Log(_L("Return Error: %d"), err);
       
    48 }
       
    49 
       
    50 
       
    51 void CTestAudioEffectPreset::CreateNextPresetName(TInt aNextPresetNumber)
       
    52 {
       
    53 	TBuf<5> num;
       
    54 	num.Format(_L("%3d"), aNextPresetNumber);
       
    55 	// Convert to an 8-bit string for output to Logfile...
       
    56 	iPresetName.Copy(_L("Preset"));
       
    57 	iPresetName.Append(num);
       
    58 
       
    59 	iLogger->Log(_L("CreateNextPresetName = %S"), &iPresetName );
       
    60 
       
    61 }
       
    62 
       
    63 TInt CTestAudioEffectPreset::ProcessTag(CStifItemParser *aItem, TTestResult & aResult)
       
    64 {
       
    65 	// Only invalid tag was met, this function get called.
       
    66 
       
    67 	TInt err = KErrConfigInvalid;
       
    68 	TPtrC tag;
       
    69 
       
    70 	aItem->GetString(_L(""), tag);
       
    71 	iLogger->Log(_L("unsupported tag = %S"), &tag);
       
    72 
       
    73 	aResult.iResult = KErrConfigInvalid;
       
    74 	aResult.iResultDes.Copy(KTestCaseInvalidTag());
       
    75 
       
    76 	return err;
       
    77 }
       
    78 
       
    79 
       
    80 
       
    81 /*==================================================================================
       
    82 //  CTestAudioEqualizerUtility
       
    83 ====================================================================================*/
       
    84 
       
    85 TInt CTestAudioEqualizerUtility::CreateNewPreset(CStifItemParser *aItem, TTestResult & aResult)
       
    86 {
       
    87 	TInt err=KErrNone;
       
    88 
       
    89 	TPtrC aPresetName;
       
    90 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
    91 
       
    92 	err = aItem->GetString(KTagCreatePreset, aPresetName);
       
    93 
       
    94 	if(err)
       
    95 	{
       
    96 		iLogger->Log(_L("Missing Preset name. use default"));
       
    97 		CreateNextPresetName(presetData.Count() + 1);
       
    98 		aPresetName.Set(iPresetName);
       
    99 	}
       
   100 
       
   101 	TRAP(err, iAudioEqualizerUtility->CreatePresetL(aPresetName, *iAudioEqualizer));
       
   102 
       
   103 	aResult.iResult = err;
       
   104 	if (err)
       
   105 	{
       
   106 		iLogger->Log(_L("ApplyPresetL Failed."));
       
   107 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   108 	}
       
   109 	else
       
   110 	{
       
   111 		iLogger->Log(_L("ApplyPresetL Successful."));
       
   112 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   113 	}
       
   114 
       
   115 	return err;
       
   116 }
       
   117 
       
   118 
       
   119 TInt CTestAudioEqualizerUtility::ApplyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   120 {
       
   121 	TInt err=KErrNone;
       
   122 	TInt aPresetIndex;
       
   123 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   124 
       
   125 	err = aItem->GetInt(KTagApplyPreset, aPresetIndex);
       
   126 
       
   127 	if(err)
       
   128 	{
       
   129 		iLogger->Log(_L("Missing Preset index. use default"));
       
   130 		aPresetIndex = presetData.Count() - 1;
       
   131 
       
   132 	}
       
   133 
       
   134 	TRAP(err, iAudioEqualizerUtility->ApplyPresetL(aPresetIndex));
       
   135 
       
   136 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   137 	{
       
   138 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   139 		err = KErrNone;
       
   140 	}
       
   141 	
       
   142 	aResult.iResult = err;
       
   143 	if (err)
       
   144 	{
       
   145 		iLogger->Log(_L("ApplyPresetL Failed."));
       
   146 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   147 	}
       
   148 	else
       
   149 	{
       
   150 		iLogger->Log(_L("ApplyPresetL Successful."));
       
   151 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   152 	}
       
   153 	return err;
       
   154 }
       
   155 
       
   156 
       
   157 TInt CTestAudioEqualizerUtility::ModifyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   158 {
       
   159 	TInt err=KErrNone;
       
   160 	TInt aPresetIndex;
       
   161 	TPtrC aPresetName;
       
   162 
       
   163 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   164 
       
   165 	err = aItem->GetInt(KTagModifyPreset, aPresetIndex);
       
   166 
       
   167 	if(err)
       
   168 	{
       
   169 		iLogger->Log(_L("Missing Preset index. use default"));
       
   170 		aPresetIndex = presetData.Count() - 1;
       
   171 	}
       
   172 
       
   173 	err = aItem->GetNextString(KTagModifyPreset, aPresetName);
       
   174 
       
   175 	if(err)
       
   176 	{
       
   177 		iLogger->Log(_L("Missing Preset name. use default"));
       
   178 		CreateNextPresetName(presetData.Count() + 1);
       
   179 		aPresetName.Set(iPresetName);
       
   180 	}
       
   181 
       
   182 	TInt32 oldLevel = iAudioEqualizer->BandLevel(1);
       
   183 	TRAP(err, iAudioEqualizer->SetBandLevelL(1, oldLevel + 1 ));
       
   184 
       
   185 	if (err)
       
   186 	{
       
   187 		iLogger->Log(_L("SetBandLevelL Failed."));
       
   188 	}
       
   189 	else
       
   190 	{
       
   191 		TRAP(err, iAudioEqualizerUtility->ModifyPresetL(aPresetIndex,aPresetName,*iAudioEqualizer));
       
   192 	}
       
   193 	
       
   194 	if ( (aPresetIndex > 500 ) && (err == KErrArgument)) 
       
   195 	{
       
   196 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   197 		err = KErrNone;
       
   198 	}
       
   199 
       
   200 	aResult.iResult = err;
       
   201 	if (err)
       
   202 	{
       
   203 		iLogger->Log(_L("ModifyPresetL Failed."));
       
   204 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   205 	}
       
   206 	else
       
   207 	{
       
   208 		iLogger->Log(_L("ModifyPresetL Successful."));
       
   209 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   210 	}
       
   211 
       
   212 	return err;
       
   213 }
       
   214 
       
   215 
       
   216 TInt CTestAudioEqualizerUtility::ResetPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   217 {
       
   218 	TInt err=KErrNone;
       
   219 	TInt aPresetIndex;
       
   220 
       
   221 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   222 
       
   223 	err = aItem->GetInt(KTagResetPreset, aPresetIndex);
       
   224 
       
   225 	if(err)
       
   226 	{
       
   227 		iLogger->Log(_L("Missing Preset index. use default"));
       
   228 		aPresetIndex = presetData.Count() - 1;
       
   229 
       
   230 	}
       
   231 
       
   232 	TRAP(err, iAudioEqualizerUtility->ResetPresetL(aPresetIndex));
       
   233 	
       
   234 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   235 	{
       
   236 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   237 		err = KErrNone;
       
   238 	}
       
   239 
       
   240 	aResult.iResult = err;
       
   241 	if (err)
       
   242 	{
       
   243 		iLogger->Log(_L("ResetPresetL Failed."));
       
   244 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   245 	}
       
   246 	else
       
   247 	{
       
   248 		iLogger->Log(_L("ResetPresetL Successful."));
       
   249 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   250 	}
       
   251 
       
   252 	return err;
       
   253 }
       
   254 
       
   255 
       
   256 TInt CTestAudioEqualizerUtility::DeletePreset(CStifItemParser *aItem, TTestResult & aResult)
       
   257 {
       
   258 	TInt err=KErrNone;
       
   259 	TInt aPresetIndex;
       
   260 	TUint32 aPredefinedPreset = 0;
       
   261 	TPtrC aPresetName;
       
   262 
       
   263 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   264 	TInt count = presetData.Count();
       
   265 
       
   266 	TRAP(err, aPredefinedPreset=iAudioEqualizerUtility->NumberOfPreDefinedPresets());
       
   267 	
       
   268 	iLogger->Log(_L("presetData.Count() = %d"), count);
       
   269 	iLogger->Log(_L("NumberOfPreDefinedPresets() = %d"), aPredefinedPreset);
       
   270 	
       
   271 	if (err or (aPredefinedPreset==count))											
       
   272 		{																			
       
   273 		iLogger->Log(_L("DeletePresetL Failed.(Create a Preset before)"));			
       
   274 		aResult.iResultDes.Copy(KTestCaseResultFail());								
       
   275 		return err;																	
       
   276 		}																			
       
   277 	
       
   278 	err = aItem->GetInt(KTagDeletePreset, aPresetIndex);
       
   279 
       
   280 	if(/*count < aPresetIndex ||*/ err)
       
   281 	{
       
   282 		iLogger->Log(_L("Missing Preset index. use default"));
       
   283 		aPresetIndex = presetData.Count() - 1;
       
   284 	}
       
   285 
       
   286 	TRAP(err, iAudioEqualizerUtility->DeletePresetL(aPresetIndex));
       
   287 	
       
   288 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   289 	{
       
   290 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   291 		err = KErrNone;
       
   292 	}
       
   293 
       
   294 	aResult.iResult = err;
       
   295 	if (err)
       
   296 	{
       
   297 		iLogger->Log(_L("DeletePresetL Failed."));
       
   298 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   299 	}
       
   300 	else
       
   301 	{
       
   302 		iLogger->Log(_L("DeletePresetL Successful."));
       
   303 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   304 	}
       
   305 
       
   306 	return err;
       
   307 }
       
   308 
       
   309 TInt CTestAudioEqualizerUtility::GetPreset(CStifItemParser *aItem,TTestResult & aResult)
       
   310 	{
       
   311 		TInt err=KErrNone;
       
   312 		TInt aPresetIndex;
       
   313 		TBuf16<256> aPreset;
       
   314 
       
   315 		TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   316 		err = aItem->GetInt(KTagGetPreset, aPresetIndex);
       
   317 		if (err)
       
   318 			{
       
   319 			iLogger->Log(_L("Missing Preset index. use default"));
       
   320 			aPresetIndex = presetData.Count() - 1;
       
   321 			}
       
   322 
       
   323 		if (aPresetIndex<0)
       
   324 			{
       
   325 			iLogger->Log(_L("Missing Preset index. Can not GetPreset."));
       
   326 			}
       
   327 		else
       
   328 			{
       
   329 			TRAP(err, aPreset.Copy(iAudioEqualizerUtility->GetPresetL(aPresetIndex)));
       
   330 			}
       
   331 			
       
   332 		if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   333 		{
       
   334 			iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   335 			err = KErrNone;
       
   336 		}
       
   337 		
       
   338 		aResult.iResult = err;
       
   339 		if (err)
       
   340 		{
       
   341 			iLogger->Log(_L("GetPresetL Failed."));
       
   342 			aResult.iResultDes.Copy(KTestCaseResultFail());
       
   343 		}
       
   344 		else
       
   345 		{
       
   346 			RDebug::Print(_L("GetPresetL: %S"),&aPreset);
       
   347 			iLogger->Log(_L("GetPresetL Successful."));
       
   348 			aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   349 		}
       
   350 		return err;
       
   351 	}
       
   352 
       
   353 TUint32 CTestAudioEqualizerUtility::NumberOfPreDefinePresets(TTestResult & aResult)
       
   354 	{
       
   355 		TInt err=KErrNone;
       
   356 		TUint32 aPredefinedPreset = 0;
       
   357 
       
   358 		TRAP(err, aPredefinedPreset=iAudioEqualizerUtility->NumberOfPreDefinedPresets());
       
   359 		aResult.iResult = err;
       
   360 		if (err)
       
   361 		{
       
   362 			iLogger->Log(_L("NumberOfPreDefinePresets Failed."));
       
   363 			aResult.iResultDes.Copy(KTestCaseResultFail());
       
   364 		}
       
   365 		else
       
   366 		{
       
   367 			RDebug::Print(_L("NumberOfPreDefinePresets: %d"),aPredefinedPreset);
       
   368 			iLogger->Log(_L("NumberOfPreDefinePresets Successful."),aPredefinedPreset);
       
   369 			aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   370 		}
       
   371 		return err;
       
   372 	}
       
   373 
       
   374 TInt CTestAudioEqualizerUtility::DisableEffect(CStifItemParser  */*aItem*/, TTestResult & aResult)
       
   375 {
       
   376 	TInt err=KErrNone;
       
   377 
       
   378 	TRAP(err, iAudioEqualizerUtility->DisableEqualizerL());
       
   379 
       
   380 	aResult.iResult = err;
       
   381 	if (err)
       
   382 	{
       
   383 		iLogger->Log(_L("DisableEqualizerL Failed."));
       
   384 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   385 	}
       
   386 	else
       
   387 	{
       
   388 		iLogger->Log(_L("DisableEqualizerL Successful."));
       
   389 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   390 	}
       
   391 
       
   392 	return err;
       
   393 }
       
   394 
       
   395 TInt CTestAudioEqualizerUtility::BassBoostTest(CStifItemParser  */*aItem*/, TTestResult & aResult)
       
   396 {
       
   397 	TInt err=KErrNone;
       
   398 
       
   399 	CBassBoost* bassBoost = NULL;
       
   400 	//iBassBoost = &iAudioEqualizerUtility->BassBoost();
       
   401 	TRAP(err, bassBoost = &iAudioEqualizerUtility->BassBoost());
       
   402 
       
   403 	aResult.iResult = err;
       
   404 	if (err)
       
   405 		{
       
   406 		iLogger->Log(_L("iAudioEqualizerUtility->BassBoost Failed. [%d]"),err);
       
   407 		RDebug::Print(_L("iAudioEqualizerUtility->BassBoost Failed. [%d]"),err);
       
   408 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   409 		}
       
   410 	else
       
   411 		{
       
   412 		iLogger->Log(_L("iAudioEqualizerUtility->BassBoost Ok. [%d]"),err);
       
   413 		RDebug::Print(_L("iAudioEqualizerUtility->BassBoost Ok. [%d]"),err);
       
   414 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   415 		}
       
   416 
       
   417 	return err;
       
   418 }
       
   419 
       
   420 CTestAudioEqualizerUtility* CTestAudioEqualizerUtility::NewLC (CStifLogger * aLogger)
       
   421 {
       
   422 	CTestAudioEqualizerUtility* self=new (ELeave) CTestAudioEqualizerUtility(aLogger);
       
   423 	CleanupStack::PushL(self);
       
   424 	self->ConstructL();
       
   425 	return self;
       
   426 }
       
   427 
       
   428 CTestAudioEqualizerUtility* CTestAudioEqualizerUtility::NewL (CStifLogger * aLogger)
       
   429 {
       
   430 	CTestAudioEqualizerUtility* self=NewLC(aLogger);
       
   431 	CleanupStack::Pop();
       
   432 	return self;
       
   433 }
       
   434 
       
   435 CTestAudioEqualizerUtility::CTestAudioEqualizerUtility(CStifLogger * aLogger): CTestAudioEffectPreset(aLogger)
       
   436 {
       
   437 }
       
   438 
       
   439 void CTestAudioEqualizerUtility::ConstructL()
       
   440 {
       
   441 }
       
   442 
       
   443 CTestAudioEqualizerUtility::~CTestAudioEqualizerUtility()
       
   444 {
       
   445     DeleteAudioEffect();
       
   446 }
       
   447 
       
   448 void CTestAudioEqualizerUtility::DeleteAudioEffect()
       
   449 {
       
   450 
       
   451 	if(iAudioEqualizerUtility)
       
   452     	delete iAudioEqualizerUtility;
       
   453     iAudioEqualizerUtility = NULL;
       
   454 
       
   455 }
       
   456 
       
   457 
       
   458 TBool CTestAudioEqualizerUtility::AssignEffect()
       
   459 {
       
   460 	iAudioEqualizer =  &(iAudioEqualizerUtility->Equalizer());
       
   461 	return (iAudioEqualizer != NULL);
       
   462 }
       
   463 
       
   464 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioPlayerUtility* aPlayer)
       
   465 {
       
   466 	DeleteAudioEffect();
       
   467 	if (aPlayer)
       
   468 	{
       
   469 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aPlayer));
       
   470 		if ( iError == KErrNone)
       
   471 		{
       
   472 			iLogger->Log(_L("CAudioEqualizerUtility::NewL(*aPlayer)) successful"));
       
   473 			if (!AssignEffect())
       
   474 			{
       
   475 				iLogger->Log(_L("Assign Utility Object failed"));
       
   476 				iError = KErrBadHandle;
       
   477 			}
       
   478 		}
       
   479 		else
       
   480 		{
       
   481 			iLogger->Log(_L("CAudioEqualizerUtility::NewL(*aPlayer)) fail - %d") , iError);
       
   482 		}
       
   483 	}
       
   484 	else
       
   485 	{
       
   486 		iLogger->Log(_L("Create failed: Parameter player is NULL!"));
       
   487 		iError = KErrBadHandle;
       
   488 	}
       
   489 	return iError;
       
   490 }
       
   491 
       
   492 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioRecorderUtility* aRecorder)
       
   493 {
       
   494 	DeleteAudioEffect();
       
   495 	if (aRecorder)
       
   496 	{
       
   497 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aRecorder));
       
   498 		if ( iError == KErrNone)
       
   499 		{
       
   500 			if (!AssignEffect())
       
   501 			{
       
   502 				iLogger->Log(_L("Assign Utility Object failed"));
       
   503 				iError = KErrBadHandle;
       
   504 			}
       
   505 		}
       
   506 	}
       
   507 	else
       
   508 	{
       
   509 		iLogger->Log(_L("Create failed: Parameter Recorder is NULL!"));
       
   510 		iError = KErrBadHandle;
       
   511 	}
       
   512 	return iError;
       
   513 }
       
   514 
       
   515 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioConvertUtility* aConverter)
       
   516 {
       
   517     DeleteAudioEffect();
       
   518     if (aConverter)
       
   519     {
       
   520 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aConverter));
       
   521 		if ( iError == KErrNone)
       
   522 		{
       
   523 			if (!AssignEffect())
       
   524 			{
       
   525 				iLogger->Log(_L("Assign Utility Object failed"));
       
   526 				iError = KErrBadHandle;
       
   527 			}
       
   528 		}
       
   529     }
       
   530 	else
       
   531 	{
       
   532 		iLogger->Log(_L("Create failed: Parameter Converter is NULL!"));
       
   533 		iError = KErrBadHandle;
       
   534 	}
       
   535 
       
   536 	return iError;
       
   537 }
       
   538 
       
   539 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioToneUtility* aTone)
       
   540 {
       
   541     DeleteAudioEffect();
       
   542     if (aTone)
       
   543     {
       
   544 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aTone));
       
   545 		if ( iError == KErrNone)
       
   546 		{
       
   547 			if (!AssignEffect())
       
   548 			{
       
   549 				iLogger->Log(_L("Assign Utility Object failed"));
       
   550 				iError = KErrBadHandle;
       
   551 			}
       
   552 		}
       
   553     }
       
   554 	else
       
   555 	{
       
   556 		iLogger->Log(_L("Create failed: Parameter Tone object is NULL!"));
       
   557 		iError = KErrBadHandle;
       
   558 	}
       
   559 
       
   560 	return iError;
       
   561 }
       
   562 
       
   563 TInt CTestAudioEqualizerUtility::AssignObject(CMMFDevSound* aDevSound)
       
   564 {
       
   565     DeleteAudioEffect();
       
   566     if (aDevSound)
       
   567     {
       
   568 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aDevSound));
       
   569 		if ( iError == KErrNone)
       
   570 		{
       
   571 			if (!AssignEffect())
       
   572 			{
       
   573 				iLogger->Log(_L("Assign Utility Object failed"));
       
   574 				iError = KErrBadHandle;
       
   575 			}
       
   576 		}
       
   577     }
       
   578 	else
       
   579 	{
       
   580 		iLogger->Log(_L("Create failed: Parameter DevSound is NULL!"));
       
   581 		iError = KErrBadHandle;
       
   582 	}
       
   583 
       
   584 	return iError;
       
   585 }
       
   586 
       
   587 
       
   588 TInt CTestAudioEqualizerUtility::AssignObject(CCustomCommandUtility* aCustomCommand)
       
   589 {
       
   590     if (aCustomCommand)
       
   591     {
       
   592 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(aCustomCommand));
       
   593 		if ( iError == KErrNone)
       
   594 		{
       
   595 			if (!AssignEffect())
       
   596 			{
       
   597 				iLogger->Log(_L("Assign Utility Object failed"));
       
   598 				iError = KErrBadHandle;
       
   599 			}
       
   600 		}
       
   601     }
       
   602 	else
       
   603 	{
       
   604 		iLogger->Log(_L("Create failed: Parameter CustomCommand is NULL!"));
       
   605 		iError = KErrBadHandle;
       
   606 	}
       
   607 
       
   608 	return iError;
       
   609 }
       
   610 
       
   611 TInt CTestAudioEqualizerUtility::AssignObject(MCustomInterface* aCustomInterface)
       
   612 {
       
   613     DeleteAudioEffect();
       
   614     if (aCustomInterface)
       
   615     {
       
   616 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aCustomInterface));
       
   617 		if ( iError == KErrNone)
       
   618 		{
       
   619 			if (!AssignEffect())
       
   620 			{
       
   621 				iLogger->Log(_L("Assign Utility Object failed"));
       
   622 				iError = KErrBadHandle;
       
   623 			}
       
   624 		}
       
   625     }
       
   626 	else
       
   627 	{
       
   628 		iLogger->Log(_L("Create failed: Parameter CustomInterface is NULL!"));
       
   629 		iError = KErrBadHandle;
       
   630 	}
       
   631 
       
   632 	return iError;
       
   633 }
       
   634 
       
   635 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioInputStream* aInputStream)
       
   636 {
       
   637     DeleteAudioEffect();
       
   638    	if (aInputStream)
       
   639    	{
       
   640 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aInputStream));
       
   641 		if ( iError == KErrNone)
       
   642 		{
       
   643 			if (!AssignEffect())
       
   644 			{
       
   645 				iLogger->Log(_L("Assign Utility Object failed"));
       
   646 				iError = KErrBadHandle;
       
   647 			}
       
   648 		}
       
   649    	}
       
   650 	else
       
   651 	{
       
   652 		iLogger->Log(_L("Create failed: Parameter InputStream is NULL!"));
       
   653 		iError = KErrBadHandle;
       
   654 	}
       
   655 
       
   656 	return iError;
       
   657 }
       
   658 
       
   659 TInt CTestAudioEqualizerUtility::AssignObject(CMdaAudioOutputStream* aOutputStream)
       
   660 {
       
   661     DeleteAudioEffect();
       
   662     if (aOutputStream)
       
   663     {
       
   664 		TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aOutputStream));
       
   665 		if ( iError == KErrNone)
       
   666 		{
       
   667 			if (!AssignEffect())
       
   668 			{
       
   669 				iLogger->Log(_L("Assign Utility Object failed"));
       
   670 				iError = KErrBadHandle;
       
   671 			}
       
   672 		}
       
   673     }
       
   674 	else
       
   675 	{
       
   676 		iLogger->Log(_L("Create failed: Parameter OutputStream is NULL!"));
       
   677 		iError = KErrBadHandle;
       
   678 	}
       
   679 
       
   680 	return iError;
       
   681 }
       
   682 
       
   683 TInt CTestAudioEqualizerUtility::AssignObject(CMidiClientUtility* aMidiClient)
       
   684 	{
       
   685 	    DeleteAudioEffect();
       
   686 	    if (aMidiClient)
       
   687 	    {
       
   688 			TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aMidiClient));
       
   689 			if ( iError == KErrNone)
       
   690 			{
       
   691 				if (!AssignEffect())
       
   692 				{
       
   693 					iLogger->Log(_L("Assign Utility Object failed"));
       
   694 					iError = KErrBadHandle;
       
   695 				}
       
   696 			}
       
   697 	    }
       
   698 		else
       
   699 		{
       
   700 			iLogger->Log(_L("Create failed: Parameter MidiClient is NULL!"));
       
   701 			iError = KErrBadHandle;
       
   702 		}
       
   703 		return iError;
       
   704 	}
       
   705 
       
   706 TInt CTestAudioEqualizerUtility::AssignObject(CDrmPlayerUtility* aDrmPlayer)
       
   707 	{
       
   708 		DeleteAudioEffect();
       
   709 		if (aDrmPlayer)
       
   710 			{
       
   711 			TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aDrmPlayer));
       
   712 			if ( iError == KErrNone)
       
   713 				{
       
   714 				if (!AssignEffect())
       
   715 				{
       
   716 					iLogger->Log(_L("Assign Utility Object failed"));
       
   717 					iError = KErrBadHandle;
       
   718 				}
       
   719 				}
       
   720 			}
       
   721 		else
       
   722 			{
       
   723 			iLogger->Log(_L("Create failed: Parameter DrmPlayer is NULL!"));
       
   724 			iError = KErrBadHandle;
       
   725 			}
       
   726 		return iError;
       
   727 	}
       
   728 
       
   729 TInt CTestAudioEqualizerUtility::AssignObject(CVideoPlayerUtility* aUtility)
       
   730 	{
       
   731 		DeleteAudioEffect();
       
   732 		if (aUtility)
       
   733 			{
       
   734 			TRAP(iError, iAudioEqualizerUtility = CAudioEqualizerUtility::NewL(*aUtility));
       
   735 			if ( iError == KErrNone)
       
   736 				{
       
   737 				if (!AssignEffect())
       
   738 				{
       
   739 					iLogger->Log(_L("Assign Utility Object failed"));
       
   740 					iError = KErrBadHandle;
       
   741 				}
       
   742 				}
       
   743 			}
       
   744 		else
       
   745 			{
       
   746 			iLogger->Log(_L("Create failed: Parameter Utility is NULL!"));
       
   747 			iError = KErrBadHandle;
       
   748 			}
       
   749 		return iError;
       
   750 	}
       
   751 
       
   752 TInt CTestAudioEqualizerUtility::ProcessTag(CStifItemParser *aItem, TTestResult & aResult)
       
   753 {
       
   754 	TPtrC tag;
       
   755 	aItem->GetString(_L(""), tag);
       
   756 
       
   757 	if (!tag.Compare(KTagCreatePreset))
       
   758 	{
       
   759 		return CreateNewPreset(aItem, aResult);
       
   760 	}
       
   761 
       
   762 	if (!tag.Compare(KTagApplyPreset))
       
   763 	{
       
   764 		return ApplyPreset(aItem, aResult);
       
   765 	}
       
   766 
       
   767 	if (!tag.Compare(KTagModifyPreset))
       
   768 	{
       
   769 		return ModifyPreset(aItem, aResult);
       
   770 	}
       
   771 
       
   772 	if (!tag.Compare(KTagResetPreset))
       
   773 	{
       
   774 		return ResetPreset(aItem, aResult);
       
   775 	}
       
   776 
       
   777 	if (!tag.Compare(KTagDeletePreset))
       
   778 	{
       
   779 		return DeletePreset(aItem, aResult);
       
   780 	}
       
   781 
       
   782 	if (!tag.Compare(KTagGetPreset))
       
   783 		{
       
   784 			return GetPreset(aItem, aResult);
       
   785 		}
       
   786 
       
   787 	if (!tag.Compare(KTagNumberOfPreDefinePresets))
       
   788 		{
       
   789 			return NumberOfPreDefinePresets(aResult);
       
   790 		}
       
   791 
       
   792 	if (!tag.Compare(KTagDisable))
       
   793 	{
       
   794 		return DisableEffect(aItem, aResult);
       
   795 	}
       
   796 	if (!tag.Compare(KTagBassBoostTest))
       
   797 	{
       
   798 		return BassBoostTest(aItem, aResult);
       
   799 	}
       
   800 
       
   801 	return CTestAudioEffectPreset::ProcessTag(aItem, aResult);
       
   802 }
       
   803 
       
   804 void CTestAudioEqualizerUtility::PrintPresetNamesL()
       
   805 	{
       
   806 	// Print preset
       
   807 	TArray<TEfAudioEqualizerUtilityPreset> presetData = iAudioEqualizerUtility->Presets();
       
   808 	iPresetCount = presetData.Count();
       
   809 
       
   810 	for(TInt i = 0; i < iPresetCount; i++)
       
   811 	{
       
   812 			iLogger->Log(KAudioIndex,i+1);
       
   813 			iLogger->Log(iAudioEqualizerUtility->GetPresetL(i));
       
   814 			iLogger->Log(KAudioNewLine);
       
   815 	}
       
   816 }
       
   817 
       
   818 /*==================================================================================
       
   819 //  CTestEnvironmentalReverbUtility
       
   820 ====================================================================================*/
       
   821 TInt CTestEnvironmentalReverbUtility::CreateNewPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   822 {
       
   823 	TInt err=KErrNone;
       
   824 
       
   825 	TPtrC aPresetName;
       
   826 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
   827 
       
   828 	err = aItem->GetString(KTagCreatePreset, aPresetName);
       
   829 
       
   830 	if(err)
       
   831 	{
       
   832 		iLogger->Log(_L("Missing Preset name. use default"));
       
   833 		CreateNextPresetName(presetData.Count() + 1);
       
   834 		aPresetName.Set(iPresetName);
       
   835 	}
       
   836 
       
   837 	TRAP(err, iEnvironmentalReverbUtility->CreatePresetL(aPresetName, *iEnvironmentalReverb));
       
   838 
       
   839 	aResult.iResult = err;
       
   840 	if (err)
       
   841 	{
       
   842 		iLogger->Log(_L("ApplyPresetL Failed."));
       
   843 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   844 	}
       
   845 	else
       
   846 	{
       
   847 		iLogger->Log(_L("ApplyPresetL Successful."));
       
   848 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   849 	}
       
   850 
       
   851 	return err;
       
   852 }
       
   853 TInt CTestEnvironmentalReverbUtility::GetPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   854 {
       
   855 	TInt err=KErrNone;
       
   856 	TInt aPresetIndex;
       
   857 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
   858 
       
   859 	err = aItem->GetInt(KTagGetPreset, aPresetIndex);
       
   860 
       
   861 	if(err)
       
   862 	{
       
   863 		iLogger->Log(_L("Missing Preset index. use default"));
       
   864 		aPresetIndex = presetData.Count() - 1;
       
   865 
       
   866 	}
       
   867 
       
   868 	if (aPresetIndex < 0)
       
   869 	{
       
   870 		iLogger->Log(_L("No preset defined to get"));
       
   871 		err = KErrNotReady;
       
   872 	}
       
   873 	else
       
   874 	{
       
   875 		TRAP(err, iEnvironmentalReverbUtility->GetPresetL(aPresetIndex));
       
   876 	}
       
   877 	
       
   878 	if ( (aPresetIndex >500 ) && (err == KErrArgument))  
       
   879 	{
       
   880 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   881 		err = KErrNone;
       
   882 	}
       
   883 
       
   884 	aResult.iResult = err;
       
   885 	if (err)
       
   886 	{
       
   887 		iLogger->Log(_L("GetPresetL Failed."));
       
   888 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   889 	}
       
   890 	else
       
   891 	{
       
   892 		iLogger->Log(_L("GetPresetL Successful."));
       
   893 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   894 	}
       
   895 	return err;
       
   896 }
       
   897 TInt CTestEnvironmentalReverbUtility::NumberOfPreDefinedPresets(TTestResult & aResult)
       
   898 {
       
   899 	TInt err=KErrNone;
       
   900 	TUint32 aPredefinedPresets = 0;
       
   901 
       
   902 	TRAP(err, aPredefinedPresets = iEnvironmentalReverbUtility->NumberOfPreDefinedPresets());
       
   903 
       
   904 	aResult.iResult = err;
       
   905 	if (err)
       
   906 	{
       
   907 		iLogger->Log(_L("NumberOfPreDefinedPresets Failed."));
       
   908 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   909 	}
       
   910 	else
       
   911 	{
       
   912 		iLogger->Log(_L("NumberOfPreDefinedPresets Successful."));
       
   913 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   914 		RDebug::Print(_L("NumberOfPreDefinedPresets:-> [%d]"), aPredefinedPresets);
       
   915 	}
       
   916 	return err;
       
   917 }
       
   918 
       
   919 TInt CTestEnvironmentalReverbUtility::ApplyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   920 	{
       
   921 	TInt err=KErrNone;
       
   922 	TInt aPresetIndex;
       
   923 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
   924 
       
   925 	err = aItem->GetInt(KTagApplyPreset, aPresetIndex);
       
   926 
       
   927 	if(err)
       
   928 		{
       
   929 		iLogger->Log(_L("Missing Preset index. use default\n"));
       
   930 		aPresetIndex = presetData.Count() - 1;
       
   931 
       
   932 		}
       
   933 
       
   934 	TRAP(err, iEnvironmentalReverbUtility->ApplyPresetL(aPresetIndex));
       
   935 	
       
   936 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   937 	{
       
   938 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   939 		err = KErrNone;
       
   940 	}
       
   941 
       
   942 	aResult.iResult = err;
       
   943 	if (err)
       
   944 		{
       
   945 		iLogger->Log(_L("ApplyPresetL Failed."));
       
   946 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
   947 		}
       
   948 	else
       
   949 		{
       
   950 		iLogger->Log(_L("ApplyPresetL Successful."));
       
   951 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
   952 		}
       
   953 	return err;
       
   954 	}
       
   955 
       
   956 
       
   957 TInt CTestEnvironmentalReverbUtility::ModifyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
   958 	{
       
   959 	TInt err=KErrNone;
       
   960 	TInt aPresetIndex;
       
   961 	TPtrC aPresetName;
       
   962 
       
   963 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
   964 
       
   965 	err = aItem->GetInt(KTagModifyPreset, aPresetIndex);
       
   966 
       
   967 	if(err)
       
   968 		{
       
   969 		iLogger->Log(_L("Missing Preset index. use default\n"));
       
   970 		aPresetIndex = presetData.Count() - 1;
       
   971 		}
       
   972 
       
   973 	err = aItem->GetNextString(KTagModifyPreset, aPresetName);
       
   974 
       
   975 	if(err)
       
   976 		{
       
   977 		iLogger->Log(_L("Missing Preset name. use default\n"));
       
   978 		CreateNextPresetName(presetData.Count() + 1);
       
   979 		aPresetName.Set(iPresetName);
       
   980 		}
       
   981 
       
   982 	TUint32 uMin, uMax;
       
   983 	iEnvironmentalReverb->DecayHFRatioRange(uMin, uMax);
       
   984 	TRAP(err, iEnvironmentalReverb->SetDecayHFRatioL((uMin+uMax)/2));
       
   985 
       
   986 	if (err)
       
   987 		{
       
   988 		iLogger->Log(_L("SetDecayHFRatioL Failed."));
       
   989 		}
       
   990 	else
       
   991 		{
       
   992 		TRAP(err, iEnvironmentalReverbUtility->ModifyPresetL(aPresetIndex,aPresetName,*iEnvironmentalReverb));
       
   993 		}
       
   994 
       
   995   if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
   996 	{
       
   997 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
   998 		err = KErrNone;
       
   999 	}
       
  1000 	
       
  1001 	aResult.iResult = err;
       
  1002 	if (err)
       
  1003 		{
       
  1004 		iLogger->Log(_L("ModifyPresetL Failed."));
       
  1005 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1006 		}
       
  1007 	else
       
  1008 		{
       
  1009 		iLogger->Log(_L("ModifyPresetL Successful."));
       
  1010 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1011 		}
       
  1012 	return err;
       
  1013 	}
       
  1014 
       
  1015 TInt CTestEnvironmentalReverbUtility::ResetPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1016 	{
       
  1017 	TInt err=KErrNone;
       
  1018 	TInt aPresetIndex;
       
  1019 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
  1020 
       
  1021 	err = aItem->GetInt(KTagResetPreset, aPresetIndex);
       
  1022 
       
  1023 	if(err)
       
  1024 		{
       
  1025 		iLogger->Log(_L("Missing Preset index. use default\n"));
       
  1026 		aPresetIndex = presetData.Count() - 1;
       
  1027 
       
  1028 		}
       
  1029 
       
  1030 	TRAP(err, iEnvironmentalReverbUtility->ResetPresetL(aPresetIndex));
       
  1031 
       
  1032 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
  1033 	{
       
  1034 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1035 		err = KErrNone;
       
  1036 	}
       
  1037 	aResult.iResult = err;
       
  1038 	if (err)
       
  1039 		{
       
  1040 		iLogger->Log(_L("ResetPresetL Failed."));
       
  1041 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1042 		}
       
  1043 	else
       
  1044 		{
       
  1045 		iLogger->Log(_L("ResetPresetL Successful."));
       
  1046 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1047 		}
       
  1048 
       
  1049 	return err;
       
  1050 	}
       
  1051 
       
  1052 
       
  1053 TInt CTestEnvironmentalReverbUtility::DeletePreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1054 {
       
  1055 	TInt err=KErrNone;
       
  1056 	TInt aPresetIndex;
       
  1057 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
  1058 
       
  1059 	err = aItem->GetInt(KTagDeletePreset, aPresetIndex);
       
  1060 
       
  1061 	if(err)
       
  1062 		{
       
  1063 		iLogger->Log(_L("Missing Preset index. use default\n"));
       
  1064 		aPresetIndex = presetData.Count() - 1;
       
  1065 
       
  1066 		}
       
  1067 
       
  1068 	TRAP(err, iEnvironmentalReverbUtility->DeletePresetL(aPresetIndex));
       
  1069 	
       
  1070 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
  1071 	{
       
  1072 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1073 		err = KErrNone;
       
  1074 	}
       
  1075 	
       
  1076 
       
  1077 	aResult.iResult = err;
       
  1078 	if (err)
       
  1079 		{
       
  1080 		iLogger->Log(_L("DeletePresetL Failed."));
       
  1081 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1082 		}
       
  1083 	else
       
  1084 		{
       
  1085 		iLogger->Log(_L("DeletePresetL Successful."));
       
  1086 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1087 		}
       
  1088 
       
  1089 	return err;
       
  1090 }
       
  1091 
       
  1092 TInt CTestEnvironmentalReverbUtility::DisableEffect(CStifItemParser */*aItem*/, TTestResult & aResult)
       
  1093 	{
       
  1094 	TInt err=KErrNone;
       
  1095 
       
  1096 	TRAP(err, iEnvironmentalReverbUtility->DisableEnvironmentalReverbL());
       
  1097 
       
  1098 	aResult.iResult = err;
       
  1099 	if (err)
       
  1100 		{
       
  1101 		iLogger->Log(_L("DisableEnvironmentalReverbL Failed."));
       
  1102 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1103 		}
       
  1104 	else
       
  1105 		{
       
  1106 		iLogger->Log(_L("DisableEnvironmentalReverbL Successful."));
       
  1107 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1108 		}
       
  1109 
       
  1110 	return err;
       
  1111 	}
       
  1112 
       
  1113 
       
  1114 CTestEnvironmentalReverbUtility* CTestEnvironmentalReverbUtility::NewLC (CStifLogger * aLogger)
       
  1115 	{
       
  1116 	CTestEnvironmentalReverbUtility* self=new (ELeave) CTestEnvironmentalReverbUtility(aLogger);
       
  1117 	CleanupStack::PushL(self);
       
  1118 	self->ConstructL();
       
  1119 	return self;
       
  1120 	}
       
  1121 
       
  1122 CTestEnvironmentalReverbUtility* CTestEnvironmentalReverbUtility::NewL (CStifLogger * aLogger)
       
  1123 	{
       
  1124 	CTestEnvironmentalReverbUtility* self=NewLC(aLogger);
       
  1125 	CleanupStack::Pop();
       
  1126 	return self;
       
  1127 	}
       
  1128 
       
  1129 CTestEnvironmentalReverbUtility::CTestEnvironmentalReverbUtility(CStifLogger * aLogger): CTestAudioEffectPreset(aLogger)
       
  1130 	{
       
  1131 	}
       
  1132 
       
  1133 void CTestEnvironmentalReverbUtility::ConstructL()
       
  1134 	{
       
  1135 	}
       
  1136 
       
  1137 CTestEnvironmentalReverbUtility::~CTestEnvironmentalReverbUtility()
       
  1138 	{
       
  1139     DeleteAudioEffect();
       
  1140 		}
       
  1141 
       
  1142 void CTestEnvironmentalReverbUtility::DeleteAudioEffect()
       
  1143 	{
       
  1144 	if(iEnvironmentalReverbUtility)
       
  1145     	delete iEnvironmentalReverbUtility;
       
  1146     iEnvironmentalReverbUtility = NULL;
       
  1147 
       
  1148 	}
       
  1149 
       
  1150 TBool CTestEnvironmentalReverbUtility::AssignEffect()
       
  1151 	{
       
  1152 	iEnvironmentalReverb =  &(iEnvironmentalReverbUtility->EnvironmentalReverb());
       
  1153 	return (iEnvironmentalReverb != NULL);
       
  1154 	}
       
  1155 
       
  1156 
       
  1157 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioPlayerUtility* aPlayer)
       
  1158 	{
       
  1159 	DeleteAudioEffect();
       
  1160 	if (aPlayer)
       
  1161 		{
       
  1162 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aPlayer));
       
  1163 		if ( iError == KErrNone)
       
  1164 			{
       
  1165 			if (!AssignEffect())
       
  1166 				{
       
  1167 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1168 				iError = KErrBadHandle;
       
  1169 				}
       
  1170 			}
       
  1171 		}
       
  1172 	else
       
  1173 		{
       
  1174 		iLogger->Log(_L("Create failed: Parameter player is NULL!\n"));
       
  1175 		iError = KErrBadHandle;
       
  1176 		}
       
  1177 
       
  1178 	return iError;
       
  1179 	}
       
  1180 
       
  1181 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioRecorderUtility* aRecorder)
       
  1182 	{
       
  1183 	DeleteAudioEffect();
       
  1184 	if (aRecorder)
       
  1185 		{
       
  1186 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aRecorder));
       
  1187 		if ( iError == KErrNone)
       
  1188 			{
       
  1189 			if (!AssignEffect())
       
  1190 				{
       
  1191 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1192 				iError = KErrBadHandle;
       
  1193 				}
       
  1194 			}
       
  1195 		}
       
  1196 	else
       
  1197 		{
       
  1198 		iLogger->Log(_L("Create failed: Parameter Recorder is NULL!\n"));
       
  1199 		iError = KErrBadHandle;
       
  1200 		}
       
  1201 
       
  1202 	return iError;
       
  1203 	}
       
  1204 
       
  1205 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioConvertUtility* aConverter)
       
  1206 	{
       
  1207     DeleteAudioEffect();
       
  1208     if (aConverter)
       
  1209     	{
       
  1210 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aConverter));
       
  1211 		if ( iError == KErrNone)
       
  1212 			{
       
  1213 			if (!AssignEffect())
       
  1214 				{
       
  1215 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1216 				iError = KErrBadHandle;
       
  1217 				}
       
  1218 			}
       
  1219     	}
       
  1220 	else
       
  1221 		{
       
  1222 		iLogger->Log(_L("Create failed: Parameter Converter is NULL!\n"));
       
  1223 		iError = KErrBadHandle;
       
  1224 		}
       
  1225 
       
  1226 	return iError;
       
  1227 	}
       
  1228 
       
  1229 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioToneUtility* aTone)
       
  1230 	{
       
  1231     DeleteAudioEffect();
       
  1232     if (aTone)
       
  1233     	{
       
  1234 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aTone));
       
  1235 		if ( iError == KErrNone)
       
  1236 			{
       
  1237 			if (!AssignEffect())
       
  1238 				{
       
  1239 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1240 				iError = KErrBadHandle;
       
  1241 				}
       
  1242 			}
       
  1243     	}
       
  1244 	else
       
  1245 		{
       
  1246 		iLogger->Log(_L("Create failed: Parameter Tone object is NULL!\n"));
       
  1247 		iError = KErrBadHandle;
       
  1248 		}
       
  1249 
       
  1250 	return iError;
       
  1251 	}
       
  1252 
       
  1253 TInt CTestEnvironmentalReverbUtility::AssignObject(CMMFDevSound* aDevSound)
       
  1254 	{
       
  1255     DeleteAudioEffect();
       
  1256     if (aDevSound)
       
  1257     	{
       
  1258 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aDevSound));
       
  1259 		if ( iError == KErrNone)
       
  1260 			{
       
  1261 			if (!AssignEffect())
       
  1262 				{
       
  1263 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1264 				iError = KErrBadHandle;
       
  1265 				}
       
  1266 			}
       
  1267     	}
       
  1268 	else
       
  1269 		{
       
  1270 		iLogger->Log(_L("Create failed: Parameter DevSound is NULL!\n"));
       
  1271 		iError = KErrBadHandle;
       
  1272 		}
       
  1273 
       
  1274 	return iError;
       
  1275 	}
       
  1276 
       
  1277 
       
  1278 TInt CTestEnvironmentalReverbUtility::AssignObject(CCustomCommandUtility* aCustomCommand)
       
  1279 	{
       
  1280     if (aCustomCommand)
       
  1281     	{
       
  1282 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(aCustomCommand));
       
  1283 		if ( iError == KErrNone)
       
  1284 			{
       
  1285 			if (!AssignEffect())
       
  1286 				{
       
  1287 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1288 				iError = KErrBadHandle;
       
  1289 				}
       
  1290 			}
       
  1291     	}
       
  1292 	else
       
  1293 		{
       
  1294 		iLogger->Log(_L("Create failed: Parameter CustomCommand is NULL!\n"));
       
  1295 		iError = KErrBadHandle;
       
  1296 		}
       
  1297 
       
  1298 	return iError;
       
  1299 	}
       
  1300 
       
  1301 TInt CTestEnvironmentalReverbUtility::AssignObject(MCustomInterface* aCustomInterface)
       
  1302 	{
       
  1303     if (aCustomInterface)
       
  1304     	{
       
  1305 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aCustomInterface));
       
  1306 		if ( iError == KErrNone)
       
  1307 			{
       
  1308 			if (!AssignEffect())
       
  1309 				{
       
  1310 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1311 				iError = KErrBadHandle;
       
  1312 				}
       
  1313 			}
       
  1314     	}
       
  1315 	else
       
  1316 		{
       
  1317 		iLogger->Log(_L("Create failed: Parameter CustomInterface is NULL!\n"));
       
  1318 		iError = KErrBadHandle;
       
  1319 		}
       
  1320 
       
  1321 	return iError;
       
  1322 	}
       
  1323 
       
  1324 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioInputStream* aInputStream)
       
  1325 {
       
  1326     DeleteAudioEffect();
       
  1327    	if (aInputStream)
       
  1328    	{
       
  1329 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aInputStream));
       
  1330 		if ( iError == KErrNone)
       
  1331 		{
       
  1332 			if (!AssignEffect())
       
  1333 			{
       
  1334 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1335 				iError = KErrBadHandle;
       
  1336 			}
       
  1337 		}
       
  1338    	}
       
  1339 	else
       
  1340 	{
       
  1341 		iLogger->Log(_L("Create failed: Parameter InputStream is NULL!\n"));
       
  1342 		iError = KErrBadHandle;
       
  1343 	}
       
  1344 
       
  1345 	return iError;
       
  1346 }
       
  1347 
       
  1348 TInt CTestEnvironmentalReverbUtility::AssignObject(CMdaAudioOutputStream* aOutputStream)
       
  1349 {
       
  1350     DeleteAudioEffect();
       
  1351     if (aOutputStream)
       
  1352     {
       
  1353 		TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aOutputStream));
       
  1354 		if ( iError == KErrNone)
       
  1355 		{
       
  1356 			if (!AssignEffect())
       
  1357 			{
       
  1358 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1359 				iError = KErrBadHandle;
       
  1360 			}
       
  1361 		}
       
  1362     }
       
  1363 	else
       
  1364 	{
       
  1365 		iLogger->Log(_L("Create failed: Parameter OutputStream is NULL!\n"));
       
  1366 		iError = KErrBadHandle;
       
  1367 	}
       
  1368 
       
  1369 	return iError;
       
  1370 }
       
  1371 
       
  1372 TInt CTestEnvironmentalReverbUtility::AssignObject(CMidiClientUtility* aMidiClient)
       
  1373 	{
       
  1374 	    DeleteAudioEffect();
       
  1375 	    if (aMidiClient)
       
  1376 	    {
       
  1377 			TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aMidiClient));
       
  1378 			if ( iError == KErrNone)
       
  1379 			{
       
  1380 				if (!AssignEffect())
       
  1381 				{
       
  1382 					iLogger->Log(_L("Assign Utility Object failed"));
       
  1383 					iError = KErrBadHandle;
       
  1384 				}
       
  1385 			}
       
  1386 	    }
       
  1387 		else
       
  1388 		{
       
  1389 			iLogger->Log(_L("Create failed: Parameter MidiClient is NULL!"));
       
  1390 			iError = KErrBadHandle;
       
  1391 		}
       
  1392 
       
  1393 		return iError;
       
  1394 
       
  1395 	}
       
  1396 
       
  1397 TInt CTestEnvironmentalReverbUtility::AssignObject(CDrmPlayerUtility* aDrmPlayer)
       
  1398 	{
       
  1399 		DeleteAudioEffect();
       
  1400 		if (aDrmPlayer)
       
  1401 			{
       
  1402 			TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aDrmPlayer));
       
  1403 			if ( iError == KErrNone)
       
  1404 				{
       
  1405 				if (!AssignEffect())
       
  1406 				{
       
  1407 					iLogger->Log(_L("Assign Utility Object failed"));
       
  1408 					iError = KErrBadHandle;
       
  1409 				}
       
  1410 				}
       
  1411 			}
       
  1412 		else
       
  1413 			{
       
  1414 			iLogger->Log(_L("Create failed: Parameter DrmPlayer is NULL!"));
       
  1415 			iError = KErrBadHandle;
       
  1416 			}
       
  1417 		return iError;
       
  1418 	}
       
  1419 
       
  1420 TInt CTestEnvironmentalReverbUtility::AssignObject(CVideoPlayerUtility* aUtility)
       
  1421 	{
       
  1422 		DeleteAudioEffect();
       
  1423 		if (aUtility)
       
  1424 			{
       
  1425 			TRAP(iError, iEnvironmentalReverbUtility = CEnvironmentalReverbUtility::NewL(*aUtility));
       
  1426 			if ( iError == KErrNone)
       
  1427 				{
       
  1428 				if (!AssignEffect())
       
  1429 				{
       
  1430 					iLogger->Log(_L("Assign Utility Object failed"));
       
  1431 					iError = KErrBadHandle;
       
  1432 				}
       
  1433 				}
       
  1434 			}
       
  1435 		else
       
  1436 			{
       
  1437 			iLogger->Log(_L("Create failed: Parameter Utility is NULL!"));
       
  1438 			iError = KErrBadHandle;
       
  1439 			}
       
  1440 		return iError;
       
  1441 	}
       
  1442 
       
  1443 TInt CTestEnvironmentalReverbUtility::ProcessTag(CStifItemParser *aItem, TTestResult & aResult)
       
  1444 {
       
  1445 	TPtrC tag;
       
  1446 	aItem->GetString(_L(""), tag);
       
  1447 
       
  1448 	if (!tag.Compare(KTagCreatePreset))
       
  1449 	{
       
  1450 		return CreateNewPreset(aItem, aResult);
       
  1451 	}
       
  1452 
       
  1453 	if (!tag.Compare(KTagGetPreset))
       
  1454 	{
       
  1455 		return GetPreset(aItem, aResult);
       
  1456 	}
       
  1457 
       
  1458 	if (!tag.Compare(KTagNumberOfPreDefinePresets))
       
  1459 	{
       
  1460 		return NumberOfPreDefinedPresets(aResult);
       
  1461 	}
       
  1462 
       
  1463 	if (!tag.Compare(KTagApplyPreset))
       
  1464 	{
       
  1465 		return ApplyPreset(aItem, aResult);
       
  1466 	}
       
  1467 
       
  1468 	if (!tag.Compare(KTagModifyPreset))
       
  1469 	{
       
  1470 		return ModifyPreset(aItem, aResult);
       
  1471 	}
       
  1472 
       
  1473 	if (!tag.Compare(KTagResetPreset))
       
  1474 	{
       
  1475 		return ResetPreset(aItem, aResult);
       
  1476 	}
       
  1477 
       
  1478 	if (!tag.Compare(KTagDeletePreset))
       
  1479 	{
       
  1480 		return DeletePreset(aItem, aResult);
       
  1481 	}
       
  1482 
       
  1483 	if (!tag.Compare(KTagDisable))
       
  1484 	{
       
  1485 		return DisableEffect(aItem, aResult);
       
  1486 	}
       
  1487 
       
  1488 	return CTestAudioEffectPreset::ProcessTag(aItem, aResult);
       
  1489 }
       
  1490 
       
  1491 
       
  1492 
       
  1493 void CTestEnvironmentalReverbUtility::PrintPresetNamesL()
       
  1494 {
       
  1495 	TArray<TEfEnvironmentalReverbUtilityPreset> presetData = iEnvironmentalReverbUtility->Presets();
       
  1496 	iPresetCount = presetData.Count();
       
  1497 
       
  1498 //	ShowMenu3(iPresetCount);
       
  1499 
       
  1500 	for(TInt i = 0; i < iPresetCount; i++)
       
  1501 	{
       
  1502 			iLogger->Log(KAudioIndex,i+1);
       
  1503 			iLogger->Log(iEnvironmentalReverbUtility->GetPresetL(i));
       
  1504 			iLogger->Log(KAudioNewLine);
       
  1505 	}
       
  1506 
       
  1507 //	iLogger->Log(_L("\nPress any key ..."));
       
  1508 
       
  1509 }
       
  1510 
       
  1511 
       
  1512 
       
  1513 /*==================================================================================
       
  1514 //  CTestStereoWideningUtility
       
  1515 ====================================================================================*/
       
  1516 TInt CTestStereoWideningUtility::CreateNewPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1517 {
       
  1518 	TInt err=KErrNone;
       
  1519 	TPtrC aPresetName;
       
  1520 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1521 
       
  1522 	err = aItem->GetString(KTagCreatePreset, aPresetName);
       
  1523 
       
  1524 	if(err)
       
  1525 	{
       
  1526 		iLogger->Log(_L("Missing Preset name. use default\n"));
       
  1527 		CreateNextPresetName(presetData.Count() + 1);
       
  1528 		aPresetName.Set(iPresetName);
       
  1529 	}
       
  1530 
       
  1531 	TRAP(err, iStereoWideningUtility->CreatePresetL(aPresetName, *iStereoWidening));
       
  1532 
       
  1533 	aResult.iResult = err;
       
  1534 	if (err)
       
  1535 	{
       
  1536 		iLogger->Log(_L("CreatePresetL Failed."));
       
  1537 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1538 	}
       
  1539 	else
       
  1540 	{
       
  1541 		iLogger->Log(_L("ApplyPresetL Successful."));
       
  1542 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1543 	}
       
  1544 
       
  1545 	return err;
       
  1546 }
       
  1547 
       
  1548 
       
  1549  TInt CTestStereoWideningUtility::GetPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1550  {
       
  1551  	TInt err=KErrNone;
       
  1552  	TInt aPresetIndex;
       
  1553  	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1554 
       
  1555  	err = aItem->GetInt(KTagGetPreset, aPresetIndex);
       
  1556 
       
  1557  	if(err)
       
  1558  	{
       
  1559  		iLogger->Log(_L("Missing Preset index. use default"));
       
  1560  		aPresetIndex = presetData.Count() - 1;
       
  1561 
       
  1562  	}
       
  1563 
       
  1564  	if (aPresetIndex < 0)
       
  1565  	{
       
  1566  		iLogger->Log(_L("No preset defined to get"));
       
  1567  		err = KErrNotReady;
       
  1568  	}
       
  1569  	else
       
  1570  	{
       
  1571  		TRAP(err, iStereoWideningUtility->GetPresetL(aPresetIndex));
       
  1572  	}
       
  1573 
       
  1574 	if ( (aPresetIndex >500 ) && (err == KErrArgument))
       
  1575 	{
       
  1576 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1577 		err = KErrNone;
       
  1578 	}
       
  1579 	
       
  1580  	aResult.iResult = err;
       
  1581  	if (err)
       
  1582  	{
       
  1583  		iLogger->Log(_L("GetPresetL Failed."));
       
  1584  		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1585  	}
       
  1586  	else
       
  1587  	{
       
  1588  		iLogger->Log(_L("GetPresetL Successful."));
       
  1589  		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1590  	}
       
  1591  	return err;
       
  1592  }
       
  1593 
       
  1594 
       
  1595  TInt CTestStereoWideningUtility::NumberOfPreDefinedPresets(TTestResult & aResult)
       
  1596  {
       
  1597  	TInt err=KErrNone;
       
  1598 // 	TInt aPresetIndex;
       
  1599 // 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1600 	TUint32 aPredefinedPresets = 0;
       
  1601 
       
  1602 	TRAP(err, aPredefinedPresets = iStereoWideningUtility->NumberOfPreDefinedPresets());
       
  1603 
       
  1604  	aResult.iResult = err;
       
  1605  	if (err)
       
  1606  	{
       
  1607  		iLogger->Log(_L("NumberOfPreDefinedPresets Failed."));
       
  1608  		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1609  	}
       
  1610  	else
       
  1611  	{
       
  1612  		iLogger->Log(_L("NumberOfPreDefinedPresets Successful."));
       
  1613  		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1614  		RDebug::Print(_L("NumberOfPreDefinedPresets:-> [%d]"), aPredefinedPresets);
       
  1615  	}
       
  1616  	return err;
       
  1617  }
       
  1618 
       
  1619 TInt CTestStereoWideningUtility::ApplyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1620 {
       
  1621 	TInt err=KErrNone;
       
  1622 	TInt aPresetIndex;
       
  1623 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1624 
       
  1625 	err = aItem->GetInt(KTagApplyPreset, aPresetIndex);
       
  1626 
       
  1627 	if(err)
       
  1628 	{
       
  1629 		iLogger->Log(_L("Missing Preset index. use default"));
       
  1630 		aPresetIndex = presetData.Count() - 1;
       
  1631 
       
  1632 	}
       
  1633 
       
  1634 	if (aPresetIndex <= 0)
       
  1635 	{
       
  1636 		iLogger->Log(_L("No preset defined for apply"));
       
  1637 		err = KErrNotReady;
       
  1638 	}
       
  1639 	else
       
  1640 	{
       
  1641 		TRAP(err, iStereoWideningUtility->ApplyPresetL(aPresetIndex));
       
  1642 	}
       
  1643 
       
  1644 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
  1645 	{
       
  1646 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1647 		err = KErrNone;
       
  1648 	}
       
  1649 	
       
  1650 	aResult.iResult = err;
       
  1651 	if (err)
       
  1652 	{
       
  1653 		iLogger->Log(_L("ApplyPresetL Failed."));
       
  1654 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1655 	}
       
  1656 	else
       
  1657 	{
       
  1658 		iLogger->Log(_L("ApplyPresetL Successful."));
       
  1659 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1660 	}
       
  1661 
       
  1662 	return err;
       
  1663 }
       
  1664 
       
  1665 
       
  1666 TInt CTestStereoWideningUtility::ModifyPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1667 {
       
  1668 	TInt err=KErrNone;
       
  1669 	TInt aPresetIndex;
       
  1670 	TPtrC aPresetName;
       
  1671 
       
  1672 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1673 
       
  1674 	err = aItem->GetInt(KTagModifyPreset, aPresetIndex);
       
  1675 
       
  1676 	if(err)
       
  1677 	{
       
  1678 		iLogger->Log(_L("Missing Preset index. use default"));
       
  1679 		aPresetIndex = presetData.Count() - 1;
       
  1680 	}
       
  1681 
       
  1682 	if (aPresetIndex < 0)
       
  1683 	{
       
  1684 		iLogger->Log(_L("No preset defined for modify"));
       
  1685 		err = KErrNotReady;
       
  1686 	}
       
  1687 	else
       
  1688 	{
       
  1689 		err = aItem->GetNextString(KTagModifyPreset, aPresetName);
       
  1690 		if(err)
       
  1691 		{
       
  1692 			iLogger->Log(_L("Missing Preset name. use default"));
       
  1693 			CreateNextPresetName(presetData.Count() + 1);
       
  1694 			aPresetName.Set(iPresetName);
       
  1695 		}
       
  1696 
       
  1697 		//CStereoWidening* newStereoWidening =  CStereoWidening::NewL();
       
  1698 		TRAP(err, iStereoWideningUtility->ModifyPresetL(aPresetIndex,aPresetName,*iStereoWidening));
       
  1699 		//delete newStereoWidening;
       
  1700 		iStereoWidening =  &(iStereoWideningUtility->StereoWidening());
       
  1701 	}
       
  1702 
       
  1703 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
  1704 	{
       
  1705 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1706 		err = KErrNone;
       
  1707 	}
       
  1708 	
       
  1709 	aResult.iResult = err;
       
  1710 	if (err)
       
  1711 	{
       
  1712 		iLogger->Log(_L("ModifyPresetL Failed."));
       
  1713 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1714 	}
       
  1715 	else
       
  1716 	{
       
  1717 		iLogger->Log(_L("ModifyPresetL Successful."));
       
  1718 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1719 	}
       
  1720 
       
  1721 	return err;
       
  1722 }
       
  1723 
       
  1724 
       
  1725 TInt CTestStereoWideningUtility::ResetPreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1726 {
       
  1727 	TInt err=KErrNone;
       
  1728 	TInt aPresetIndex;
       
  1729 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1730 
       
  1731 	err = aItem->GetInt(KTagResetPreset, aPresetIndex);
       
  1732 
       
  1733 	if(err)
       
  1734 	{
       
  1735 		iLogger->Log(_L("Missing Preset index. use default"));
       
  1736 		aPresetIndex = presetData.Count() - 1;
       
  1737 
       
  1738 	}
       
  1739 
       
  1740 	if (aPresetIndex < 0)
       
  1741 	{
       
  1742 		iLogger->Log(_L("No preset defined for reset"));
       
  1743 		err = KErrNotReady;
       
  1744 	}
       
  1745 	else
       
  1746 	{
       
  1747 		TRAP(err, iStereoWideningUtility->ResetPresetL(aPresetIndex));
       
  1748 	}
       
  1749 
       
  1750   if (err == KErrNotSupported)    
       
  1751   {
       
  1752   	iLogger->Log(_L("ResetPresetL() return KErrNotSupported, It is accepted return code"));
       
  1753   	err = KErrNone;
       
  1754   }
       
  1755   
       
  1756 	aResult.iResult = err;
       
  1757 	if (err)
       
  1758 	{
       
  1759 		iLogger->Log(_L("ResetPresetL Failed."));
       
  1760 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1761 	}
       
  1762 	else
       
  1763 	{
       
  1764 		iLogger->Log(_L("ResetPresetL Successful."));
       
  1765 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1766 	}
       
  1767 
       
  1768 	return err;
       
  1769 }
       
  1770 
       
  1771 
       
  1772 TInt CTestStereoWideningUtility::DeletePreset(CStifItemParser *aItem, TTestResult & aResult)
       
  1773 {
       
  1774 	TInt err=KErrNone;
       
  1775 	TInt aPresetIndex;
       
  1776 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  1777 
       
  1778 	err = aItem->GetInt(KTagDeletePreset, aPresetIndex);
       
  1779 
       
  1780 	if(err)
       
  1781 	{
       
  1782 		iLogger->Log(_L("Missing Preset index. use default"));
       
  1783 		aPresetIndex = presetData.Count() - 1;
       
  1784 
       
  1785 	}
       
  1786 
       
  1787 	if (aPresetIndex <= 0)
       
  1788 	{
       
  1789 		iLogger->Log(_L("No preset defined for delete"));
       
  1790 		err = KErrNotReady;
       
  1791 	}
       
  1792 	else
       
  1793 	{
       
  1794 		TRAP(err, iStereoWideningUtility->DeletePresetL(aPresetIndex));
       
  1795 	}
       
  1796 
       
  1797 	if ( (aPresetIndex >500 ) && (err == KErrArgument)) 
       
  1798 	{
       
  1799 		iLogger->Log(_L("this is a error case, return code KErrArgument is accepted"));
       
  1800 		err = KErrNone;
       
  1801 	}
       
  1802 	
       
  1803 	aResult.iResult = err;
       
  1804 	if (err)
       
  1805 	{
       
  1806 		iLogger->Log(_L("DeletePresetL Failed."));
       
  1807 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1808 	}
       
  1809 	else
       
  1810 	{
       
  1811 		iLogger->Log(_L("DeletePresetL Successful."));
       
  1812 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1813 	}
       
  1814 	return err;
       
  1815 }
       
  1816 
       
  1817 TInt CTestStereoWideningUtility::DisableEffect(CStifItemParser */*aItem*/, TTestResult & aResult)
       
  1818 	{
       
  1819 	TInt err=KErrNone;
       
  1820 
       
  1821 	TRAP(err, iStereoWideningUtility->DisableStereoWideningL());
       
  1822 
       
  1823 	aResult.iResult = err;
       
  1824 	if (err)
       
  1825 	{
       
  1826 		iLogger->Log(_L("DisableStereoWideningL Failed."));
       
  1827 		aResult.iResultDes.Copy(KTestCaseResultFail());
       
  1828 	}
       
  1829 	else
       
  1830 	{
       
  1831 		iLogger->Log(_L("DisableStereoWideningL Successful."));
       
  1832 		aResult.iResultDes.Copy(KTestCaseResultSuccess());
       
  1833 	}
       
  1834 
       
  1835 	return err;
       
  1836 	}
       
  1837 
       
  1838 CTestStereoWideningUtility* CTestStereoWideningUtility::NewLC (CStifLogger * aLogger)
       
  1839 	{
       
  1840 	CTestStereoWideningUtility* self=new (ELeave) CTestStereoWideningUtility(aLogger);
       
  1841 	CleanupStack::PushL(self);
       
  1842 	self->ConstructL();
       
  1843 	return self;
       
  1844 	}
       
  1845 
       
  1846 CTestStereoWideningUtility* CTestStereoWideningUtility::NewL (CStifLogger * aLogger)
       
  1847 	{
       
  1848 	CTestStereoWideningUtility* self=NewLC(aLogger);
       
  1849 	CleanupStack::Pop();
       
  1850 	return self;
       
  1851 	}
       
  1852 
       
  1853 CTestStereoWideningUtility::CTestStereoWideningUtility(CStifLogger * aLogger): CTestAudioEffectPreset(aLogger)
       
  1854 	{
       
  1855 	}
       
  1856 
       
  1857 void CTestStereoWideningUtility::ConstructL()
       
  1858 	{
       
  1859 	}
       
  1860 
       
  1861 CTestStereoWideningUtility::~CTestStereoWideningUtility()
       
  1862 	{
       
  1863     DeleteAudioEffect();
       
  1864 	}
       
  1865 
       
  1866 void CTestStereoWideningUtility::DeleteAudioEffect()
       
  1867 	{
       
  1868 	if(iStereoWideningUtility)
       
  1869 	    delete iStereoWideningUtility;
       
  1870     iStereoWideningUtility = NULL;
       
  1871 
       
  1872 	}
       
  1873 
       
  1874 TBool CTestStereoWideningUtility::AssignEffect()
       
  1875 	{
       
  1876 	iStereoWidening =  &(iStereoWideningUtility->StereoWidening());
       
  1877 	return (iStereoWidening != NULL);
       
  1878 	}
       
  1879 
       
  1880 // Callback// Callback
       
  1881 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioPlayerUtility* aPlayer)
       
  1882 	{
       
  1883 	DeleteAudioEffect();
       
  1884 	if (aPlayer)
       
  1885 		{
       
  1886 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aPlayer));
       
  1887 		if ( iError == KErrNone)
       
  1888 			{
       
  1889 			if (!AssignEffect())
       
  1890 				{
       
  1891 				iLogger->Log(_L("Assign Utility Object failed\n"));
       
  1892 				iError = KErrBadHandle;
       
  1893 				}
       
  1894 			}
       
  1895 		}
       
  1896 	else
       
  1897 		{
       
  1898 		iLogger->Log(_L("Create failed: Parameter player is NULL!"));
       
  1899 		iError = KErrBadHandle;
       
  1900 		}
       
  1901 
       
  1902 	return iError;
       
  1903 	}
       
  1904 
       
  1905 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioRecorderUtility* aRecorder)
       
  1906 	{
       
  1907 	DeleteAudioEffect();
       
  1908 	if (aRecorder)
       
  1909 		{
       
  1910 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aRecorder));
       
  1911 		if ( iError == KErrNone)
       
  1912 			{
       
  1913 			if (!AssignEffect())
       
  1914 				{
       
  1915 				iLogger->Log(_L("Assign Utility Object failed"));
       
  1916 				iError = KErrBadHandle;
       
  1917 				}
       
  1918 			}
       
  1919 		}
       
  1920 	else
       
  1921 		{
       
  1922 		iLogger->Log(_L("Create failed: Parameter Recorder is NULL!"));
       
  1923 		iError = KErrBadHandle;
       
  1924 		}
       
  1925 
       
  1926 	return iError;
       
  1927 	}
       
  1928 
       
  1929 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioConvertUtility* aConverter)
       
  1930 	{
       
  1931     DeleteAudioEffect();
       
  1932     if (aConverter)
       
  1933     	{
       
  1934 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aConverter));
       
  1935 		if ( iError == KErrNone)
       
  1936 			{
       
  1937 			if (!AssignEffect())
       
  1938 				{
       
  1939 				iLogger->Log(_L("Assign Utility Object failed"));
       
  1940 				iError = KErrBadHandle;
       
  1941 				}
       
  1942 			}
       
  1943     	}
       
  1944 	else
       
  1945 		{
       
  1946 		iLogger->Log(_L("Create failed: Parameter Converter is NULL!"));
       
  1947 		iError = KErrBadHandle;
       
  1948 		}
       
  1949 
       
  1950 	return iError;
       
  1951 	}
       
  1952 
       
  1953 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioToneUtility* aTone)
       
  1954 	{
       
  1955     DeleteAudioEffect();
       
  1956     if (aTone)
       
  1957     	{
       
  1958 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aTone));
       
  1959 		if ( iError == KErrNone)
       
  1960 			{
       
  1961 			if (!AssignEffect())
       
  1962 				{
       
  1963 				iLogger->Log(_L("Assign Utility Object failed"));
       
  1964 				iError = KErrBadHandle;
       
  1965 				}
       
  1966 			}
       
  1967     	}
       
  1968 	else
       
  1969 		{
       
  1970 		iLogger->Log(_L("Create failed: Parameter Tone object is NULL!"));
       
  1971 		iError = KErrBadHandle;
       
  1972 		}
       
  1973 
       
  1974 	return iError;
       
  1975 	}
       
  1976 
       
  1977 TInt CTestStereoWideningUtility::AssignObject(CMMFDevSound* aDevSound)
       
  1978 	{
       
  1979     DeleteAudioEffect();
       
  1980     if (aDevSound)
       
  1981     	{
       
  1982 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aDevSound));
       
  1983 		if ( iError == KErrNone)
       
  1984 			{
       
  1985 			if (!AssignEffect())
       
  1986 				{
       
  1987 				iLogger->Log(_L("Assign Utility Object failed"));
       
  1988 				iError = KErrBadHandle;
       
  1989 				}
       
  1990 			}
       
  1991     	}
       
  1992 	else
       
  1993 		{
       
  1994 		iLogger->Log(_L("Create failed: Parameter DevSound is NULL!\n"));
       
  1995 		iError = KErrBadHandle;
       
  1996 		}
       
  1997 
       
  1998 	return iError;
       
  1999 	}
       
  2000 
       
  2001 
       
  2002 TInt CTestStereoWideningUtility::AssignObject(CCustomCommandUtility* aCustomCommand)
       
  2003 	{
       
  2004     if (aCustomCommand)
       
  2005     	{
       
  2006 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(aCustomCommand));
       
  2007 		if ( iError == KErrNone)
       
  2008 			{
       
  2009 			if (!AssignEffect())
       
  2010 				{
       
  2011 				iLogger->Log(_L("Assign Utility Object failed"));
       
  2012 				iError = KErrBadHandle;
       
  2013 				}
       
  2014 			}
       
  2015     	}
       
  2016 	else
       
  2017 		{
       
  2018 		iLogger->Log(_L("Create failed: Parameter CustomCommand is NULL!\n"));
       
  2019 		iError = KErrBadHandle;
       
  2020 		}
       
  2021 
       
  2022 	return iError;
       
  2023 	}
       
  2024 
       
  2025 TInt CTestStereoWideningUtility::AssignObject(MCustomInterface* aCustomInterface)
       
  2026 	{
       
  2027     if (aCustomInterface)
       
  2028     	{
       
  2029 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aCustomInterface));
       
  2030 		if ( iError == KErrNone)
       
  2031 			{
       
  2032 			if (!AssignEffect())
       
  2033 				{
       
  2034 				iLogger->Log(_L("Assign Utility Object failed"));
       
  2035 				iError = KErrBadHandle;
       
  2036 				}
       
  2037 			}
       
  2038     	}
       
  2039 	else
       
  2040 		{
       
  2041 		iLogger->Log(_L("Create failed: Parameter CustomInterface is NULL!"));
       
  2042 		iError = KErrBadHandle;
       
  2043 		}
       
  2044 
       
  2045 	return iError;
       
  2046 	}
       
  2047 
       
  2048 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioInputStream* aInputStream)
       
  2049 	{
       
  2050     DeleteAudioEffect();
       
  2051    	if (aInputStream)
       
  2052    		{
       
  2053 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aInputStream));
       
  2054 		if ( iError == KErrNone)
       
  2055 			{
       
  2056 			if (!AssignEffect())
       
  2057 				{
       
  2058 				iLogger->Log(_L("Assign Utility Object failed"));
       
  2059 				iError = KErrBadHandle;
       
  2060 				}
       
  2061 			}
       
  2062    		}
       
  2063 	else
       
  2064 		{
       
  2065 		iLogger->Log(_L("Create failed: Parameter InputStream is NULL!"));
       
  2066 		iError = KErrBadHandle;
       
  2067 		}
       
  2068 
       
  2069 	return iError;
       
  2070 	}
       
  2071 
       
  2072 TInt CTestStereoWideningUtility::AssignObject(CMdaAudioOutputStream* aOutputStream)
       
  2073 	{
       
  2074     DeleteAudioEffect();
       
  2075     if (aOutputStream)
       
  2076     	{
       
  2077 		TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aOutputStream));
       
  2078 		if ( iError == KErrNone)
       
  2079 			{
       
  2080 			if (!AssignEffect())
       
  2081 				{
       
  2082 				iLogger->Log(_L("Assign Utility Object failed"));
       
  2083 				iError = KErrBadHandle;
       
  2084 				}
       
  2085 			}
       
  2086     	}
       
  2087 	else
       
  2088 		{
       
  2089 		iLogger->Log(_L("Create failed: Parameter OutputStream is NULL!"));
       
  2090 		iError = KErrBadHandle;
       
  2091 		}
       
  2092 
       
  2093 	return iError;
       
  2094 	}
       
  2095 
       
  2096 TInt CTestStereoWideningUtility::AssignObject(CMidiClientUtility* aMidiClient)
       
  2097 	{
       
  2098 	    DeleteAudioEffect();
       
  2099 	    if (aMidiClient)
       
  2100 	    {
       
  2101 			TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aMidiClient));
       
  2102 			if ( iError == KErrNone)
       
  2103 			{
       
  2104 				if (!AssignEffect())
       
  2105 				{
       
  2106 					iLogger->Log(_L("Assign Utility Object failed"));
       
  2107 					iError = KErrBadHandle;
       
  2108 				}
       
  2109 			}
       
  2110 	    }
       
  2111 		else
       
  2112 		{
       
  2113 			iLogger->Log(_L("Create failed: Parameter MidiClient is NULL!"));
       
  2114 			iError = KErrBadHandle;
       
  2115 		}
       
  2116 
       
  2117 		return iError;
       
  2118 
       
  2119 	}
       
  2120 
       
  2121 TInt CTestStereoWideningUtility::AssignObject(CDrmPlayerUtility* aDrmPlayer)
       
  2122 	{
       
  2123 		DeleteAudioEffect();
       
  2124 		if (aDrmPlayer)
       
  2125 			{
       
  2126 			TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aDrmPlayer));
       
  2127 			if ( iError == KErrNone)
       
  2128 				{
       
  2129 				if (!AssignEffect())
       
  2130 				{
       
  2131 					iLogger->Log(_L("Assign Utility Object failed"));
       
  2132 					iError = KErrBadHandle;
       
  2133 				}
       
  2134 				}
       
  2135 			}
       
  2136 		else
       
  2137 			{
       
  2138 			iLogger->Log(_L("Create failed: Parameter DrmPlayer is NULL!"));
       
  2139 			iError = KErrBadHandle;
       
  2140 			}
       
  2141 		return iError;
       
  2142 	}
       
  2143 
       
  2144 TInt CTestStereoWideningUtility::AssignObject(CVideoPlayerUtility* aUtility)
       
  2145 	{
       
  2146 		DeleteAudioEffect();
       
  2147 		if (aUtility)
       
  2148 			{
       
  2149 			TRAP(iError, iStereoWideningUtility = CStereoWideningUtility::NewL(*aUtility));
       
  2150 			if ( iError == KErrNone)
       
  2151 				{
       
  2152 				if (!AssignEffect())
       
  2153 				{
       
  2154 					iLogger->Log(_L("Assign Utility Object failed"));
       
  2155 					iError = KErrBadHandle;
       
  2156 				}
       
  2157 				}
       
  2158 			}
       
  2159 		else
       
  2160 			{
       
  2161 			iLogger->Log(_L("Create failed: Parameter Utility is NULL!"));
       
  2162 			iError = KErrBadHandle;
       
  2163 			}
       
  2164 		return iError;
       
  2165 	}
       
  2166 TInt CTestStereoWideningUtility::ProcessTag(CStifItemParser *aItem, TTestResult & aResult)
       
  2167 	{
       
  2168 	TPtrC tag;
       
  2169 	aItem->GetString(_L(""), tag);
       
  2170 
       
  2171 	if (!tag.Compare(KTagCreatePreset))
       
  2172 		{
       
  2173 		return CreateNewPreset(aItem, aResult);
       
  2174 		}
       
  2175 
       
  2176 	if (!tag.Compare(KTagGetPreset))
       
  2177 		{
       
  2178 		return GetPreset(aItem, aResult);
       
  2179 		}
       
  2180 
       
  2181 	if (!tag.Compare(KTagNumberOfPreDefinePresets))
       
  2182 		{
       
  2183 		return NumberOfPreDefinedPresets(aResult);
       
  2184 		}
       
  2185 	if (!tag.Compare(KTagApplyPreset))
       
  2186 		{
       
  2187 		return ApplyPreset(aItem, aResult);
       
  2188 		}
       
  2189 
       
  2190 	if (!tag.Compare(KTagModifyPreset))
       
  2191 		{
       
  2192 		return ModifyPreset(aItem, aResult);
       
  2193 		}
       
  2194 
       
  2195 	if (!tag.Compare(KTagResetPreset))
       
  2196 		{
       
  2197 		return ResetPreset(aItem, aResult);
       
  2198 		}
       
  2199 
       
  2200 	if (!tag.Compare(KTagDeletePreset))
       
  2201 		{
       
  2202 		return DeletePreset(aItem, aResult);
       
  2203 		}
       
  2204 
       
  2205 	if (!tag.Compare(KTagDisable))
       
  2206 		{
       
  2207 		return DisableEffect(aItem, aResult);
       
  2208 		}
       
  2209 
       
  2210 	return CTestAudioEffectPreset::ProcessTag(aItem, aResult);
       
  2211 	}
       
  2212 
       
  2213 void CTestStereoWideningUtility::PrintPresetNamesL()
       
  2214 	{
       
  2215 	TArray<TEfStereoWideningUtilityPreset> presetData = iStereoWideningUtility->Presets();
       
  2216 
       
  2217 	iPresetCount = presetData.Count();
       
  2218 
       
  2219 	for(TInt i = 0; i < iPresetCount; i++)
       
  2220 		{
       
  2221 		iLogger->Log(KAudioIndex,i+1);
       
  2222 		iLogger->Log(iStereoWideningUtility->GetPresetL(i));
       
  2223 		iLogger->Log(KAudioNewLine);
       
  2224 		}
       
  2225 
       
  2226 	}
       
  2227 
       
  2228