phoneengine/audiohandling/src/cpegsmaudiodata.cpp
branchRCL_3
changeset 24 41a7f70b3818
parent 23 40a3f856b14d
child 25 5266b1f337bd
equal deleted inserted replaced
23:40a3f856b14d 24:41a7f70b3818
    33 
    33 
    34 // EXTERNAL FUNCTION PROTOTYPES  
    34 // EXTERNAL FUNCTION PROTOTYPES  
    35 // None.
    35 // None.
    36 
    36 
    37 // CONSTANTS
    37 // CONSTANTS
    38 const TInt KDtmfSilent = 0;
    38 // None.
    39 
    39 
    40 // MACROS
    40 // MACROS
    41 // None.
    41 // None.
    42 
    42 
    43 // LOCAL CONSTANTS AND MACROS
    43 // LOCAL CONSTANTS AND MACROS
    81     {    
    81     {    
    82     CPEAudioData::ConstructL( aAudioFactory );     
    82     CPEAudioData::ConstructL( aAudioFactory );     
    83     
    83     
    84     iInbandTonePlayer = 
    84     iInbandTonePlayer = 
    85         CPEAudioInbandTonePlayer::NewL( *this, iFsSession, aAudioFactory );
    85         CPEAudioInbandTonePlayer::NewL( *this, iFsSession, aAudioFactory );
       
    86     TInt volume = iPhoneModel.DataStore()->AudioVolume(); 
       
    87     iInbandTonePlayer->SetVolume( volume );
       
    88     
    86     iDtmfTonePlayer = CPEAudioDtmfTonePlayer::NewL();
    89     iDtmfTonePlayer = CPEAudioDtmfTonePlayer::NewL();
    87     }
    90     }
    88 
    91 
    89 // -----------------------------------------------------------------------------
    92 // -----------------------------------------------------------------------------
    90 // CPEGsmAudioData::NewL
    93 // CPEGsmAudioData::NewL
   116 //
   119 //
   117 EXPORT_C CPEGsmAudioData* CPEGsmAudioData::NewL
   120 EXPORT_C CPEGsmAudioData* CPEGsmAudioData::NewL
   118         ( 
   121         ( 
   119         MPEPhoneModelInternal& aPhoneModel,
   122         MPEPhoneModelInternal& aPhoneModel,
   120         RFs& aFsSession,
   123         RFs& aFsSession,
   121         CPEAudioFactory& aAudioFactory	
   124         CPEAudioFactory& aAudioFactory  
   122         )
   125         )
   123     {
   126     {
   124     CPEGsmAudioData* self = new ( ELeave ) 
   127     CPEGsmAudioData* self = new ( ELeave ) 
   125         CPEGsmAudioData ( aPhoneModel, aFsSession );
   128         CPEGsmAudioData ( aPhoneModel, aFsSession );
   126     CleanupStack::PushL( self );
   129     CleanupStack::PushL( self );
   149 EXPORT_C void CPEGsmAudioData::PlayDtmfTone
   152 EXPORT_C void CPEGsmAudioData::PlayDtmfTone
   150         ( 
   153         ( 
   151         const TChar& aTone //DTMF tone to play
   154         const TChar& aTone //DTMF tone to play
   152         ) const
   155         ) const
   153     {
   156     {
   154 	TInt volume;  //DTMF tone volume
   157     TInt volume;  //DTMF tone volume
   155     volume = iPhoneModel.DataStore()->KeypadVolume();
   158     volume = iPhoneModel.DataStore()->KeypadVolume();
   156 
   159 
   157     TEFLOGSTRING3( KTAREQIN, 
   160     TEFLOGSTRING3( KTAREQIN, 
   158         "AUD CPEGsmAudioData::PlayDtmfTone, aTone = %s, volume = %d", 
   161         "AUD CPEGsmAudioData::PlayDtmfTone, aTone = %s, volume = %d", 
   159         &aTone, 
   162         &aTone, 
   160         volume );
   163         volume );
   161 		
   164 
   162     // If profile key tones setting is OFF, the volume will be O 
   165     iDtmfTonePlayer->SetVolume( volume );
   163 	// Don't play dtmf tone here to avoid interrupting the possible touch tone's playing.
   166     iDtmfTonePlayer->PlayDtmfTone( aTone );
   164     if ( KDtmfSilent != volume )
       
   165         {
       
   166         iDtmfTonePlayer->SetVolume( volume );
       
   167         iDtmfTonePlayer->PlayDtmfTone( aTone );
       
   168         }
       
   169     }
   167     }
   170 
   168 
   171 // -----------------------------------------------------------------------------
   169 // -----------------------------------------------------------------------------
   172 // CPEGsmAudioData::StopDtmfTonePlay
   170 // CPEGsmAudioData::StopDtmfTonePlay
   173 // Stops the playing of dtmf tone. 
   171 // Stops the playing of dtmf tone. 
   235             case ECCEDtmfManualStart:
   233             case ECCEDtmfManualStart:
   236             case ECCEDtmfSequenceStart:
   234             case ECCEDtmfSequenceStart:
   237                 if ( DtmfLocalPlayAllowed() )
   235                 if ( DtmfLocalPlayAllowed() )
   238                     {
   236                     {
   239                     TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: PlayDtmfTone" );
   237                     TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: PlayDtmfTone" );
   240     			    PlayDtmfTone( aTone );
   238                     PlayDtmfTone( aTone );
   241                     }
   239                     }
   242                 else
   240                 else
   243                     {
   241                     {
   244                     TEFLOGSTRING( KTAERROR, "AUD CPEGSMAUDIODATA::HANDLEDTMFEVENT ! LOCAL PLAY NOT ALLOWED" );
   242                     TEFLOGSTRING( KTAERROR, "AUD CPEGSMAUDIODATA::HANDLEDTMFEVENT ! LOCAL PLAY NOT ALLOWED" );
   245                     }
   243                     }
   252             case ECCEDtmfSequenceAbort:
   250             case ECCEDtmfSequenceAbort:
   253             case ECCEDtmfStopInDtmfString:
   251             case ECCEDtmfStopInDtmfString:
   254             case ECCEDtmfStringSendingCompleted:
   252             case ECCEDtmfStringSendingCompleted:
   255             default:
   253             default:
   256                 TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: StopDtmfTonePlay" );
   254                 TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: StopDtmfTonePlay" );
   257     			//Stop tone playing
   255                 //Stop tone playing
   258     			StopDtmfTonePlay();
   256                 StopDtmfTonePlay();
   259                 break;
   257                 break;
   260             }
   258             }
   261         }
   259         }
   262     else
   260     else
   263         {
   261         {
   264         TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: Error case" );
   262         TEFLOGSTRING( KTAINT, "AUD CPEGsmAudioData::HandleDTMFEvent: Error case" );
   265     	//Stop tone playing
   263         //Stop tone playing
   266     	StopDtmfTonePlay();
   264         StopDtmfTonePlay();
   267         }
   265         }
   268     }
   266     }
   269 
   267 
   270 // -----------------------------------------------------------------------------
   268 // -----------------------------------------------------------------------------
   271 // CPEGsmAudioData::DtmfLocalPlayAllowed
   269 // CPEGsmAudioData::DtmfLocalPlayAllowed
   298 
   296 
   299 // -----------------------------------------------------------------------------
   297 // -----------------------------------------------------------------------------
   300 // CPEGsmAudioData::DoHandleVolumeChange
   298 // CPEGsmAudioData::DoHandleVolumeChange
   301 // -----------------------------------------------------------------------------
   299 // -----------------------------------------------------------------------------
   302 //
   300 //
   303 void CPEGsmAudioData::DoHandleVolumeChange( TInt aVolume )
   301 void CPEGsmAudioData::DoHandleVolumeChange( TInt aVolume, TBool aSendMsg)
   304 
   302 
   305     {
   303     {
   306     iInbandTonePlayer->SetVolume( aVolume );
   304     iInbandTonePlayer->SetVolume( aVolume );
       
   305     CPEAudioData::DoHandleVolumeChange(aVolume , aSendMsg);
   307     }
   306     }
   308 
   307 
   309 // ================= OTHER EXPORTED FUNCTIONS ===============================
   308 // ================= OTHER EXPORTED FUNCTIONS ===============================
   310 // None
   309 // None
   311 
   310