13 * |
13 * |
14 * Description: Telephony Multimedia Service |
14 * Description: Telephony Multimedia Service |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
|
18 #include <AudioPreference.h> |
18 #include "tmsutility.h" |
19 #include "tmsutility.h" |
19 #include "tmsclientserver.h" |
20 #include "tmsclientserver.h" |
20 #include "tmsshared.h" |
21 #include "tmsshared.h" |
21 #include "tmsaudioinbandtoneplayer.h" |
|
22 #include "tmsrtplayer.h" |
|
23 #include "tmsserversession.h" |
22 #include "tmsserversession.h" |
24 |
23 |
25 using namespace TMS; |
24 using namespace TMS; |
26 |
25 |
27 const TUint KArrayExpandSize = 8; |
26 const TUint KArrayExpandSize = 8; |
177 case ETMSGetGlobalGain: |
175 case ETMSGetGlobalGain: |
178 iServer.GetGain(aMessage); |
176 iServer.GetGain(aMessage); |
179 break; |
177 break; |
180 case ETMSGetMaxGlobalGain: |
178 case ETMSGetMaxGlobalGain: |
181 iServer.GetMaxGain(aMessage); |
179 iServer.GetMaxGain(aMessage); |
182 break; |
|
183 case ETMSRingToneInitDefault: |
|
184 iHasRtPlayer = ETrue; |
|
185 iServer.OpenRingTonePlayerFromProfileL(aMessage); |
|
186 break; |
|
187 case ETMSRingToneInitFile: |
|
188 iHasRtPlayer = ETrue; |
|
189 iServer.OpenRingTonePlayerFromFileL(aMessage); |
|
190 break; |
|
191 case ETMSRingToneInitSequence: |
|
192 iHasRtPlayer = ETrue; |
|
193 iServer.OpenRingToneSequencePlayerL(aMessage); |
|
194 break; |
|
195 case ETMSRingToneInitBeepOnce: |
|
196 iHasRtPlayer = ETrue; |
|
197 iServer.OpenRingToneBeepOnceL(); |
|
198 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
199 break; |
|
200 case ETMSRingToneInitSilent: |
|
201 iHasRtPlayer = ETrue; |
|
202 iServer.OpenRingToneSilentL(); |
|
203 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
204 break; |
|
205 case ETMSRingToneInitUnsecureVoIP: |
|
206 iHasRtPlayer = ETrue; |
|
207 iServer.OpenRingToneUnsecureVoipL(); |
|
208 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
209 break; |
|
210 case ETMSRingToneDeinit: |
|
211 iServer.DeinitRingTonePlayer(); |
|
212 NotifyClient(ECmdRingToneDeinitComplete, KErrNone); |
|
213 iHasRtPlayer = EFalse; |
|
214 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
215 break; |
|
216 case ETMSRingTonePlay: |
|
217 iHasRtPlayer = ETrue; //will play w/o prior initialization |
|
218 iServer.PlayRingToneL(); |
|
219 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
220 break; |
|
221 case ETMSRingTonePause: |
|
222 iServer.PauseVideoRingTone(); |
|
223 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
224 break; |
|
225 case ETMSRingToneStop: |
|
226 iServer.StopRingTone(); |
|
227 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
228 break; |
|
229 case ETMSRingToneMute: |
|
230 iServer.MuteRingTone(); |
|
231 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
232 break; |
|
233 case ETMSInitDTMF: |
|
234 iServer.InitDTMF(aMessage); |
|
235 break; |
|
236 case ETMSStartDTMF: |
|
237 iServer.StartDTMF(aMessage); |
|
238 break; |
|
239 case ETMSStopDTMF: |
|
240 iServer.StopDTMF(aMessage); |
|
241 break; |
|
242 case ETMSContinueDTMF: |
|
243 iServer.ContinueSendingDTMF(aMessage); |
|
244 break; |
|
245 case ETMSStartInbandTone: |
|
246 StartInbandTone(aMessage); |
|
247 break; |
|
248 case ETMSStopInbandTone: |
|
249 StopInbandTone(aMessage); |
|
250 break; |
180 break; |
251 default: |
181 default: |
252 User::Leave(KErrNotSupported); |
182 User::Leave(KErrNotSupported); |
253 break; |
183 break; |
254 } |
184 } |
451 iServer.SetOutput(this, output); |
381 iServer.SetOutput(this, output); |
452 aMessage.Complete(TMS_RESULT_SUCCESS); |
382 aMessage.Complete(TMS_RESULT_SUCCESS); |
453 } |
383 } |
454 |
384 |
455 // ----------------------------------------------------------------------------- |
385 // ----------------------------------------------------------------------------- |
456 // TMSServerSession::StartInbandTone |
|
457 // |
|
458 // ----------------------------------------------------------------------------- |
|
459 // |
|
460 void TMSServerSession::StartInbandTone(const RMessage2& aMessage) |
|
461 { |
|
462 if (!iInbandTonePlayer) |
|
463 { |
|
464 //TODO: Add inband tone observer |
|
465 iInbandTonePlayer = TMSAudioInbandTonePlayer::NewL(); |
|
466 } |
|
467 |
|
468 if (iInbandTonePlayer) |
|
469 { |
|
470 TMSInbandToneType tonetype = (TMSInbandToneType) aMessage.Int0(); |
|
471 iInbandTonePlayer->PlayInbandTone(tonetype); |
|
472 } |
|
473 |
|
474 //TODO: Move to inband tone observer callback |
|
475 NotifyClient(ECmdInbandToneStarted); |
|
476 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
477 } |
|
478 |
|
479 // ----------------------------------------------------------------------------- |
|
480 // TMSServerSession::StopInbandTone |
|
481 // |
|
482 // ----------------------------------------------------------------------------- |
|
483 // |
|
484 void TMSServerSession::StopInbandTone(const RMessage2& aMessage) |
|
485 { |
|
486 if (iInbandTonePlayer) |
|
487 { |
|
488 iInbandTonePlayer->Cancel(); |
|
489 } |
|
490 |
|
491 //TODO: Move to inband tone observer callback |
|
492 NotifyClient(ECmdInbandToneStopped); |
|
493 aMessage.Complete(TMS_RESULT_SUCCESS); |
|
494 } |
|
495 |
|
496 // ----------------------------------------------------------------------------- |
|
497 // TMSServerSession::NotifyClient |
386 // TMSServerSession::NotifyClient |
498 // ----------------------------------------------------------------------------- |
387 // ----------------------------------------------------------------------------- |
499 // |
388 // |
500 void TMSServerSession::NotifyClient(const TInt aCommand, const TInt aStatus) |
389 void TMSServerSession::NotifyClient(const TInt aCommand, const TInt aStatus) |
501 { |
390 { |
502 if (aCommand == ECmdRingToneOpenComplete || |
|
503 aCommand == ECmdRingToneOpenComplete) |
|
504 { |
|
505 if (!iHasRtPlayer) |
|
506 { |
|
507 return; |
|
508 } |
|
509 } |
|
510 |
|
511 iMsgBuffer.iRequest = aCommand; |
391 iMsgBuffer.iRequest = aCommand; |
512 iMsgBuffer.iStatus = aStatus; |
392 iMsgBuffer.iStatus = aStatus; |
513 if (iMsgQueue.Handle() > 0) |
393 if (iMsgQueue.Handle() > 0) |
514 { |
394 { |
515 iMsgQueue.Send(iMsgBuffer); |
395 iMsgQueue.Send(iMsgBuffer); |
516 } |
396 } |
517 } |
397 } |
518 |
398 |
|
399 // End of file |