phoneengine/audiohandling/src/cpegsmaudiodata.cpp
branchRCL_3
changeset 62 5266b1f337bd
parent 61 41a7f70b3818
child 81 c26cc2a7c548
--- a/phoneengine/audiohandling/src/cpegsmaudiodata.cpp	Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneengine/audiohandling/src/cpegsmaudiodata.cpp	Wed Sep 01 12:30:10 2010 +0100
@@ -35,7 +35,7 @@
 // None.
 
 // CONSTANTS
-// None.
+const TInt KDtmfSilent = 0;
 
 // MACROS
 // None.
@@ -83,9 +83,6 @@
     
     iInbandTonePlayer = 
         CPEAudioInbandTonePlayer::NewL( *this, iFsSession, aAudioFactory );
-    TInt volume = iPhoneModel.DataStore()->AudioVolume(); 
-    iInbandTonePlayer->SetVolume( volume );
-    
     iDtmfTonePlayer = CPEAudioDtmfTonePlayer::NewL();
     }
 
@@ -121,7 +118,7 @@
         ( 
         MPEPhoneModelInternal& aPhoneModel,
         RFs& aFsSession,
-        CPEAudioFactory& aAudioFactory  
+        CPEAudioFactory& aAudioFactory	
         )
     {
     CPEGsmAudioData* self = new ( ELeave ) 
@@ -154,16 +151,21 @@
         const TChar& aTone //DTMF tone to play
         ) const
     {
-    TInt volume;  //DTMF tone volume
+	TInt volume;  //DTMF tone volume
     volume = iPhoneModel.DataStore()->KeypadVolume();
 
     TEFLOGSTRING3( KTAREQIN, 
         "AUD CPEGsmAudioData::PlayDtmfTone, aTone = %s, volume = %d", 
         &aTone, 
         volume );
-
-    iDtmfTonePlayer->SetVolume( volume );
-    iDtmfTonePlayer->PlayDtmfTone( aTone );
+		
+    // If profile key tones setting is OFF, the volume will be O 
+	// Don't play dtmf tone here to avoid interrupting the possible touch tone's playing.
+    if ( KDtmfSilent != volume )
+        {
+        iDtmfTonePlayer->SetVolume( volume );
+        iDtmfTonePlayer->PlayDtmfTone( aTone );
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -235,7 +237,7 @@
                 if ( DtmfLocalPlayAllowed() )
                     {
                     TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: PlayDtmfTone" );
-                    PlayDtmfTone( aTone );
+    			    PlayDtmfTone( aTone );
                     }
                 else
                     {
@@ -252,16 +254,16 @@
             case ECCEDtmfStringSendingCompleted:
             default:
                 TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: StopDtmfTonePlay" );
-                //Stop tone playing
-                StopDtmfTonePlay();
+    			//Stop tone playing
+    			StopDtmfTonePlay();
                 break;
             }
         }
     else
         {
         TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: Error case" );
-        //Stop tone playing
-        StopDtmfTonePlay();
+    	//Stop tone playing
+    	StopDtmfTonePlay();
         }
     }
 
@@ -298,11 +300,10 @@
 // CPEGsmAudioData::DoHandleVolumeChange
 // -----------------------------------------------------------------------------
 //
-void CPEGsmAudioData::DoHandleVolumeChange( TInt aVolume, TBool aSendMsg)
+void CPEGsmAudioData::DoHandleVolumeChange( TInt aVolume )
 
     {
     iInbandTonePlayer->SetVolume( aVolume );
-    CPEAudioData::DoHandleVolumeChange(aVolume , aSendMsg);
     }
 
 // ================= OTHER EXPORTED FUNCTIONS ===============================