347 DP_IN(); |
347 DP_IN(); |
348 TInt err(KErrNone); |
348 TInt err(KErrNone); |
349 |
349 |
350 if(iActiveState != EDevSoundAdaptorCreated_Uninitialised && |
350 if(iActiveState != EDevSoundAdaptorCreated_Uninitialised && |
351 iActiveState != EDevSoundAdaptorInitialised_Initialised && |
351 iActiveState != EDevSoundAdaptorInitialised_Initialised && |
352 iActiveState != EDevSoundAdaptorInitialised_Idle) |
352 iActiveState != EDevSoundAdaptorInitialised_Idle && |
|
353 iActiveState != EDevSoundAdaptorUnitialised_Uninitialised ) |
353 { |
354 { |
354 DP0_RET(KErrNotReady, "%d"); |
355 DP0_RET(KErrNotReady, "%d"); |
355 } |
356 } |
356 |
357 |
357 // Reinitialization |
358 // Reinitialization |
364 if(iActiveState == EDevSoundAdaptorInitialised_Idle) |
365 if(iActiveState == EDevSoundAdaptorInitialised_Idle) |
365 { |
366 { |
366 err = iAudioStream->Unload(); |
367 err = iAudioStream->Unload(); |
367 if(err == KErrNone) |
368 if(err == KErrNone) |
368 { |
369 { |
|
370 err = CommitAudioContext(); |
|
371 } |
|
372 if(err == KErrNone) |
|
373 { |
369 iActiveState = EDevSoundAdaptorUnloading; |
374 iActiveState = EDevSoundAdaptorUnloading; |
370 err = iAudioContext->Commit(); |
|
371 } |
375 } |
372 } |
376 } |
373 else |
377 else |
374 { |
378 { |
375 err = iCurrentAudioControl->Uninitialize(); |
379 err = iCurrentAudioControl->Uninitialize(); |
376 } |
380 } |
|
381 DP0_RET(err, "%d"); |
|
382 } |
|
383 |
|
384 // Redo partial initialization after pre-emption clash event in |
|
385 // EDevSoundAdaptorRemovingProcessingUnits state |
|
386 if (iActiveState == EDevSoundAdaptorUnitialised_Uninitialised && |
|
387 iPreviousState == EDevSoundAdaptorRemovingProcessingUnits) |
|
388 { |
|
389 err = iCurrentAudioControl->RemoveProcessingUnits(); |
377 DP0_RET(err, "%d"); |
390 DP0_RET(err, "%d"); |
378 } |
391 } |
379 |
392 |
380 // Delete pUnits if already created |
393 // Delete pUnits if already created |
381 if (iAudioSource) |
394 if (iAudioSource) |
483 TInt err(KErrNone); |
496 TInt err(KErrNone); |
484 |
497 |
485 if( iActiveState != EDevSoundAdaptorInitialised_Initialised) |
498 if( iActiveState != EDevSoundAdaptorInitialised_Initialised) |
486 { |
499 { |
487 DP0_RET(KErrNotReady, "%d"); |
500 DP0_RET(KErrNotReady, "%d"); |
|
501 } |
|
502 |
|
503 // Redo partial cancelling of initialization after pre-emption clash event in |
|
504 // EDevSoundAdaptorRemovingProcessingUnits state. |
|
505 if (iActiveState == EDevSoundAdaptorUnitialised_Uninitialised && |
|
506 iPreviousState == EDevSoundAdaptorRemovingProcessingUnits) |
|
507 { |
|
508 err = iCurrentAudioControl->RemoveProcessingUnits(); |
|
509 DP0_RET(err, "%d"); |
488 } |
510 } |
489 |
511 |
490 err = iCurrentAudioControl->Uninitialize(); |
512 err = iCurrentAudioControl->Uninitialize(); |
491 |
513 |
492 DP0_RET(err, "%d"); |
514 DP0_RET(err, "%d"); |
572 DP_CONTEXT(CDevAudio::ActiveState *CD1*, CtxDevSound, DPLOCAL); |
594 DP_CONTEXT(CDevAudio::ActiveState *CD1*, CtxDevSound, DPLOCAL); |
573 DP_IN(); |
595 DP_IN(); |
574 DP0_RET(iActiveState, "%d"); |
596 DP0_RET(iActiveState, "%d"); |
575 } |
597 } |
576 |
598 |
|
599 // ----------------------------------------------------------------------------- |
|
600 // CDevAudio::ActiveState |
|
601 // ----------------------------------------------------------------------------- |
|
602 // |
|
603 TDevSoundAdaptorState CDevAudio::PreviousState() const |
|
604 { |
|
605 DP_CONTEXT(CDevAudio::PreviousState *CD1*, CtxDevSound, DPLOCAL); |
|
606 DP_IN(); |
|
607 DP0_RET(iPreviousState, "%d"); |
|
608 } |
|
609 |
|
610 // ----------------------------------------------------------------------------- |
|
611 // CDevAudio::SetActiveState |
|
612 // ----------------------------------------------------------------------------- |
|
613 // |
|
614 void CDevAudio::SetActiveState(TDevSoundAdaptorState aAdaptorState) |
|
615 { |
|
616 DP_CONTEXT(CDevAudio::SetActiveState *CD1*, CtxDevSound, DPLOCAL); |
|
617 DP_IN(); |
|
618 iActiveState = aAdaptorState; |
|
619 DP_OUT(); |
|
620 } |
|
621 |
|
622 // ----------------------------------------------------------------------------- |
|
623 // CDevAudio::SetPreviousState |
|
624 // ----------------------------------------------------------------------------- |
|
625 // |
|
626 void CDevAudio::SetPreviousState(TDevSoundAdaptorState aAdaptorState) |
|
627 { |
|
628 DP_CONTEXT(CDevAudio::SetPreviousState *CD1*, CtxDevSound, DPLOCAL); |
|
629 DP_IN(); |
|
630 iPreviousState = aAdaptorState; |
|
631 DP_OUT(); |
|
632 } |
577 |
633 |
578 // ----------------------------------------------------------------------------- |
634 // ----------------------------------------------------------------------------- |
579 // CDevAudio::SetDevSoundVolume |
635 // CDevAudio::SetDevSoundVolume |
580 // ----------------------------------------------------------------------------- |
636 // ----------------------------------------------------------------------------- |
581 // |
637 // |
909 iAudioCodec = NULL; |
965 iAudioCodec = NULL; |
910 } |
966 } |
911 DP_OUT(); |
967 DP_OUT(); |
912 } |
968 } |
913 |
969 |
|
970 TInt CDevAudio::CommitAudioContext() |
|
971 { |
|
972 DP_CONTEXT(CDevAudio::CommitAudioContext *CD1*, CtxDevSound, DPLOCAL); |
|
973 DP_IN(); |
|
974 |
|
975 //If we are in mid state then Panic as DevSound server-side session (CMMFDevSoundSession) is not blocking properly |
|
976 __ASSERT_DEBUG(!IsMidState(iActiveState), Panic(EValidStateBeforeCommit)); |
|
977 |
|
978 TInt err = KErrNone; |
|
979 iPreviousState = iActiveState; |
|
980 err = iAudioContext->Commit(); |
|
981 |
|
982 DP0_RET(err,"%d"); |
|
983 } |
|
984 |
|
985 TBool CDevAudio::IsMidState(TDevSoundAdaptorState aAdaptorState) |
|
986 { |
|
987 DP_CONTEXT(CDevAudio::IsMidState *CD1*, CtxDevSound, DPLOCAL); |
|
988 DP_IN(); |
|
989 if (aAdaptorState == EDevSoundAdaptorRemovingProcessingUnits || aAdaptorState == EDevSoundAdaptorUninitialising || |
|
990 aAdaptorState == EDevSoundAdaptorInitialising || aAdaptorState == EDevSoundAdaptorLoading || |
|
991 aAdaptorState == EDevSoundAdaptorUnloading || aAdaptorState == EDevSoundAdaptorStopping || |
|
992 aAdaptorState == EDevSoundAdaptorActivating || aAdaptorState == EDevSoundAdaptorPausing) |
|
993 { |
|
994 DP0_RET(ETrue,"%d"); |
|
995 } |
|
996 DP0_RET(EFalse,"%d"); |
|
997 } |
914 |
998 |
915 // ----------------------------------------------------------------------------- |
999 // ----------------------------------------------------------------------------- |
916 // From MA3FDevSoundAutoPauseResume |
1000 // From MA3FDevSoundAutoPauseResume |
917 // CDevAudio::RegisterAsClient |
1001 // CDevAudio::RegisterAsClient |
918 // ----------------------------------------------------------------------------- |
1002 // ----------------------------------------------------------------------------- |