os/mm/mmlibs/mmfw/tsrc/mmfintegrationtest/SDevSound/SDSCapTestServer/src/CapTestStepBase.cpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #include "CapTestStep.h"
    17 
    18 CDevSoundTestStepBase* CDevSoundTestStepBase::NewL()
    19 	{
    20 	CDevSoundTestStepBase* self = new (ELeave) CDevSoundTestStepBase;
    21 	CleanupStack::PushL(self);
    22 
    23 	self->ConstructL();
    24 
    25 	CleanupStack::Pop();
    26 	return self;
    27 	}
    28 	
    29 void CDevSoundTestStepBase::ConstructL()
    30 	{
    31 	}
    32 	
    33 CDevSoundTestStepBase::CDevSoundTestStepBase()
    34 	{
    35 	ResetCallbacks();
    36 	}
    37 
    38 CDevSoundTestStepBase::~CDevSoundTestStepBase()
    39 	{
    40 	delete iMMFDevSound;
    41 	}
    42 
    43 void CDevSoundTestStepBase::StartProcessing(TRequestStatus& /*aStatus*/)
    44 	{
    45 	}
    46 
    47 TVerdict CDevSoundTestStepBase::EndProcessingAndReturnResult(TDes8& aMessage)
    48 	{
    49 	aMessage.Copy(_L("Done"));
    50 
    51 	return iVerdict;
    52 	}
    53 	
    54 /******************************************************************************
    55  *
    56  * DevSound methods
    57  *
    58  *****************************************************************************/
    59  
    60  TVerdict CDevSoundTestStepBase::ConstructDevSound()
    61 	{
    62 	TRAPD(err, iMMFDevSound = CMMFDevSound::NewL());
    63 	if (err)
    64 		{
    65 		return EInconclusive;
    66 		}
    67 	else
    68 		{
    69 		return EPass;
    70 		}
    71 	}
    72 
    73  TVerdict CDevSoundTestStepBase::DoTestStepPreambleL()
    74 	{
    75 	return( ConstructDevSound() );
    76 	}
    77 
    78 /**
    79  *
    80  * T`estInitialize
    81  * @param aMode
    82  * @result TVerdict
    83  *
    84  */
    85 
    86 TVerdict CDevSoundTestStepBase::TestInitialize(TMMFState aMode)
    87 	{
    88 	iCallbackError = KErrNone;
    89 	iExpectedValue = KErrNone;
    90 
    91 	ResetCallbacks();
    92 	
    93 	// Initialize
    94 	TRAPD(err, iMMFDevSound->InitializeL(*this, aMode));
    95 	
    96 	if (err)
    97 		{
    98 		return EInconclusive;
    99 		}
   100 	else
   101 		{
   102 		CActiveScheduler::Start();
   103 		if (iCallbackError != iExpectedValue)
   104 			{
   105 			return EFail;
   106 			}
   107 		if (iCallbackArray[EInitComplete] != 1)
   108 			{
   109 			return EFail;
   110 			}
   111 		}
   112 	return EPass;
   113 	}
   114 
   115 /**
   116  *
   117  * TestSetVolume
   118  * @param aVol
   119  *
   120  */
   121 void CDevSoundTestStepBase::TestSetVolume(TInt aVol)
   122 	{
   123 	iMMFDevSound->SetVolume(aVol);
   124 	}
   125 
   126 /**
   127  *
   128  * TestSetPriority
   129  * @param aPriority
   130  *
   131  */
   132 void CDevSoundTestStepBase::TestSetPriority(TInt aPriority)
   133 	{
   134 	TMMFPrioritySettings	prioritySettings;
   135 
   136 	prioritySettings.iPref = EMdaPriorityPreferenceNone;
   137 	prioritySettings.iPriority = aPriority;
   138 
   139 	iMMFDevSound->SetPrioritySettings( prioritySettings );
   140 	}
   141 
   142 /**
   143  *
   144  * TestSetGain
   145  * @param aGain
   146  *
   147  */
   148 void CDevSoundTestStepBase::TestSetGain(TInt aGain)
   149 	{
   150 	iMMFDevSound->SetGain(aGain);
   151 	}
   152 
   153 /**
   154  *
   155  * TestPlayTone
   156  * @param aFreq
   157  * @param aDur
   158  * @result TVerdict
   159  *
   160  */
   161 TVerdict CDevSoundTestStepBase::TestPlayTone(TInt aFreq, TTimeIntervalMicroSeconds aDur)
   162 	{
   163 	iCallbackError = KErrNone;
   164 
   165 	ResetCallbacks();
   166 
   167 	TRAPD(err, iMMFDevSound->PlayToneL(aFreq, aDur));
   168 	if (err)
   169 		{
   170 		iCallbackError = err;
   171 		return EFail;
   172 		}
   173 	else
   174 		{
   175 		// Start the active scheduler and catch the callback
   176  		CActiveScheduler::Start();
   177 		if (iCallbackError != iExpectedValue)
   178 			{
   179 			return EFail;
   180 			}
   181 		if (iCallbackArray[EToneFinished] != 1)
   182 			{
   183 			return EFail;
   184 			}
   185 		TInt tot = GetCallbackTotal();
   186 		if (tot > 1)
   187 			{
   188 			return EFail;
   189 			}
   190 		}
   191 	return EPass;
   192 	}
   193 
   194 /**
   195  *
   196  * ResetCallbacks
   197  *
   198  */
   199 void CDevSoundTestStepBase::ResetCallbacks()
   200 	{
   201 	//Initialize callback array
   202 	iCallbackArray.Reset();
   203 	}
   204 
   205 /**
   206  *
   207  * GetCallbackTotal
   208  * @result TInt
   209  *
   210  */
   211 TInt CDevSoundTestStepBase::GetCallbackTotal()
   212 	{
   213 	TInt total = 0;
   214 	for (TInt i = EInitComplete; i < EDeviceMsg; i++)
   215 		{
   216 		total += iCallbackArray[i];
   217 		}
   218 	return total;
   219 	}
   220 
   221 /******************************************************************************
   222  *
   223  * DevSound mixin methods
   224  *
   225  *****************************************************************************/
   226  
   227 /**
   228  *
   229  * InitializeComplete
   230  * @param aError
   231  *
   232  */
   233 void CDevSoundTestStepBase::InitializeComplete (TInt aError)
   234 	{
   235 	iCallbackArray[EInitComplete] ++;
   236 	iCallbackError = aError;
   237 	CActiveScheduler::Stop();
   238 	}
   239 
   240 /**
   241  *
   242  * ToneFinished
   243  * @param aError
   244  *
   245  */
   246 void CDevSoundTestStepBase::ToneFinished (TInt aError)
   247 	{
   248 	iCallbackArray[EToneFinished] ++;
   249 	iCallbackError = aError;
   250 	}
   251 
   252 /**
   253  *
   254  * BufferToBeFilled
   255  * @param aBuffer
   256  *
   257  */
   258 void CDevSoundTestStepBase::BufferToBeFilled (CMMFBuffer* aBuffer)
   259 	{
   260 	iBuffer = aBuffer;
   261 	if (aBuffer != NULL) 
   262 		{
   263 		iCallbackError = KErrNone;
   264 		}
   265 	else 
   266 		{
   267 		iCallbackError = KErrNotFound;
   268 		}
   269 	iCallbackArray[EBuffToFill] ++;
   270 	CActiveScheduler::Stop();
   271 	}
   272 
   273 /**
   274  *
   275  * PlayError
   276  * @param aError
   277  *
   278  */
   279 void CDevSoundTestStepBase::PlayError (TInt aError)
   280 	{
   281 	iCallbackError = aError;
   282 	iCallbackArray[EPlayError] ++;
   283 	CActiveScheduler::Stop();
   284 	}
   285 
   286 /**
   287  * 
   288  * BufferToBeEmptied
   289  * @param aBuffer
   290  *
   291  */
   292 void CDevSoundTestStepBase::BufferToBeEmptied (CMMFBuffer* /*aBuffer*/)
   293 	{
   294 	iCallbackArray[EBuffToEmpty] ++;
   295 	}
   296 
   297 /**
   298  *
   299  * RecordError
   300  * @param aError
   301  *
   302  */
   303 void CDevSoundTestStepBase::RecordError (TInt aError)
   304 	{
   305 	iCallbackError = aError;
   306 	iCallbackArray[ERecError] ++;
   307 	}
   308 
   309 /**
   310  *
   311  * ConvertError
   312  *
   313  */
   314 void CDevSoundTestStepBase::ConvertError (TInt /*aError*/)
   315 	{}
   316 
   317 /**
   318  *
   319  * DeviceMessage
   320  *
   321  */
   322 void CDevSoundTestStepBase::DeviceMessage (TUid, const TDesC8& /*aMsg*/)
   323 	{}