changeset 33 | 5e8b14bae8c3 |
parent 21 | 2ed61feeead6 |
child 36 | 73253677b50a |
28:ebf79c79991a | 33:5e8b14bae8c3 |
---|---|
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" |
|
30 #include "tmsdtmfprovider.h" |
|
31 #include "tmsdtmfnotifier.h" |
|
32 |
29 |
33 using namespace TMS; |
30 using namespace TMS; |
34 |
31 |
35 // ----------------------------------------------------------------------------- |
32 // ----------------------------------------------------------------------------- |
36 // TMSCallCSAdpt::NewL |
33 // TMSCallCSAdpt::NewL |
56 TRACE_PRN_FN_ENT; |
53 TRACE_PRN_FN_ENT; |
57 iCSDownlink = NULL; |
54 iCSDownlink = NULL; |
58 iCSUplink = NULL; |
55 iCSUplink = NULL; |
59 iRouting = NULL; |
56 iRouting = NULL; |
60 iTarSettings = NULL; |
57 iTarSettings = NULL; |
61 iDTMFDnlinkPlayer = NULL; |
|
62 iDTMFUplinkPlayer = NULL; |
|
63 iDTMFNotifier = NULL; |
|
64 TRACE_PRN_FN_EXT; |
58 TRACE_PRN_FN_EXT; |
65 } |
59 } |
66 |
60 |
67 // ----------------------------------------------------------------------------- |
61 // ----------------------------------------------------------------------------- |
68 // TMSCallCSAdpt::TMSCallCSAdpt |
62 // TMSCallCSAdpt::TMSCallCSAdpt |
82 { |
76 { |
83 TRACE_PRN_FN_ENT; |
77 TRACE_PRN_FN_ENT; |
84 |
78 |
85 delete iRouting; |
79 delete iRouting; |
86 delete iTarSettings; |
80 delete iTarSettings; |
87 delete iDTMFUplinkPlayer; |
|
88 delete iDTMFDnlinkPlayer; |
|
89 delete iDTMFNotifier; |
|
90 delete iCSUplink; |
81 delete iCSUplink; |
91 delete iCSDownlink; |
82 delete iCSDownlink; |
92 |
83 |
93 if (iMsgQueueUp.Handle() > 0) |
84 if (iMsgQueueUp.Handle() > 0) |
94 { |
85 { |
110 gint TMSCallCSAdpt::PostConstruct() |
101 gint TMSCallCSAdpt::PostConstruct() |
111 { |
102 { |
112 TRACE_PRN_FN_ENT; |
103 TRACE_PRN_FN_ENT; |
113 gint status(TMS_RESULT_SUCCESS); |
104 gint status(TMS_RESULT_SUCCESS); |
114 iNextStreamId = 1; |
105 iNextStreamId = 1; |
115 iUplinkInitialized = FALSE; |
106 iUplState = EIdle; |
116 iDnlinkInitialized = FALSE; |
107 iDnlState = EIdle; |
117 TRACE_PRN_FN_EXT; |
108 TRACE_PRN_FN_EXT; |
118 return status; |
109 return status; |
119 } |
110 } |
120 |
111 |
121 // ----------------------------------------------------------------------------- |
112 // ----------------------------------------------------------------------------- |
131 switch (strmType) |
122 switch (strmType) |
132 { |
123 { |
133 case TMS_STREAM_UPLINK: |
124 case TMS_STREAM_UPLINK: |
134 { |
125 { |
135 status = TMS_RESULT_ALREADY_EXIST; |
126 status = TMS_RESULT_ALREADY_EXIST; |
136 if (!iUplinkInitialized) |
127 if (iUplState == EIdle) |
137 { |
128 { |
138 iUplinkStreamId = iNextStreamId; |
129 iUplinkStreamId = iNextStreamId; |
139 outStrmId = iUplinkStreamId; |
130 outStrmId = iUplinkStreamId; |
140 iNextStreamId++; |
131 iNextStreamId++; |
141 //iUplinkInitialized = TRUE; //not initialized yet! |
|
142 status = TMS_RESULT_SUCCESS; |
132 status = TMS_RESULT_SUCCESS; |
143 } |
133 } |
144 break; |
134 break; |
145 } |
135 } |
146 case TMS_STREAM_DOWNLINK: |
136 case TMS_STREAM_DOWNLINK: |
147 { |
137 { |
148 status = TMS_RESULT_ALREADY_EXIST; |
138 status = TMS_RESULT_ALREADY_EXIST; |
149 if (!iDnlinkInitialized) |
139 if (iDnlState == EIdle) |
150 { |
140 { |
151 iDnlinkStreamId = iNextStreamId; |
141 iDnlinkStreamId = iNextStreamId; |
152 outStrmId = iDnlinkStreamId; |
142 outStrmId = iDnlinkStreamId; |
153 iNextStreamId++; |
143 iNextStreamId++; |
154 //iDnlinkInitialized = TRUE; //not initialized yet! |
|
155 status = TMS_RESULT_SUCCESS; |
144 status = TMS_RESULT_SUCCESS; |
156 } |
145 } |
157 break; |
146 break; |
158 } |
147 } |
159 default: |
148 default: |
240 |
229 |
241 if (!iCSUplink) |
230 if (!iCSUplink) |
242 { |
231 { |
243 TRAP(status, iCSUplink = TMSCSUplink::NewL(*this, retrytime)); |
232 TRAP(status, iCSUplink = TMSCSUplink::NewL(*this, retrytime)); |
244 } |
233 } |
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; |
234 return status; |
255 } |
235 } |
256 |
236 |
257 // ----------------------------------------------------------------------------- |
237 // ----------------------------------------------------------------------------- |
258 // TMSCallCSAdpt::InitDownlink |
238 // TMSCallCSAdpt::InitDownlink |
272 TRAP(status, iRouting = CTelephonyAudioRouting::NewL(*this)); |
252 TRAP(status, iRouting = CTelephonyAudioRouting::NewL(*this)); |
273 } |
253 } |
274 if (!iTarSettings && status == TMS_RESULT_SUCCESS) |
254 if (!iTarSettings && status == TMS_RESULT_SUCCESS) |
275 { |
255 { |
276 TRAP(status, iTarSettings = TMSTarSettings::NewL()); |
256 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 } |
257 } |
287 return status; |
258 return status; |
288 } |
259 } |
289 |
260 |
290 // ----------------------------------------------------------------------------- |
261 // ----------------------------------------------------------------------------- |
299 gint status(TMS_RESULT_INVALID_STATE); |
270 gint status(TMS_RESULT_INVALID_STATE); |
300 switch (strmType) |
271 switch (strmType) |
301 { |
272 { |
302 case TMS_STREAM_UPLINK: |
273 case TMS_STREAM_UPLINK: |
303 { |
274 { |
304 if (iCSUplink && strmId == iUplinkStreamId) |
275 if (iCSUplink && strmId == iUplinkStreamId && |
276 iUplState == EInitialized) |
|
305 { |
277 { |
306 iCSUplink->Activate(retrytime); |
278 iCSUplink->Activate(retrytime); |
307 status = TMS_RESULT_SUCCESS; |
279 status = TMS_RESULT_SUCCESS; |
308 } |
280 } |
309 break; |
281 break; |
310 } |
282 } |
311 case TMS_STREAM_DOWNLINK: |
283 case TMS_STREAM_DOWNLINK: |
312 { |
284 { |
313 if (iCSDownlink && strmId == iDnlinkStreamId) |
285 if (iCSDownlink && strmId == iDnlinkStreamId && |
286 iDnlState == EInitialized) |
|
314 { |
287 { |
315 iCSDownlink->Activate(retrytime); |
288 iCSDownlink->Activate(retrytime); |
316 status = TMS_RESULT_SUCCESS; |
289 status = TMS_RESULT_SUCCESS; |
317 } |
290 } |
318 break; |
291 break; |
354 |
327 |
355 switch (strmType) |
328 switch (strmType) |
356 { |
329 { |
357 case TMS_STREAM_UPLINK: |
330 case TMS_STREAM_UPLINK: |
358 { |
331 { |
359 if (iCSUplink && strmId == iUplinkStreamId) |
332 if (iCSUplink && strmId == iUplinkStreamId && |
333 iUplState == EActivated) |
|
360 { |
334 { |
361 iCSUplink->Deactivate(); |
335 iCSUplink->Deactivate(); |
336 iUplState = EInitialized; |
|
362 status = TMS_RESULT_SUCCESS; |
337 status = TMS_RESULT_SUCCESS; |
363 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
338 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
364 } |
339 } |
365 break; |
340 break; |
366 } |
341 } |
367 case TMS_STREAM_DOWNLINK: |
342 case TMS_STREAM_DOWNLINK: |
368 { |
343 { |
369 if (iCSDownlink && strmId == iDnlinkStreamId) |
344 if (iCSDownlink && strmId == iDnlinkStreamId && |
345 iDnlState == EActivated) |
|
370 { |
346 { |
371 iCSDownlink->Deactivate(); |
347 iCSDownlink->Deactivate(); |
348 iDnlState = EInitialized; |
|
372 status = TMS_RESULT_SUCCESS; |
349 status = TMS_RESULT_SUCCESS; |
373 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
350 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
374 } |
351 } |
375 break; |
352 break; |
376 } |
353 } |
397 |
374 |
398 switch (strmType) |
375 switch (strmType) |
399 { |
376 { |
400 case TMS_STREAM_UPLINK: |
377 case TMS_STREAM_UPLINK: |
401 { |
378 { |
402 if (iCSUplink && strmId == iUplinkStreamId) |
379 if (iCSUplink && strmId == iUplinkStreamId && iUplState != EIdle) |
403 { |
380 { |
404 iCSUplink->Deactivate(); |
381 iCSUplink->Deactivate(); |
405 iUplinkInitialized = FALSE; |
382 iUplState = EIdle; |
406 status = TMS_RESULT_SUCCESS; |
383 status = TMS_RESULT_SUCCESS; |
407 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); |
384 NotifyClient(iUplinkStreamId, ECmdUplinkDeInitComplete, status); |
408 } |
385 } |
409 break; |
386 break; |
387 } |
|
410 case TMS_STREAM_DOWNLINK: |
388 case TMS_STREAM_DOWNLINK: |
411 if (iCSDownlink && strmId == iDnlinkStreamId) |
389 { |
390 if (iCSDownlink && strmId == iDnlinkStreamId && iDnlState != EIdle) |
|
412 { |
391 { |
413 iCSDownlink->Deactivate(); |
392 iCSDownlink->Deactivate(); |
414 iDnlinkInitialized = FALSE; |
393 iDnlState = EIdle; |
415 status = TMS_RESULT_SUCCESS; |
394 status = TMS_RESULT_SUCCESS; |
416 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete, |
395 NotifyClient(iDnlinkStreamId, ECmdDownlinkDeInitComplete, |
417 status); |
396 status); |
418 } |
397 } |
419 break; |
398 break; |
443 case TMS_STREAM_UPLINK: |
422 case TMS_STREAM_UPLINK: |
444 { |
423 { |
445 if (strmId == iUplinkStreamId) |
424 if (strmId == iUplinkStreamId) |
446 { |
425 { |
447 iUplinkStreamId = -1; |
426 iUplinkStreamId = -1; |
448 iUplinkInitialized = FALSE; |
427 iUplState = EIdle; |
449 } |
428 } |
450 break; |
429 break; |
451 } |
430 } |
452 case TMS_STREAM_DOWNLINK: |
431 case TMS_STREAM_DOWNLINK: |
453 { |
432 { |
454 if (strmId == iDnlinkStreamId) |
433 if (strmId == iDnlinkStreamId) |
455 { |
434 { |
456 iDnlinkStreamId = -1; |
435 iDnlinkStreamId = -1; |
457 iDnlinkInitialized = FALSE; |
436 iDnlState = EIdle; |
458 } |
437 } |
459 break; |
438 break; |
460 } |
439 } |
461 default: |
440 default: |
462 { |
441 { |
519 // |
498 // |
520 gint TMSCallCSAdpt::GetMaxVolume(guint& volume) |
499 gint TMSCallCSAdpt::GetMaxVolume(guint& volume) |
521 { |
500 { |
522 TRACE_PRN_FN_ENT; |
501 TRACE_PRN_FN_ENT; |
523 gint status(TMS_RESULT_INVALID_STATE); |
502 gint status(TMS_RESULT_INVALID_STATE); |
524 if (iCSDownlink && iDnlinkInitialized) |
503 if (iCSDownlink && iDnlState != EIdle) |
525 { |
504 { |
526 volume = iCSDownlink->MaxVolume(); |
505 volume = iCSDownlink->MaxVolume(); |
527 status = TMS_RESULT_SUCCESS; |
506 status = TMS_RESULT_SUCCESS; |
528 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt: GetMaxVolume [%d]"), volume); |
507 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt: GetMaxVolume [%d]"), volume); |
529 } |
508 } |
538 // |
517 // |
539 gint TMSCallCSAdpt::SetVolume(const guint volume) |
518 gint TMSCallCSAdpt::SetVolume(const guint volume) |
540 { |
519 { |
541 TRACE_PRN_FN_ENT; |
520 TRACE_PRN_FN_ENT; |
542 gint status(TMS_RESULT_INVALID_STATE); |
521 gint status(TMS_RESULT_INVALID_STATE); |
543 if (iCSDownlink && iDnlinkInitialized) |
522 if (iCSDownlink && iDnlState != EIdle) |
544 { |
523 { |
545 iCSDownlink->SetVolume(volume); |
524 iCSDownlink->SetVolume(volume); |
546 status = TMS_RESULT_SUCCESS; |
525 status = TMS_RESULT_SUCCESS; |
547 NotifyClient(iDnlinkStreamId, ECmdSetVolume, status); |
526 NotifyClient(iDnlinkStreamId, ECmdSetVolume, status); |
548 } |
527 } |
557 // |
536 // |
558 gint TMSCallCSAdpt::GetVolume(guint& volume) |
537 gint TMSCallCSAdpt::GetVolume(guint& volume) |
559 { |
538 { |
560 TRACE_PRN_FN_ENT; |
539 TRACE_PRN_FN_ENT; |
561 gint status(TMS_RESULT_INVALID_STATE); |
540 gint status(TMS_RESULT_INVALID_STATE); |
562 if (iCSDownlink && iDnlinkInitialized) |
541 if (iCSDownlink && iDnlState != EIdle) |
563 { |
542 { |
564 volume = iCSDownlink->Volume(); |
543 volume = iCSDownlink->Volume(); |
565 status = TMS_RESULT_SUCCESS; |
544 status = TMS_RESULT_SUCCESS; |
566 } |
545 } |
567 TRACE_PRN_FN_EXT; |
546 TRACE_PRN_FN_EXT; |
575 // |
554 // |
576 gint TMSCallCSAdpt::GetMaxGain(guint& gain) |
555 gint TMSCallCSAdpt::GetMaxGain(guint& gain) |
577 { |
556 { |
578 TRACE_PRN_FN_ENT; |
557 TRACE_PRN_FN_ENT; |
579 gint status(TMS_RESULT_INVALID_STATE); |
558 gint status(TMS_RESULT_INVALID_STATE); |
580 if (iCSUplink && iUplinkInitialized) |
559 if (iCSUplink && iUplState != EIdle) |
581 { |
560 { |
582 gain = iCSUplink->MaxGain(); |
561 gain = iCSUplink->MaxGain(); |
583 status = TMS_RESULT_SUCCESS; |
562 status = TMS_RESULT_SUCCESS; |
584 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetMaxGain [%d]"), gain); |
563 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetMaxGain [%d]"), gain); |
585 } |
564 } |
594 // |
573 // |
595 gint TMSCallCSAdpt::SetGain(const guint gain) |
574 gint TMSCallCSAdpt::SetGain(const guint gain) |
596 { |
575 { |
597 TRACE_PRN_FN_ENT; |
576 TRACE_PRN_FN_ENT; |
598 gint status(TMS_RESULT_INVALID_STATE); |
577 gint status(TMS_RESULT_INVALID_STATE); |
599 if (iCSUplink && iUplinkInitialized) |
578 if (iCSUplink && iUplState != EIdle) |
600 { |
579 { |
601 iCSUplink->SetGain(gain); |
580 iCSUplink->SetGain(gain); |
602 status = TMS_RESULT_SUCCESS; |
581 status = TMS_RESULT_SUCCESS; |
603 NotifyClient(iUplinkStreamId, ECmdSetGain, status); |
582 NotifyClient(iUplinkStreamId, ECmdSetGain, status); |
604 } |
583 } |
613 // |
592 // |
614 gint TMSCallCSAdpt::GetGain(guint& gain) |
593 gint TMSCallCSAdpt::GetGain(guint& gain) |
615 { |
594 { |
616 TRACE_PRN_FN_ENT; |
595 TRACE_PRN_FN_ENT; |
617 gint status(TMS_RESULT_INVALID_STATE); |
596 gint status(TMS_RESULT_INVALID_STATE); |
618 if (iCSUplink && iUplinkInitialized) |
597 if (iCSUplink && iUplState != EIdle) |
619 { |
598 { |
620 gain = iCSUplink->Gain(); |
599 gain = iCSUplink->Gain(); |
621 status = TMS_RESULT_SUCCESS; |
600 status = TMS_RESULT_SUCCESS; |
622 } |
601 } |
623 TRACE_PRN_FN_EXT; |
602 TRACE_PRN_FN_EXT; |
631 // |
610 // |
632 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume) |
611 gint TMSCallCSAdpt::GetGlobalMaxVolume(guint& volume) |
633 { |
612 { |
634 TRACE_PRN_FN_ENT; |
613 TRACE_PRN_FN_ENT; |
635 gint status(TMS_RESULT_INVALID_STATE); |
614 gint status(TMS_RESULT_INVALID_STATE); |
636 if (iCSDownlink && iDnlinkInitialized) |
615 if (iCSDownlink && iDnlState != EIdle) |
637 { |
616 { |
638 volume = iCSDownlink->MaxVolume(); |
617 volume = iCSDownlink->MaxVolume(); |
639 status = TMS_RESULT_SUCCESS; |
618 status = TMS_RESULT_SUCCESS; |
640 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxVolume [%d]"), volume); |
619 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxVolume [%d]"), volume); |
641 } |
620 } |
651 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume) |
630 gint TMSCallCSAdpt::SetGlobalVolume(const guint volume) |
652 { |
631 { |
653 TRACE_PRN_FN_ENT; |
632 TRACE_PRN_FN_ENT; |
654 gint status(TMS_RESULT_INVALID_STATE); |
633 gint status(TMS_RESULT_INVALID_STATE); |
655 iGlobalVol = volume; |
634 iGlobalVol = volume; |
656 if (iCSDownlink && iDnlinkInitialized) |
635 if (iCSDownlink && iDnlState != EIdle) |
657 { |
636 { |
658 iCSDownlink->SetVolume(volume); |
637 iCSDownlink->SetVolume(volume); |
659 status = TMS_RESULT_SUCCESS; |
638 status = TMS_RESULT_SUCCESS; |
660 } |
639 } |
661 TRACE_PRN_FN_EXT; |
640 TRACE_PRN_FN_EXT; |
669 // |
648 // |
670 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume) |
649 gint TMSCallCSAdpt::GetGlobalVolume(guint& volume) |
671 { |
650 { |
672 TRACE_PRN_FN_ENT; |
651 TRACE_PRN_FN_ENT; |
673 gint status(TMS_RESULT_INVALID_STATE); |
652 gint status(TMS_RESULT_INVALID_STATE); |
674 if (iCSDownlink && iDnlinkInitialized) |
653 if (iCSDownlink && iDnlState != EIdle) |
675 { |
654 { |
676 volume = iCSDownlink->Volume(); |
655 volume = iCSDownlink->Volume(); |
677 status = TMS_RESULT_SUCCESS; |
656 status = TMS_RESULT_SUCCESS; |
678 } |
657 } |
679 TRACE_PRN_FN_EXT; |
658 TRACE_PRN_FN_EXT; |
687 // |
666 // |
688 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain) |
667 gint TMSCallCSAdpt::GetGlobalMaxGain(guint& gain) |
689 { |
668 { |
690 TRACE_PRN_FN_ENT; |
669 TRACE_PRN_FN_ENT; |
691 gint status(TMS_RESULT_INVALID_STATE); |
670 gint status(TMS_RESULT_INVALID_STATE); |
692 if (iCSUplink && iUplinkInitialized) |
671 if (iCSUplink && iUplState != EIdle) |
693 { |
672 { |
694 gain = iCSUplink->MaxGain(); |
673 gain = iCSUplink->MaxGain(); |
695 status = TMS_RESULT_SUCCESS; |
674 status = TMS_RESULT_SUCCESS; |
696 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxGain [%d]"), gain); |
675 TRACE_PRN_N1(_L("TMS->TMSCallCSAdpt::GetGlobalMaxGain [%d]"), gain); |
697 } |
676 } |
707 gint TMSCallCSAdpt::SetGlobalGain(const guint gain) |
686 gint TMSCallCSAdpt::SetGlobalGain(const guint gain) |
708 { |
687 { |
709 TRACE_PRN_FN_ENT; |
688 TRACE_PRN_FN_ENT; |
710 gint status(TMS_RESULT_INVALID_STATE); |
689 gint status(TMS_RESULT_INVALID_STATE); |
711 iGlobalGain = gain; |
690 iGlobalGain = gain; |
712 if (iCSUplink && iUplinkInitialized) |
691 if (iCSUplink && iUplState != EIdle) |
713 { |
692 { |
714 iCSUplink->SetGain(gain); |
693 iCSUplink->SetGain(gain); |
715 status = TMS_RESULT_SUCCESS; |
694 status = TMS_RESULT_SUCCESS; |
716 } |
695 } |
717 TRACE_PRN_FN_EXT; |
696 TRACE_PRN_FN_EXT; |
725 // |
704 // |
726 gint TMSCallCSAdpt::GetGlobalGain(guint& gain) |
705 gint TMSCallCSAdpt::GetGlobalGain(guint& gain) |
727 { |
706 { |
728 TRACE_PRN_FN_ENT; |
707 TRACE_PRN_FN_ENT; |
729 gint status(TMS_RESULT_INVALID_STATE); |
708 gint status(TMS_RESULT_INVALID_STATE); |
730 if (iCSUplink && iUplinkInitialized) |
709 if (iCSUplink && iUplState != EIdle) |
731 { |
710 { |
732 gain = iCSUplink->Gain(); |
711 gain = iCSUplink->Gain(); |
733 status = TMS_RESULT_SUCCESS; |
712 status = TMS_RESULT_SUCCESS; |
734 } |
713 } |
735 TRACE_PRN_FN_EXT; |
714 TRACE_PRN_FN_EXT; |
940 CTelephonyAudioRouting::TAudioOutput taroutput; |
919 CTelephonyAudioRouting::TAudioOutput taroutput; |
941 taroutput = iRouting->Output(); |
920 taroutput = iRouting->Output(); |
942 status = TMS_RESULT_SUCCESS; |
921 status = TMS_RESULT_SUCCESS; |
943 output = TOTMSOUTPUT(taroutput); |
922 output = TOTMSOUTPUT(taroutput); |
944 } |
923 } |
945 |
|
946 TRACE_PRN_FN_EXT; |
924 TRACE_PRN_FN_EXT; |
947 return status; |
925 return status; |
948 } |
926 } |
949 |
927 |
950 // ----------------------------------------------------------------------------- |
928 // ----------------------------------------------------------------------------- |
982 if (iRouting) |
960 if (iRouting) |
983 { |
961 { |
984 RBufWriteStream stream; |
962 RBufWriteStream stream; |
985 stream.Open(*outputsbuf); |
963 stream.Open(*outputsbuf); |
986 CleanupClosePushL(stream); |
964 CleanupClosePushL(stream); |
987 |
|
988 TArray<CTelephonyAudioRouting::TAudioOutput> |
965 TArray<CTelephonyAudioRouting::TAudioOutput> |
989 availableOutputs = iRouting->AvailableOutputs(); |
966 availableOutputs = iRouting->AvailableOutputs(); |
990 |
|
991 guint numOfItems = availableOutputs.Count(); |
967 guint numOfItems = availableOutputs.Count(); |
992 count = numOfItems; |
968 count = numOfItems; |
993 for (guint i = 0; i < numOfItems; i++) |
969 for (guint i = 0; i < numOfItems; i++) |
994 { |
970 { |
995 tmsoutput = TOTMSOUTPUT(availableOutputs[i]); |
971 tmsoutput = TOTMSOUTPUT(availableOutputs[i]); |
996 stream.WriteUint32L(tmsoutput); |
972 stream.WriteUint32L(tmsoutput); |
997 } |
973 } |
998 |
|
999 CleanupStack::PopAndDestroy(&stream); |
974 CleanupStack::PopAndDestroy(&stream); |
1000 status = TMS_RESULT_SUCCESS; |
975 status = TMS_RESULT_SUCCESS; |
1001 } |
976 } |
1002 |
977 |
1003 TRACE_PRN_FN_EXT; |
978 TRACE_PRN_FN_EXT; |
1004 return status; |
979 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 } |
980 } |
1176 |
981 |
1177 // ----------------------------------------------------------------------------- |
982 // ----------------------------------------------------------------------------- |
1178 // TMSCallCSAdpt::DownlinkInitCompleted |
983 // TMSCallCSAdpt::DownlinkInitCompleted |
1179 // From TMSCSDevSoundObserver |
984 // From TMSCSDevSoundObserver |
1182 void TMSCallCSAdpt::DownlinkInitCompleted(gint status) |
987 void TMSCallCSAdpt::DownlinkInitCompleted(gint status) |
1183 { |
988 { |
1184 TRACE_PRN_FN_ENT; |
989 TRACE_PRN_FN_ENT; |
1185 if (status == TMS_RESULT_SUCCESS) |
990 if (status == TMS_RESULT_SUCCESS) |
1186 { |
991 { |
1187 iDnlinkInitialized = TRUE; |
992 iDnlState = EInitialized; |
1188 } |
993 } |
1189 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
994 NotifyClient(iDnlinkStreamId, ECmdDownlinkInitComplete, status); |
1190 TRACE_PRN_FN_EXT; |
995 TRACE_PRN_FN_EXT; |
1191 } |
996 } |
1192 |
997 |
1198 void TMSCallCSAdpt::UplinkInitCompleted(gint status) |
1003 void TMSCallCSAdpt::UplinkInitCompleted(gint status) |
1199 { |
1004 { |
1200 TRACE_PRN_FN_ENT; |
1005 TRACE_PRN_FN_ENT; |
1201 if (status == TMS_RESULT_SUCCESS) |
1006 if (status == TMS_RESULT_SUCCESS) |
1202 { |
1007 { |
1203 iUplinkInitialized = TRUE; |
1008 iUplState = EInitialized; |
1204 } |
1009 } |
1205 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
1010 NotifyClient(iUplinkStreamId, ECmdUplinkInitComplete, status); |
1206 TRACE_PRN_FN_EXT; |
1011 TRACE_PRN_FN_EXT; |
1207 } |
1012 } |
1208 |
1013 |
1212 // ----------------------------------------------------------------------------- |
1017 // ----------------------------------------------------------------------------- |
1213 // |
1018 // |
1214 void TMSCallCSAdpt::UplinkActivationCompleted(gint status) |
1019 void TMSCallCSAdpt::UplinkActivationCompleted(gint status) |
1215 { |
1020 { |
1216 TRACE_PRN_FN_ENT; |
1021 TRACE_PRN_FN_ENT; |
1022 if (status == TMS_RESULT_SUCCESS) |
|
1023 { |
|
1024 iUplState = EActivated; |
|
1025 } |
|
1217 NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); |
1026 NotifyClient(iUplinkStreamId, ECmdUplinkStarted, status); |
1218 TRACE_PRN_FN_EXT; |
1027 TRACE_PRN_FN_EXT; |
1219 } |
1028 } |
1220 |
1029 |
1221 // ----------------------------------------------------------------------------- |
1030 // ----------------------------------------------------------------------------- |
1224 // ----------------------------------------------------------------------------- |
1033 // ----------------------------------------------------------------------------- |
1225 // |
1034 // |
1226 void TMSCallCSAdpt::DownlinkActivationCompleted(gint status) |
1035 void TMSCallCSAdpt::DownlinkActivationCompleted(gint status) |
1227 { |
1036 { |
1228 TRACE_PRN_FN_ENT; |
1037 TRACE_PRN_FN_ENT; |
1038 if (status == TMS_RESULT_SUCCESS) |
|
1039 { |
|
1040 iDnlState = EActivated; |
|
1041 } |
|
1229 NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); |
1042 NotifyClient(iDnlinkStreamId, ECmdDownlinkStarted, status); |
1230 TRACE_PRN_FN_EXT; |
1043 TRACE_PRN_FN_EXT; |
1231 } |
1044 } |
1232 |
1045 |
1233 // ----------------------------------------------------------------------------- |
1046 // ----------------------------------------------------------------------------- |