mmsharing/mmshengine/src/musengtelephoneutils.cpp
branchRCL_3
changeset 18 0da2e08216b6
parent 11 ff8a573c0e2e
child 21 ce86b6d44a6d
--- 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();