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 } |