devsound/a3fdevsound/src/devsoundadaptor/cdevplaycontrol.cpp
changeset 15 c1e808730d6c
parent 0 40261b775718
equal deleted inserted replaced
13:efebd1779a59 15:c1e808730d6c
   141 		if (err == KErrNone)
   141 		if (err == KErrNone)
   142 			{
   142 			{
   143 			err = iDevAudio->iAudioStream->Initialize();
   143 			err = iDevAudio->iAudioStream->Initialize();
   144 			if (err == KErrNone)
   144 			if (err == KErrNone)
   145 				{
   145 				{
   146 				err = iDevAudio->iAudioContext->Commit();
   146 				err = iDevAudio->CommitAudioContext();
   147 				if (err == KErrNone)
   147 				if (err == KErrNone)
   148 					{
   148 					{
   149 					iDevAudio->iActiveState = EDevSoundAdaptorInitialising;
   149 					iDevAudio->iActiveState = EDevSoundAdaptorInitialising;
   150 					}
   150 					}
   151 				}
   151 				}
   193 				{
   193 				{
   194 				err = iDevAudio->iAudioStream->Load();
   194 				err = iDevAudio->iAudioStream->Load();
   195 				}
   195 				}
   196 			if ( err == KErrNone)
   196 			if ( err == KErrNone)
   197 				{
   197 				{
   198 				err = iDevAudio->iAudioContext->Commit();
   198 				err = iDevAudio->CommitAudioContext();
   199 				}
   199 				}
   200 			if(err == KErrNone)
   200 			if(err == KErrNone)
   201 				{
   201 				{
   202 				iDevAudio->iActiveState = EDevSoundAdaptorLoading;
   202 				iDevAudio->iActiveState = EDevSoundAdaptorLoading;
   203 				}
   203 				}
   204 			}
   204 			}
   205 			break;
   205 			break;
   206 
   206 
       
   207 		case EDevSoundAdaptorGoingActive:
       
   208 			{
       
   209 			//If following condition is false, then we are here because of a
       
   210 			//pre-emption clash in last Commit cycle started from
       
   211 			//CDevCommonControl::ContextEventUpdateWithStateEventNoError.
       
   212 			if(iDevAudio->iPreviousState != EDevSoundAdaptorActivating)
       
   213 				{
       
   214 				break;
       
   215 				}
       
   216 			//Fall through as required
       
   217 			}
   207 		case EDevSoundAdaptorPaused_Primed:
   218 		case EDevSoundAdaptorPaused_Primed:
   208 		case EDevSoundAdaptorInitialised_Idle:
   219 		case EDevSoundAdaptorInitialised_Idle:
       
   220 			{
       
   221 			//If following condition is true, then we are here because of a
       
   222 			//pre-emption clash in last Commit cycle started from
       
   223 			//CDevCommonControl::ContextEventUpdateWithStateEventAndError.
       
   224 			if(iDevAudio->iPreviousState == EDevSoundAdaptorUnloading)
       
   225 				{
       
   226 				err = Unload();
       
   227 				break;
       
   228 				}
       
   229 
   209 			err = iDevAudio->RequestGainAndBalance(this);
   230 			err = iDevAudio->RequestGainAndBalance(this);
   210 			if (err==KErrNone)
   231 			if (err==KErrNone)
   211 				{
   232 				{
   212 				err = iDevAudio->iAudioStream->Activate();
   233 				err = iDevAudio->iAudioStream->Activate();
   213 				}
   234 				}
   214 			if (err == KErrNone)
   235 			if (err == KErrNone)
   215 				{
   236 				{
   216 				err = iDevAudio->iAudioContext->Commit();
   237 				err = iDevAudio->CommitAudioContext();
   217 				}
   238 				}
   218 			if (err == KErrNone)
   239 			if (err == KErrNone)
   219 				{
   240 				{
   220 				iDevAudio->iActiveState = EDevSoundAdaptorActivating;
   241 				iDevAudio->iActiveState = EDevSoundAdaptorActivating;
   221 				}
   242 				}
   222 			break;
   243 			break;
       
   244 			}
   223 		case EDevSoundAdaptorActive_Active:
   245 		case EDevSoundAdaptorActive_Active:
   224 			// Deliberate fall through - set err=KErrNotReady for PlayInit when already active
   246 			// Deliberate fall through - set err=KErrNotReady for PlayInit when already active
   225 		default:
   247 		default:
   226 			err = KErrNotReady;
   248 			err = KErrNotReady;
   227 			break;
   249 			break;
   321 	DP_IN();
   343 	DP_IN();
   322 	aAyncOperation = EFalse;
   344 	aAyncOperation = EFalse;
   323 	TInt err = iDevAudio->iAudioStream->Stop();
   345 	TInt err = iDevAudio->iAudioStream->Stop();
   324 	if ( err == KErrNone)
   346 	if ( err == KErrNone)
   325 		{
   347 		{
   326 		err = iDevAudio->iAudioContext->Commit();
   348 		err = iDevAudio->CommitAudioContext();
   327 		if(err == KErrNone)
   349 		if(err == KErrNone)
   328 			{
   350 			{
   329 			iDevAudio->iActiveState = EDevSoundAdaptorStopping;
   351 			iDevAudio->iActiveState = EDevSoundAdaptorStopping;
   330 			aAyncOperation = ETrue;
   352 			aAyncOperation = ETrue;
   331 			}
   353 			}