changeset 42 | 1fa3fb47b1e3 |
parent 31 | 8dfd592727cb |
child 55 | e267340986c9 |
32:94fc26b6e006 | 42:1fa3fb47b1e3 |
---|---|
24 #include "tmscallcsadpt.h" |
24 #include "tmscallcsadpt.h" |
25 #include "tmsutility.h" |
25 #include "tmsutility.h" |
26 #include "tmsshared.h" |
26 #include "tmsshared.h" |
27 #include "tmsclientserver.h" |
27 #include "tmsclientserver.h" |
28 #include "tmstarsettings.h" |
28 #include "tmstarsettings.h" |
29 #include "tmsdtmftoneplayer.h" |
29 #include "tmssyncvol.h" |
30 #include "tmsdtmfprovider.h" |
|
31 #include "tmsdtmfnotifier.h" |
|
32 |
30 |
33 using namespace TMS; |
31 using namespace TMS; |
34 |
32 |
35 // ----------------------------------------------------------------------------- |
33 // ----------------------------------------------------------------------------- |
36 // TMSCallCSAdpt::NewL |
34 // TMSCallCSAdpt::NewL |
56 TRACE_PRN_FN_ENT; |
54 TRACE_PRN_FN_ENT; |
57 iCSDownlink = NULL; |
55 iCSDownlink = NULL; |
58 iCSUplink = NULL; |
56 iCSUplink = NULL; |
59 iRouting = NULL; |
57 iRouting = NULL; |
60 iTarSettings = NULL; |
58 iTarSettings = NULL; |
61 iDTMFDnlinkPlayer = NULL; |
59 iResetVolNotifier = NULL; |
62 iDTMFUplinkPlayer = NULL; |
|
63 iDTMFNotifier = NULL; |
|
64 TRACE_PRN_FN_EXT; |
60 TRACE_PRN_FN_EXT; |
65 } |
61 } |
66 |
62 |
67 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
68 // TMSCallCSAdpt::TMSCallCSAdpt |
64 // TMSCallCSAdpt::TMSCallCSAdpt |
82 { |
78 { |
83 TRACE_PRN_FN_ENT; |
79 TRACE_PRN_FN_ENT; |
84 |
80 |
85 delete iRouting; |
81 delete iRouting; |
86 delete iTarSettings; |
82 delete iTarSettings; |
87 delete iDTMFUplinkPlayer; |
|
88 delete iDTMFDnlinkPlayer; |
|
89 delete iDTMFNotifier; |
|
90 delete iCSUplink; |
83 delete iCSUplink; |
91 delete iCSDownlink; |
84 delete iCSDownlink; |
85 delete iResetVolNotifier; |
|
92 |
86 |
93 if (iMsgQueueUp.Handle() > 0) |
87 if (iMsgQueueUp.Handle() > 0) |
94 { |
88 { |
95 iMsgQueueUp.Close(); |
89 iMsgQueueUp.Close(); |
96 } |
90 } |
110 gint TMSCallCSAdpt::PostConstruct() |
104 gint TMSCallCSAdpt::PostConstruct() |
111 { |
105 { |
112 TRACE_PRN_FN_ENT; |
106 TRACE_PRN_FN_ENT; |
113 gint status(TMS_RESULT_SUCCESS); |
107 gint status(TMS_RESULT_SUCCESS); |
114 iNextStreamId = 1; |
108 iNextStreamId = 1; |
115 iUplinkInitialized = FALSE; |
109 iUplState = EIdle; |
116 iDnlinkInitialized = FALSE; |
110 iDnlState = EIdle; |
117 TRACE_PRN_FN_EXT; |
111 TRACE_PRN_FN_EXT; |
118 return status; |
112 return status; |
119 } |
113 } |
120 |
114 |
121 // ----------------------------------------------------------------------------- |
115 // ----------------------------------------------------------------------------- |
131 switch (strmType) |
125 switch (strmType) |
132 { |
126 { |
133 case TMS_STREAM_UPLINK: |
127 case TMS_STREAM_UPLINK: |
134 { |
128 { |
135 status = TMS_RESULT_ALREADY_EXIST; |
129 status = TMS_RESULT_ALREADY_EXIST; |
136 if (!iUplinkInitialized) |
130 if (iUplState == EIdle) |
137 { |
131 { |
138 iUplinkStreamId = iNextStreamId; |
132 iUplinkStreamId = iNextStreamId; |
139 outStrmId = iUplinkStreamId; |
133 outStrmId = iUplinkStreamId; |
140 iNextStreamId++; |
134 iNextStreamId++; |
141 //iUplinkInitialized = TRUE; //not initialized yet! |
|
142 status = TMS_RESULT_SUCCESS; |
135 status = TMS_RESULT_SUCCESS; |
143 } |
136 } |
144 break; |
137 break; |
145 } |
138 } |
146 case TMS_STREAM_DOWNLINK: |
139 case TMS_STREAM_DOWNLINK: |
147 { |
140 { |
148 status = TMS_RESULT_ALREADY_EXIST; |
141 status = TMS_RESULT_ALREADY_EXIST; |
149 if (!iDnlinkInitialized) |
142 if (iDnlState == EIdle) |
150 { |
143 { |
151 iDnlinkStreamId = iNextStreamId; |
144 iDnlinkStreamId = iNextStreamId; |
152 outStrmId = iDnlinkStreamId; |
145 outStrmId = iDnlinkStreamId; |
153 iNextStreamId++; |
146 iNextStreamId++; |
154 //iDnlinkInitialized = TRUE; //not initialized yet! |
|
155 status = TMS_RESULT_SUCCESS; |
147 status = TMS_RESULT_SUCCESS; |
156 } |
148 } |
157 break; |
149 break; |
158 } |
150 } |
159 default: |
151 default: |
240 |
232 |
241 if (!iCSUplink) |
233 if (!iCSUplink) |
242 { |
234 { |
243 TRAP(status, iCSUplink = TMSCSUplink::NewL(*this, retrytime)); |
235 TRAP(status, iCSUplink = TMSCSUplink::NewL(*this, retrytime)); |
244 } |
236 } |
245 if (!iDTMFUplinkPlayer && status == TMS_RESULT_SUCCESS) |
|
246 { |
|
247 TRAP(status, iDTMFUplinkPlayer = TMSDTMFProvider::NewL()); |
|
248 iDTMFUplinkPlayer->AddObserver(*this); |
|
249 } |
|
250 if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS) |
|
251 { |
|
252 TRAP(status, iDTMFNotifier = TMSDtmfNotifier::NewL()); |
|
253 } |
|
254 return status; |
237 return status; |
255 } |
238 } |
256 |
239 |
257 // ----------------------------------------------------------------------------- |
240 // ----------------------------------------------------------------------------- |
258 // TMSCallCSAdpt::InitDownlink |
241 // TMSCallCSAdpt::InitDownlink |
272 TRAP(status, iRouting = CTelephonyAudioRouting::NewL(*this)); |
255 TRAP(status, iRouting = CTelephonyAudioRouting::NewL(*this)); |
273 } |
256 } |
274 if (!iTarSettings && status == TMS_RESULT_SUCCESS) |
257 if (!iTarSettings && status == TMS_RESULT_SUCCESS) |
275 { |
258 { |
276 TRAP(status, iTarSettings = TMSTarSettings::NewL()); |
259 TRAP(status, iTarSettings = TMSTarSettings::NewL()); |
277 } |
|
278 if (!iDTMFDnlinkPlayer && status == TMS_RESULT_SUCCESS) |
|
279 { |
|
280 TRAP(status, iDTMFDnlinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this, |
|
281 KAudioDTMFString, KAudioPriorityDTMFString)); |
|
282 } |
|
283 if (!iDTMFNotifier && status == TMS_RESULT_SUCCESS) |
|
284 { |
|
285 TRAP(status, iDTMFNotifier = TMSDtmfNotifier::NewL()); |
|
286 } |
260 } |
287 return status; |
261 return status; |
288 } |
262 } |
289 |
263 |
290 // ----------------------------------------------------------------------------- |
264 // ----------------------------------------------------------------------------- |
299 gint status(TMS_RESULT_INVALID_STATE); |
273 gint status(TMS_RESULT_INVALID_STATE); |
300 switch (strmType) |
274 switch (strmType) |
301 { |
275 { |
302 case TMS_STREAM_UPLINK: |
276 case TMS_STREAM_UPLINK: |
303 { |
277 { |
304 if (iCSUplink && strmId == iUplinkStreamId) |
278 if (iCSUplink && strmId == iUplinkStreamId && |
279 iUplState == EInitialized) |
|
305 { |
280 { |
306 iCSUplink->Activate(retrytime); |
281 iCSUplink->Activate(retrytime); |
307 status = TMS_RESULT_SUCCESS; |
282 status = TMS_RESULT_SUCCESS; |
308 } |
283 } |
309 break; |
284 break; |
310 } |
285 } |
311 case TMS_STREAM_DOWNLINK: |
286 case TMS_STREAM_DOWNLINK: |
312 { |
287 { |
313 if (iCSDownlink && strmId == iDnlinkStreamId) |
288 if(!iResetVolNotifier) |
289 { |
|
290 TRAP(status, iResetVolNotifier = TMSSyncVol::NewL()); |
|
291 } |
|
292 if(iResetVolNotifier) |
|
293 { |
|
294 iResetVolNotifier->SetSyncVol(); |
|
295 } |
|
296 if (iCSDownlink && strmId == iDnlinkStreamId && |
|
297 iDnlState == EInitialized) |
|
314 { |
298 { |
315 iCSDownlink->Activate(retrytime); |
299 iCSDownlink->Activate(retrytime); |
316 status = TMS_RESULT_SUCCESS; |
300 status = TMS_RESULT_SUCCESS; |
317 } |
301 } |
318 break; |
302 break; |
357 case TMS_STREAM_UPLINK: |
341 case TMS_STREAM_UPLINK: |
358 { |
342 { |
359 if (iCSUplink && strmId == iUplinkStreamId) |
343 if (iCSUplink && strmId == iUplinkStreamId) |
360 { |
344 { |
361 iCSUplink->Deactivate(); |
345 iCSUplink->Deactivate(); |
346 iUplState = EInitialized; |
|
362 status = TMS_RESULT_SUCCESS; |
347 status = TMS_RESULT_SUCCESS; |
363 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
348 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
364 } |
349 } |
365 break; |
350 break; |
366 } |
351 } |
367 case TMS_STREAM_DOWNLINK: |
352 case TMS_STREAM_DOWNLINK: |
368 { |
353 { |
369 if (iCSDownlink && strmId == iDnlinkStreamId) |
354 if (iCSDownlink && strmId == iDnlinkStreamId) |
370 { |
355 { |
371 iCSDownlink->Deactivate(); |
356 iCSDownlink->Deactivate(); |
357 iDnlState = EInitialized; |
|
372 status = TMS_RESULT_SUCCESS; |
358 status = TMS_RESULT_SUCCESS; |
373 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
359 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
374 } |
360 } |
375 break; |
361 break; |
376 } |
362 } |
400 case TMS_STREAM_UPLINK: |
386 case TMS_STREAM_UPLINK: |
401 { |
387 { |
402 if (iCSUplink && strmId == iUplinkStreamId) |
388 if (iCSUplink && strmId == iUplinkStreamId) |
403 { |
389 { |
404 iCSUplink->Deactivate(); |
390 iCSUplink->Deactivate(); |
405 iUplinkInitialized = FALSE; |
391 iUplState = EIdle; |
406 status = TMS_RESULT_SUCCESS; |
392 status = TMS_RESULT_SUCCESS; |
407 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); |
393 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); |
408 } |
394 } |
409 break; |
395 break; |
396 } |
|
410 case TMS_STREAM_DOWNLINK: |
397 case TMS_STREAM_DOWNLINK: |
398 { |
|
411 if (iCSDownlink && strmId == iDnlinkStreamId) |
399 if (iCSDownlink && strmId == iDnlinkStreamId) |
412 { |
400 { |
413 iCSDownlink->Deactivate(); |
401 iCSDownlink->Deactivate(); |
414 iDnlinkInitialized = FALSE; |
402 iDnlState = EIdle; |
415 status = TMS_RESULT_SUCCESS; |
403 status = TMS_RESULT_SUCCESS; |
416 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete, |
404 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete, |
417 status); |
405 status); |
418 } |
406 } |
419 break; |
407 break; |
443 case TMS_STREAM_UPLINK: |
431 case TMS_STREAM_UPLINK: |
444 { |
432 { |
445 if (strmId == iUplinkStreamId) |
433 if (strmId == iUplinkStreamId) |
446 { |
434 { |
447 iUplinkStreamId = -1; |
435 iUplinkStreamId = -1; |
448 iUplinkInitialized = FALSE; |
436 iUplState = EIdle; |
449 } |
437 } |
450 break; |
438 break; |
451 } |
439 } |
452 case TMS_STREAM_DOWNLINK: |
440 case TMS_STREAM_DOWNLINK: |
453 { |
441 { |
454 if (strmId == iDnlinkStreamId) |
442 if (strmId == iDnlinkStreamId) |
455 { |
443 { |
456 iDnlinkStreamId = -1; |
444 iDnlinkStreamId = -1; |
457 iDnlinkInitialized = FALSE; |
445 iDnlState = EIdle; |
458 } |
446 } |
459 break; |
447 break; |
460 } |
448 } |
461 default: |
449 default: |
462 { |
450 { |
519 // |
507 // |
520 gint TMSCallCSAdpt::GetMaxVolume(guint& volume) |
508 gint TMSCallCSAdpt::GetMaxVolume(guint& volume) |
521 { |
509 { |
522 TRACE_PRN_FN_ENT; |
510 TRACE_PRN_FN_ENT; |
523 gint status(TMS_RESULT_INVALID_STATE); |
511 gint status(TMS_RESULT_INVALID_STATE); |
524 if (iCSDownlink && iDnlinkInitialized) |
512 if (iCSDownlink && iDnlState != EIdle) |
525 { |
513 { |
526 volume = iCSDownlink->MaxVolume(); |
514 volume = iCSDownlink->MaxVolume(); |
527 status = TMS_RESULT_SUCCESS; |
515 status = TMS_RESULT_SUCCESS; |
528 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt: GetMaxVolume [%d]"), volume); |
516 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt: GetMaxVolume [%d]"), volume); |
529 } |
517 } |
538 // |
526 // |
539 gint TMSCallCSAdpt::SetVolume(const guint volume) |
527 gint TMSCallCSAdpt::SetVolume(const guint volume) |
540 { |
528 { |
541 TRACE_PRN_FN_ENT; |
529 TRACE_PRN_FN_ENT; |
542 gint status(TMS_RESULT_INVALID_STATE); |
530 gint status(TMS_RESULT_INVALID_STATE); |
543 if (iCSDownlink && iDnlinkInitialized) |
531 if (iCSDownlink && iDnlState != EIdle) |
544 { |
532 { |
545 iCSDownlink->SetVolume(volume); |
533 iCSDownlink->SetVolume(volume); |
546 status = TMS_RESULT_SUCCESS; |
534 status = TMS_RESULT_SUCCESS; |
547 NotifyClient(iDnlinkStreamId, ECmdSetVolume, status); |
535 NotifyClient(iDnlinkStreamId, ECmdSetVolume, status); |
548 } |
536 } |
557 // |
545 // |
558 gint TMSCallCSAdpt::GetVolume(guint& volume) |
546 gint TMSCallCSAdpt::GetVolume(guint& volume) |
559 { |
547 { |
560 TRACE_PRN_FN_ENT; |
548 TRACE_PRN_FN_ENT; |
561 gint status(TMS_RESULT_INVALID_STATE); |
549 gint status(TMS_RESULT_INVALID_STATE); |
562 if (iCSDownlink && iDnlinkInitialized) |
550 if (iCSDownlink && iDnlState != EIdle) |
563 { |
551 { |
564 volume = iCSDownlink->Volume(); |
552 volume = iCSDownlink->Volume(); |
565 status = TMS_RESULT_SUCCESS; |
553 status = TMS_RESULT_SUCCESS; |
566 } |
554 } |
567 TRACE_PRN_FN_EXT; |
555 TRACE_PRN_FN_EXT; |
575 // |
563 // |
576 gint TMSCallCSAdpt::GetMaxGain(guint& gain) |
564 gint TMSCallCSAdpt::GetMaxGain(guint& gain) |
577 { |
565 { |
578 TRACE_PRN_FN_ENT; |
566 TRACE_PRN_FN_ENT; |
579 gint status(TMS_RESULT_INVALID_STATE); |
567 gint status(TMS_RESULT_INVALID_STATE); |
580 if (iCSUplink && iUplinkInitialized) |
568 if (iCSUplink && iUplState != EIdle) |
581 { |
569 { |
582 gain = iCSUplink->MaxGain(); |
570 gain = iCSUplink->MaxGain(); |
583 status = TMS_RESULT_SUCCESS; |
571 status = TMS_RESULT_SUCCESS; |
584 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetMaxGain [%d]"), gain); |
572 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetMaxGain [%d]"), gain); |
585 } |
573 } |
594 // |
582 // |
595 gint TMSCallCSAdpt::SetGain(const guint gain) |
583 gint TMSCallCSAdpt::SetGain(const guint gain) |
596 { |
584 { |
597 TRACE_PRN_FN_ENT; |
585 TRACE_PRN_FN_ENT; |
598 gint status(TMS_RESULT_INVALID_STATE); |
586 gint status(TMS_RESULT_INVALID_STATE); |
599 if (iCSUplink && iUplinkInitialized) |
587 if (iCSUplink && iUplState != EIdle) |
600 { |
588 { |
601 iCSUplink->SetGain(gain); |
589 iCSUplink->SetGain(gain); |
602 status = TMS_RESULT_SUCCESS; |
590 status = TMS_RESULT_SUCCESS; |
603 NotifyClient(iUplinkStreamId, ECmdSetGain, status); |
591 NotifyClient(iUplinkStreamId, ECmdSetGain, status); |
604 } |
592 } |
613 // |
601 // |
614 gint TMSCallCSAdpt::GetGain(guint& gain) |
602 gint TMSCallCSAdpt::GetGain(guint& gain) |
615 { |
603 { |
616 TRACE_PRN_FN_ENT; |
604 TRACE_PRN_FN_ENT; |
617 gint status(TMS_RESULT_INVALID_STATE); |
605 gint status(TMS_RESULT_INVALID_STATE); |
618 if (iCSUplink && iUplinkInitialized) |
606 if (iCSUplink && iUplState != EIdle) |
619 { |
607 { |
620 gain = iCSUplink->Gain(); |
608 gain = iCSUplink->Gain(); |
621 status = TMS_RESULT_SUCCESS; |
609 status = TMS_RESULT_SUCCESS; |
622 } |
610 } |
623 TRACE_PRN_FN_EXT; |
611 TRACE_PRN_FN_EXT; |
631 // |
619 // |
632 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume) |
620 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume) |
633 { |
621 { |
634 TRACE_PRN_FN_ENT; |
622 TRACE_PRN_FN_ENT; |
635 gint status(TMS_RESULT_INVALID_STATE); |
623 gint status(TMS_RESULT_INVALID_STATE); |
636 if (iCSDownlink && iDnlinkInitialized) |
624 if (iCSDownlink && iDnlState != EIdle) |
637 { |
625 { |
638 volume = iCSDownlink->MaxVolume(); |
626 volume = iCSDownlink->MaxVolume(); |
639 status = TMS_RESULT_SUCCESS; |
627 status = TMS_RESULT_SUCCESS; |
640 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxVolume [%d]"), volume); |
628 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxVolume [%d]"), volume); |
641 } |
629 } |
651 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume) |
639 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume) |
652 { |
640 { |
653 TRACE_PRN_FN_ENT; |
641 TRACE_PRN_FN_ENT; |
654 gint status(TMS_RESULT_INVALID_STATE); |
642 gint status(TMS_RESULT_INVALID_STATE); |
655 iGlobalVol = volume; |
643 iGlobalVol = volume; |
656 if (iCSDownlink && iDnlinkInitialized) |
644 if (iCSDownlink && iDnlState != EIdle) |
657 { |
645 { |
658 iCSDownlink->SetVolume(volume); |
646 iCSDownlink->SetVolume(volume); |
659 status = TMS_RESULT_SUCCESS; |
647 status = TMS_RESULT_SUCCESS; |
660 } |
648 } |
661 TRACE_PRN_FN_EXT; |
649 TRACE_PRN_FN_EXT; |
669 // |
657 // |
670 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume) |
658 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume) |
671 { |
659 { |
672 TRACE_PRN_FN_ENT; |
660 TRACE_PRN_FN_ENT; |
673 gint status(TMS_RESULT_INVALID_STATE); |
661 gint status(TMS_RESULT_INVALID_STATE); |
674 if (iCSDownlink && iDnlinkInitialized) |
662 if (iCSDownlink && iDnlState != EIdle) |
675 { |
663 { |
676 volume = iCSDownlink->Volume(); |
664 volume = iCSDownlink->Volume(); |
677 status = TMS_RESULT_SUCCESS; |
665 status = TMS_RESULT_SUCCESS; |
678 } |
666 } |
679 TRACE_PRN_FN_EXT; |
667 TRACE_PRN_FN_EXT; |
687 // |
675 // |
688 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain) |
676 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain) |
689 { |
677 { |
690 TRACE_PRN_FN_ENT; |
678 TRACE_PRN_FN_ENT; |
691 gint status(TMS_RESULT_INVALID_STATE); |
679 gint status(TMS_RESULT_INVALID_STATE); |
692 if (iCSUplink && iUplinkInitialized) |
680 if (iCSUplink && iUplState != EIdle) |
693 { |
681 { |
694 gain = iCSUplink->MaxGain(); |
682 gain = iCSUplink->MaxGain(); |
695 status = TMS_RESULT_SUCCESS; |
683 status = TMS_RESULT_SUCCESS; |
696 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxGain [%d]"), gain); |
684 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxGain [%d]"), gain); |
697 } |
685 } |
707 gint TMSCallCSAdpt::SetGlobalGain(const guint gain) |
695 gint TMSCallCSAdpt::SetGlobalGain(const guint gain) |
708 { |
696 { |
709 TRACE_PRN_FN_ENT; |
697 TRACE_PRN_FN_ENT; |
710 gint status(TMS_RESULT_INVALID_STATE); |
698 gint status(TMS_RESULT_INVALID_STATE); |
711 iGlobalGain = gain; |
699 iGlobalGain = gain; |
712 if (iCSUplink && iUplinkInitialized) |
700 if (iCSUplink && iUplState != EIdle) |
713 { |
701 { |
714 iCSUplink->SetGain(gain); |
702 iCSUplink->SetGain(gain); |
715 status = TMS_RESULT_SUCCESS; |
703 status = TMS_RESULT_SUCCESS; |
716 } |
704 } |
717 TRACE_PRN_FN_EXT; |
705 TRACE_PRN_FN_EXT; |
725 // |
713 // |
726 gint TMSCallCSAdpt::GetGlobalGain(guint& gain) |
714 gint TMSCallCSAdpt::GetGlobalGain(guint& gain) |
727 { |
715 { |
728 TRACE_PRN_FN_ENT; |
716 TRACE_PRN_FN_ENT; |
729 gint status(TMS_RESULT_INVALID_STATE); |
717 gint status(TMS_RESULT_INVALID_STATE); |
730 if (iCSUplink && iUplinkInitialized) |
718 if (iCSUplink && iUplState != EIdle) |
731 { |
719 { |
732 gain = iCSUplink->Gain(); |
720 gain = iCSUplink->Gain(); |
733 status = TMS_RESULT_SUCCESS; |
721 status = TMS_RESULT_SUCCESS; |
734 } |
722 } |
735 TRACE_PRN_FN_EXT; |
723 TRACE_PRN_FN_EXT; |
940 CTelephonyAudioRouting::TAudioOutput taroutput; |
928 CTelephonyAudioRouting::TAudioOutput taroutput; |
941 taroutput = iRouting->Output(); |
929 taroutput = iRouting->Output(); |
942 status = TMS_RESULT_SUCCESS; |
930 status = TMS_RESULT_SUCCESS; |
943 output = TOTMSOUTPUT(taroutput); |
931 output = TOTMSOUTPUT(taroutput); |
944 } |
932 } |
945 |
|
946 TRACE_PRN_FN_EXT; |
933 TRACE_PRN_FN_EXT; |
947 return status; |
934 return status; |
948 } |
935 } |
949 |
936 |
950 // ----------------------------------------------------------------------------- |
937 // ----------------------------------------------------------------------------- |
982 if (iRouting) |
969 if (iRouting) |
983 { |
970 { |
984 RBufWriteStream stream; |
971 RBufWriteStream stream; |
985 stream.Open(*outputsbuf); |
972 stream.Open(*outputsbuf); |
986 CleanupClosePushL(stream); |
973 CleanupClosePushL(stream); |
987 |
|
988 TArray<CTelephonyAudioRouting::TAudioOutput> |
974 TArray<CTelephonyAudioRouting::TAudioOutput> |
989 availableOutputs = iRouting->AvailableOutputs(); |
975 availableOutputs = iRouting->AvailableOutputs(); |
990 |
|
991 guint numOfItems = availableOutputs.Count(); |
976 guint numOfItems = availableOutputs.Count(); |
992 count = numOfItems; |
977 count = numOfItems; |
993 for (guint i = 0; i < numOfItems; i++) |
978 for (guint i = 0; i < numOfItems; i++) |
994 { |
979 { |
995 tmsoutput = TOTMSOUTPUT(availableOutputs[i]); |
980 tmsoutput = TOTMSOUTPUT(availableOutputs[i]); |
996 stream.WriteUint32L(tmsoutput); |
981 stream.WriteUint32L(tmsoutput); |
997 } |
982 } |
998 |
|
999 CleanupStack::PopAndDestroy(&stream); |
983 CleanupStack::PopAndDestroy(&stream); |
1000 status = TMS_RESULT_SUCCESS; |
984 status = TMS_RESULT_SUCCESS; |
1001 } |
985 } |
1002 |
986 |
1003 TRACE_PRN_FN_EXT; |
987 TRACE_PRN_FN_EXT; |
1004 return status; |
988 return status; |
1005 } |
|
1006 |
|
1007 // ----------------------------------------------------------------------------- |
|
1008 // TMSCallCSAdpt::StartDTMF |
|
1009 // |
|
1010 // ----------------------------------------------------------------------------- |
|
1011 // |
|
1012 gint TMSCallCSAdpt::StartDTMF(const TMSStreamType strmtype, TDes& dtmfstring) |
|
1013 { |
|
1014 TRACE_PRN_FN_ENT; |
|
1015 gint status(TMS_RESULT_STREAM_TYPE_NOT_SUPPORTED); |
|
1016 TmsMsgBufPckg dtmfpckg; |
|
1017 dtmfpckg().iStatus = status; |
|
1018 dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; |
|
1019 |
|
1020 if (strmtype == TMS_STREAM_DOWNLINK && iDnlinkInitialized) |
|
1021 { |
|
1022 if (iDTMFDnlinkPlayer) |
|
1023 { |
|
1024 iDTMFDnlinkPlayer->PlayDtmfTone(dtmfstring); |
|
1025 status = TMS_RESULT_SUCCESS; |
|
1026 } |
|
1027 dtmfpckg().iStatus = TMS_RESULT_SUCCESS; |
|
1028 dtmfpckg().iRequest = ECmdDTMFToneDnlPlayStarted; |
|
1029 } |
|
1030 else if (strmtype == TMS_STREAM_UPLINK && iUplinkInitialized) |
|
1031 { |
|
1032 //use etel for uplink |
|
1033 if (iDTMFUplinkPlayer) |
|
1034 { |
|
1035 status = iDTMFUplinkPlayer->SendDtmfToneString(dtmfstring); |
|
1036 status = TMS_RESULT_SUCCESS; |
|
1037 } |
|
1038 dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(status); |
|
1039 dtmfpckg().iRequest = ECmdDTMFToneUplPlayStarted; |
|
1040 } |
|
1041 |
|
1042 if (iDTMFNotifier) |
|
1043 { |
|
1044 iDTMFNotifier->SetDtmf(dtmfpckg); |
|
1045 } |
|
1046 |
|
1047 TRACE_PRN_IF_ERR(status); |
|
1048 TRACE_PRN_FN_EXT; |
|
1049 return status; |
|
1050 } |
|
1051 |
|
1052 // ----------------------------------------------------------------------------- |
|
1053 // TMSCallCSAdpt::StopDTMF |
|
1054 // |
|
1055 // ----------------------------------------------------------------------------- |
|
1056 // |
|
1057 gint TMSCallCSAdpt::StopDTMF(const TMSStreamType streamtype) |
|
1058 { |
|
1059 TRACE_PRN_FN_ENT; |
|
1060 gint status(TMS_RESULT_SUCCESS); |
|
1061 |
|
1062 if (streamtype == TMS_STREAM_DOWNLINK && iDTMFDnlinkPlayer) |
|
1063 { |
|
1064 iDTMFDnlinkPlayer->Cancel(); |
|
1065 } |
|
1066 else if (streamtype == TMS_STREAM_UPLINK && iDTMFUplinkPlayer) |
|
1067 { |
|
1068 status = iDTMFUplinkPlayer->StopDtmfTone(); |
|
1069 status = TMSUtility::EtelToTMSResult(status); |
|
1070 } |
|
1071 |
|
1072 TRACE_PRN_FN_EXT; |
|
1073 return status; |
|
1074 } |
|
1075 |
|
1076 // ----------------------------------------------------------------------------- |
|
1077 // TMSCallCSAdpt::ContinueDTMF |
|
1078 // |
|
1079 // ----------------------------------------------------------------------------- |
|
1080 // |
|
1081 gint TMSCallCSAdpt::ContinueDTMF(const gboolean sending) |
|
1082 { |
|
1083 TRACE_PRN_FN_ENT; |
|
1084 gint status(TMS_RESULT_UNINITIALIZED_OBJECT); |
|
1085 |
|
1086 if (iDTMFUplinkPlayer) |
|
1087 { |
|
1088 status = iDTMFUplinkPlayer->ContinueDtmfStringSending(sending); |
|
1089 status = TMSUtility::EtelToTMSResult(status); |
|
1090 } |
|
1091 |
|
1092 TRACE_PRN_FN_EXT; |
|
1093 return status; |
|
1094 } |
|
1095 |
|
1096 //From TMSDTMFTonePlayerObserver |
|
1097 // ----------------------------------------------------------------------------- |
|
1098 // TMSCallCSAdpt::DTMFInitCompleted |
|
1099 // |
|
1100 // ----------------------------------------------------------------------------- |
|
1101 // |
|
1102 void TMSCallCSAdpt::DTMFInitCompleted(gint /*status*/) |
|
1103 { |
|
1104 TRACE_PRN_FN_ENT; |
|
1105 // TODO: process error |
|
1106 TRACE_PRN_FN_EXT; |
|
1107 } |
|
1108 |
|
1109 // ----------------------------------------------------------------------------- |
|
1110 // TMSCallCSAdpt::DTMFToneFinished |
|
1111 // |
|
1112 // ----------------------------------------------------------------------------- |
|
1113 // |
|
1114 void TMSCallCSAdpt::DTMFToneFinished(gint status) |
|
1115 { |
|
1116 TRACE_PRN_FN_ENT; |
|
1117 TRACE_PRN_IF_ERR(status); |
|
1118 TmsMsgBufPckg dtmfpckg; |
|
1119 |
|
1120 // KErrUnderflow indicates end of DTMF playback. |
|
1121 if (status == KErrUnderflow || status == KErrInUse) |
|
1122 { |
|
1123 status = TMS_RESULT_SUCCESS; |
|
1124 } |
|
1125 dtmfpckg().iStatus = TMSUtility::TMSResult(status); |
|
1126 dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; |
|
1127 if (iDTMFNotifier) |
|
1128 { |
|
1129 iDTMFNotifier->SetDtmf(dtmfpckg); |
|
1130 } |
|
1131 TRACE_PRN_FN_EXT; |
|
1132 } |
|
1133 |
|
1134 // ----------------------------------------------------------------------------- |
|
1135 // TMSCallCSAdpt::HandleDTMFEvent |
|
1136 // |
|
1137 // ----------------------------------------------------------------------------- |
|
1138 // |
|
1139 void TMSCallCSAdpt::HandleDTMFEvent( |
|
1140 const TMSDTMFObserver::TCCPDtmfEvent event, const gint status, |
|
1141 const TChar /*tone*/) |
|
1142 { |
|
1143 TRACE_PRN_FN_ENT; |
|
1144 TmsMsgBufPckg dtmfpckg; |
|
1145 |
|
1146 TRACE_PRN_N1(_L("**TMS TMSCallCSAdpt::HandleDTMFEvent error:%d"), status); |
|
1147 |
|
1148 dtmfpckg().iStatus = TMSUtility::EtelToTMSResult(status); |
|
1149 |
|
1150 switch (event) |
|
1151 { |
|
1152 case ECCPDtmfUnknown: //Unknown |
|
1153 break; |
|
1154 case ECCPDtmfManualStart: //DTMF sending started manually |
|
1155 case ECCPDtmfSequenceStart: //Automatic DTMF sending initialized |
|
1156 dtmfpckg().iRequest = ECmdDTMFToneUplPlayStarted; |
|
1157 break; |
|
1158 case ECCPDtmfManualStop: //DTMF sending stopped manually |
|
1159 case ECCPDtmfManualAbort: //DTMF sending aborted manually |
|
1160 case ECCPDtmfSequenceStop: //Automatic DTMF sending stopped |
|
1161 case ECCPDtmfSequenceAbort: //Automatic DTMF sending aborted |
|
1162 case ECCPDtmfStopInDtmfString: //There was stop mark in DTMF string |
|
1163 case ECCPDtmfStringSendingCompleted: //DTMF sending success |
|
1164 dtmfpckg().iRequest = ECmdDTMFTonePlayFinished; |
|
1165 break; |
|
1166 default: |
|
1167 break; |
|
1168 } |
|
1169 |
|
1170 if (iDTMFNotifier) |
|
1171 { |
|
1172 iDTMFNotifier->SetDtmf(dtmfpckg, TRUE); |
|
1173 } |
|
1174 TRACE_PRN_FN_EXT; |
|
1175 } |
989 } |
1176 |
990 |
1177 // ----------------------------------------------------------------------------- |
991 // ----------------------------------------------------------------------------- |
1178 // TMSCallCSAdpt::DownlinkInitCompleted |
992 // TMSCallCSAdpt::DownlinkInitCompleted |
1179 // From TMSCSDevSoundObserver |
993 // From TMSCSDevSoundObserver |
1182 void TMSCallCSAdpt::DownlinkInitCompleted(gint status) |
996 void TMSCallCSAdpt::DownlinkInitCompleted(gint status) |
1183 { |
997 { |
1184 TRACE_PRN_FN_ENT; |
998 TRACE_PRN_FN_ENT; |
1185 if (status == TMS_RESULT_SUCCESS) |
999 if (status == TMS_RESULT_SUCCESS) |
1186 { |
1000 { |
1187 iDnlinkInitialized = TRUE; |
1001 iDnlState = EInitialized; |
1188 } |
1002 } |
1189 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
1003 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
1190 TRACE_PRN_FN_EXT; |
1004 TRACE_PRN_FN_EXT; |
1191 } |
1005 } |
1192 |
1006 |
1198 void TMSCallCSAdpt::UplinkInitCompleted(gint status) |
1012 void TMSCallCSAdpt::UplinkInitCompleted(gint status) |
1199 { |
1013 { |
1200 TRACE_PRN_FN_ENT; |
1014 TRACE_PRN_FN_ENT; |
1201 if (status == TMS_RESULT_SUCCESS) |
1015 if (status == TMS_RESULT_SUCCESS) |
1202 { |
1016 { |
1203 iUplinkInitialized = TRUE; |
1017 iUplState = EInitialized; |
1204 } |
1018 } |
1205 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
1019 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
1206 TRACE_PRN_FN_EXT; |
1020 TRACE_PRN_FN_EXT; |
1207 } |
1021 } |
1208 |
1022 |
1212 // ----------------------------------------------------------------------------- |
1026 // ----------------------------------------------------------------------------- |
1213 // |
1027 // |
1214 void TMSCallCSAdpt::UplinkActivationCompleted(gint status) |
1028 void TMSCallCSAdpt::UplinkActivationCompleted(gint status) |
1215 { |
1029 { |
1216 TRACE_PRN_FN_ENT; |
1030 TRACE_PRN_FN_ENT; |
1031 if (status == TMS_RESULT_SUCCESS) |
|
1032 { |
|
1033 iUplState = EActivated; |
|
1034 } |
|
1217 NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); |
1035 NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); |
1218 TRACE_PRN_FN_EXT; |
1036 TRACE_PRN_FN_EXT; |
1219 } |
1037 } |
1220 |
1038 |
1221 // ----------------------------------------------------------------------------- |
1039 // ----------------------------------------------------------------------------- |
1224 // ----------------------------------------------------------------------------- |
1042 // ----------------------------------------------------------------------------- |
1225 // |
1043 // |
1226 void TMSCallCSAdpt::DownlinkActivationCompleted(gint status) |
1044 void TMSCallCSAdpt::DownlinkActivationCompleted(gint status) |
1227 { |
1045 { |
1228 TRACE_PRN_FN_ENT; |
1046 TRACE_PRN_FN_ENT; |
1047 if (status == TMS_RESULT_SUCCESS) |
|
1048 { |
|
1049 iDnlState = EActivated; |
|
1050 } |
|
1229 NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); |
1051 NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); |
1230 TRACE_PRN_FN_EXT; |
1052 TRACE_PRN_FN_EXT; |
1231 } |
1053 } |
1232 |
1054 |
1233 // ----------------------------------------------------------------------------- |
1055 // ----------------------------------------------------------------------------- |