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