--- a/devsound/a3fdevsound/src/devsoundadaptor/cdevtonecontrol.cpp Wed Mar 31 23:56:23 2010 +0300
+++ b/devsound/a3fdevsound/src/devsoundadaptor/cdevtonecontrol.cpp Wed Apr 14 17:32:53 2010 +0300
@@ -156,7 +156,7 @@
err = iDevAudio->iAudioStream->Initialize();
if (err == KErrNone)
{
- err = iDevAudio->iAudioContext->Commit();
+ err = iDevAudio->CommitAudioContext();
}
if (err == KErrNone)
{
@@ -195,7 +195,7 @@
}
if ( err == KErrNone)
{
- err = iDevAudio->iAudioContext->Commit();
+ err = iDevAudio->CommitAudioContext();
}
if(err == KErrNone)
{
@@ -204,8 +204,28 @@
}
break;
+ case EDevSoundAdaptorGoingActive:
+ {
+ //If following condition is false, then we are here because of a
+ //pre-emption clash in last Commit cycle started from
+ //CDevCommonControl::ContextEventUpdateWithStateEventNoError.
+ if(iDevAudio->iPreviousState != EDevSoundAdaptorActivating)
+ {
+ break;
+ }
+ //Fall through as required
+ }
case EDevSoundAdaptorPaused_Primed:
case EDevSoundAdaptorInitialised_Idle:
+ {
+ //If following condition is true, then we are here because of a
+ //pre-emption clash in last Commit cycle started from
+ //CDevCommonControl::ContextEventUpdateWithStateEventAndError.
+ if(iDevAudio->iPreviousState == EDevSoundAdaptorUnloading)
+ {
+ err = Unload();
+ break;
+ }
DP0(DLINFO, "Already in loaded state");
err = iDevAudio->RequestGainAndBalance(this);
if (err==KErrNone)
@@ -214,13 +234,14 @@
}
if (err == KErrNone)
{
- err = iDevAudio->iAudioContext->Commit();
+ err = iDevAudio->CommitAudioContext();
}
if (err == KErrNone)
{
iDevAudio->iActiveState = EDevSoundAdaptorActivating;
}
break;
+ }
case EDevSoundAdaptorActive_Active:
default:
err = KErrNotReady;
@@ -339,7 +360,7 @@
TInt err = iDevAudio->iAudioStream->Stop();
if ( err == KErrNone)
{
- err = iDevAudio->iAudioContext->Commit();
+ err = iDevAudio->CommitAudioContext();
if(err == KErrNone)
{
iDevAudio->iActiveState = EDevSoundAdaptorStopping;