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 |