devsound/a3fdevsound/src/devsoundadaptor/cdevtonecontrol.cpp
changeset 15 c1e808730d6c
parent 0 40261b775718
equal deleted inserted replaced
13:efebd1779a59 15:c1e808730d6c
   154 		}
   154 		}
   155 
   155 
   156 	err = iDevAudio->iAudioStream->Initialize();
   156 	err = iDevAudio->iAudioStream->Initialize();
   157 	if (err == KErrNone)
   157 	if (err == KErrNone)
   158 		{
   158 		{
   159 		err = iDevAudio->iAudioContext->Commit();
   159 		err = iDevAudio->CommitAudioContext();
   160 		}
   160 		}
   161 	if (err == KErrNone)
   161 	if (err == KErrNone)
   162 		{
   162 		{
   163 		iDevAudio->iActiveState = EDevSoundAdaptorInitialising;
   163 		iDevAudio->iActiveState = EDevSoundAdaptorInitialising;
   164 		}
   164 		}
   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 				}
   209 			DP0(DLINFO, "Already in loaded state");
   229 			DP0(DLINFO, "Already in loaded state");
   210 			err = iDevAudio->RequestGainAndBalance(this);
   230 			err = iDevAudio->RequestGainAndBalance(this);
   211 			if (err==KErrNone)
   231 			if (err==KErrNone)
   212 				{
   232 				{
   213 				err = iDevAudio->iAudioStream->Activate();
   233 				err = iDevAudio->iAudioStream->Activate();
   214 				}
   234 				}
   215 			if (err == KErrNone)
   235 			if (err == KErrNone)
   216 				{
   236 				{
   217 				err = iDevAudio->iAudioContext->Commit();
   237 				err = iDevAudio->CommitAudioContext();
   218 				}
   238 				}
   219 			if (err == KErrNone)
   239 			if (err == KErrNone)
   220 				{
   240 				{
   221 				iDevAudio->iActiveState = EDevSoundAdaptorActivating;
   241 				iDevAudio->iActiveState = EDevSoundAdaptorActivating;
   222 				}
   242 				}
   223 			break;
   243 			break;
       
   244 			}
   224 		case EDevSoundAdaptorActive_Active:
   245 		case EDevSoundAdaptorActive_Active:
   225 		default:
   246 		default:
   226 			err = KErrNotReady;
   247 			err = KErrNotReady;
   227 			break;
   248 			break;
   228 		}
   249 		}
   337 	DP_IN();
   358 	DP_IN();
   338 	asyncOperation = EFalse;
   359 	asyncOperation = EFalse;
   339 	TInt err = iDevAudio->iAudioStream->Stop();
   360 	TInt err = iDevAudio->iAudioStream->Stop();
   340 	if ( err == KErrNone)
   361 	if ( err == KErrNone)
   341 		{
   362 		{
   342 		err = iDevAudio->iAudioContext->Commit();
   363 		err = iDevAudio->CommitAudioContext();
   343 		if(err == KErrNone)
   364 		if(err == KErrNone)
   344 			{
   365 			{
   345 			iDevAudio->iActiveState = EDevSoundAdaptorStopping;
   366 			iDevAudio->iActiveState = EDevSoundAdaptorStopping;
   346 			asyncOperation = ETrue;
   367 			asyncOperation = ETrue;
   347 			}
   368 			}