diff -r 56b11cf8addb -r a12246c97fcc mpxplugins/serviceplugins/playbackplugins/audioeffects/src/mpxaudioeffectengine.cpp --- a/mpxplugins/serviceplugins/playbackplugins/audioeffects/src/mpxaudioeffectengine.cpp Tue May 25 12:39:12 2010 +0300 +++ b/mpxplugins/serviceplugins/playbackplugins/audioeffects/src/mpxaudioeffectengine.cpp Wed Jun 09 09:38:28 2010 +0300 @@ -109,9 +109,20 @@ iProp->LoadFromFileL(); if(iMdaPlayer) { - if(iMdaPlayer->SetBalance(iProp->Balance())!=KErrNone) + TInt currentBalance; + TInt err = iMdaPlayer->GetBalance(currentBalance); + if( err !=KErrNone ) + { + User::Leave(KErrNotSupported); + } + // don't set non-changed values: + if( iProp->Balance() != currentBalance ) { - User::Leave(KErrNotSupported); + err = iMdaPlayer->SetBalance(iProp->Balance()); + if( err !=KErrNone ) + { + User::Leave(KErrNotSupported); + } } } } @@ -219,14 +230,18 @@ } } - iStereoEffect->EnableL(); - TUint8 level = 30; - iStereoEffect->SetStereoWideningLevelL( level ); - iStereoEffect->ApplyL(); + if ( !iStereoEffect->IsEnabled() ) + { + iStereoEffect->EnableL(); + TUint8 level = 30; + iStereoEffect->SetStereoWideningLevelL( level ); + iStereoEffect->ApplyL(); + } + } else { - if (iStereoEffect) // If audio effects was not on, then no need to disable + if (iStereoEffect && iStereoEffect->IsEnabled() ) // If audio effects was not on, then no need to disable { iStereoEffect->DisableL(); } @@ -295,12 +310,15 @@ } } - iLoudnessEffect->EnableL(); + if( !iLoudnessEffect->IsEnabled() ) + { + iLoudnessEffect->EnableL(); + } } else - { - if( iLoudnessEffect ) // Only disable if it was constructed - { + { + if( iLoudnessEffect && iLoudnessEffect->IsEnabled() ) + { iLoudnessEffect->DisableL(); } }