diff -r 71306c87785a -r 0da2e08216b6 mmsharing/mmshengine/src/musengtelephoneutils.cpp --- a/mmsharing/mmshengine/src/musengtelephoneutils.cpp Tue Apr 27 16:34:06 2010 +0300 +++ b/mmsharing/mmshengine/src/musengtelephoneutils.cpp Tue May 11 16:10:30 2010 +0300 @@ -61,14 +61,20 @@ { CTelephonyAudioRouting::TAudioOutput currentMode = iTelephonyAudioRouting->Output(); - if( currentMode != iAudioOutputAtStartup ) + MUS_LOG1( "mus: [ENGINE] iAudioOutputAtStartup: %d", iAudioOutputAtStartup ); + MUS_LOG1( "mus: [ENGINE] currentMode: %d", currentMode ); + // When active call is dropped, audio output is set to ENotActive, + // but in some cases Mush engine get deleted before OutputChanged() + // notification comes. In that case we shouldn't touch output. + if( currentMode != iAudioOutputAtStartup && + currentMode != CTelephonyAudioRouting::ENotActive ) { // As going down, let audiorouting api to show notification iTelephonyAudioRouting->SetShowNote( ETrue ); TRAPD( err, DoSetOutputL( iAudioOutputAtStartup ) ); MUS_LOG1( "mus: [ENGINE] final route change completed: %d", err ) err++; - } + } } if ( iNotifier ) @@ -438,7 +444,7 @@ iTelephonyAudioRouting = CTelephonyAudioRouting::NewL( *this ); iAudioOutputAtStartup = iTelephonyAudioRouting->Output(); - + MUS_LOG1( "mus: [ENGINE] iAudioOutputAtStartup: %d", iAudioOutputAtStartup ); // Phone MUS_LOG( "mus: [ENGINE] Use static DLL" ) iPhoneCommandHandler = CPhCltCommandHandler::NewL();