equal
deleted
inserted
replaced
1 // Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
19 |
19 |
20 /** |
20 /** |
21 @file |
21 @file |
22 */ |
22 */ |
23 |
23 |
24 |
|
25 #include "OstTraceDefinitions.h" |
|
26 #ifdef OST_TRACE_COMPILER_IN_USE |
|
27 #include "CSimCallTraces.h" |
|
28 #endif |
|
29 |
|
30 #include "CSimCall.h" |
24 #include "CSimCall.h" |
31 #include "CSimPhone.h" |
25 #include "CSimPhone.h" |
|
26 #include "Simlog.h" |
32 |
27 |
33 void CSimCall::CloseCall(TAny* aObj) |
28 void CSimCall::CloseCall(TAny* aObj) |
34 /** |
29 /** |
35 * Utility func for cleanup stack |
30 * Utility func for cleanup stack |
36 * |
31 * |
84 { |
79 { |
85 // ReqModeL is called from the server's CTelObject::ReqAnalyserL |
80 // ReqModeL is called from the server's CTelObject::ReqAnalyserL |
86 // in order to check the type of request it has |
81 // in order to check the type of request it has |
87 |
82 |
88 CTelObject::TReqMode reqMode=0; |
83 CTelObject::TReqMode reqMode=0; |
89 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_REQMODEL_1, "CSimCall::ReqModeL called with IPC number %d",aIpc); |
84 LOGCALL2("CSimCall::ReqModeL called with IPC number %d",aIpc); |
90 switch (aIpc) |
85 switch (aIpc) |
91 { |
86 { |
92 // |
87 // |
93 // No Flow Control NOR Multiple Completion |
88 // No Flow Control NOR Multiple Completion |
94 // |
89 // |
148 case EMobileCallNotifyHscsdInfoChange: |
143 case EMobileCallNotifyHscsdInfoChange: |
149 case EMobileCallNotifyMobileDataCallCapsChange: |
144 case EMobileCallNotifyMobileDataCallCapsChange: |
150 case EMobileCallNotifyMobileCallStatusChange: |
145 case EMobileCallNotifyMobileCallStatusChange: |
151 case EMobileCallNotifyMobileCallCapsChange: |
146 case EMobileCallNotifyMobileCallCapsChange: |
152 case EMobileCallNotifyRemotePartyInfoChange: |
147 case EMobileCallNotifyRemotePartyInfoChange: |
153 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NUMBEROFSLOTSL_1, "CSimCall: Registered with default number of slots"); |
148 LOGCALL1("CSimCall: Registered with default number of slots"); |
154 return KDefaultNumberOfSlots; |
149 return KDefaultNumberOfSlots; |
155 default: |
150 default: |
156 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NUMBEROFSLOTSL_2, "CSimCall::NumberOfSlotsL: No match for IPC, defering to base function"); |
151 LOGCALL1("CSimCall::NumberOfSlotsL: No match for IPC, defering to base function"); |
157 break; |
152 break; |
158 } |
153 } |
159 return CCallBase::NumberOfSlotsL(aIpc); |
154 return CCallBase::NumberOfSlotsL(aIpc); |
160 } |
155 } |
161 |
156 |
293 * @param aTsyReqHandle Tsy Request handle for the client request |
288 * @param aTsyReqHandle Tsy Request handle for the client request |
294 * @param aHookStatus pointer to the hook status |
289 * @param aHookStatus pointer to the hook status |
295 * @return KErrNone |
290 * @return KErrNone |
296 */ |
291 */ |
297 { |
292 { |
298 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYHOOKCHANGE_1, ">>CSimCall::NotifyHookChange"); |
293 LOGCALL1(">>CSimCall::NotifyHookChange"); |
299 iNotifyHookChange.iNotifyPending = ETrue; |
294 iNotifyHookChange.iNotifyPending = ETrue; |
300 iNotifyHookChange.iNotifyHandle = aTsyReqHandle; |
295 iNotifyHookChange.iNotifyHandle = aTsyReqHandle; |
301 iNotifyHookChange.iNotifyData = aHookStatus; |
296 iNotifyHookChange.iNotifyData = aHookStatus; |
302 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYHOOKCHANGE_2, "<<CSimCall::NotifyHookChange"); |
297 LOGCALL1("<<CSimCall::NotifyHookChange"); |
303 return KErrNone; |
298 return KErrNone; |
304 } |
299 } |
305 |
300 |
306 TInt CSimCall::NotifyHookChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
301 TInt CSimCall::NotifyHookChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
307 /** |
302 /** |
309 * |
304 * |
310 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
305 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
311 * @return KErrNone |
306 * @return KErrNone |
312 */ |
307 */ |
313 { |
308 { |
314 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYHOOKCHANGECANCEL_1, ">>CSimCall::NotifyHookChangeCancel"); |
309 LOGCALL1(">>CSimCall::NotifyHookChangeCancel"); |
315 if(iNotifyHookChange.iNotifyPending) |
310 if(iNotifyHookChange.iNotifyPending) |
316 { |
311 { |
317 iNotifyHookChange.iNotifyPending=EFalse; |
312 iNotifyHookChange.iNotifyPending=EFalse; |
318 ReqCompleted(iNotifyHookChange.iNotifyHandle,KErrCancel); |
313 ReqCompleted(iNotifyHookChange.iNotifyHandle,KErrCancel); |
319 } |
314 } |
320 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYHOOKCHANGECANCEL_2, "<<CSimCall::NotifyHookChangeCancel"); |
315 LOGCALL1("<<CSimCall::NotifyHookChangeCancel"); |
321 return KErrNone; |
316 return KErrNone; |
322 } |
317 } |
323 |
318 |
324 TInt CSimCall::NotifyMobileCallStatusChange(const TTsyReqHandle aTsyReqHandle,RMobileCall::TMobileCallStatus* aStatus) |
319 TInt CSimCall::NotifyMobileCallStatusChange(const TTsyReqHandle aTsyReqHandle,RMobileCall::TMobileCallStatus* aStatus) |
325 /** |
320 /** |
331 * @param aTsyReqHandle Tsy Request handle for the client request |
326 * @param aTsyReqHandle Tsy Request handle for the client request |
332 * @param aStatus pointer to the call status |
327 * @param aStatus pointer to the call status |
333 * @return KErrNone |
328 * @return KErrNone |
334 */ |
329 */ |
335 { |
330 { |
336 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYMOBILECALLSTATUSCHANGE_1, ">>CSimCall::NotifyMobileCallStatusChange"); |
331 LOGCALL1(">>CSimCall::NotifyMobileCallStatusChange"); |
337 __ASSERT_ALWAYS(!iMobileNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
332 __ASSERT_ALWAYS(!iMobileNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
338 |
333 |
339 iMobileNotifyStatusChange.iNotifyPending = ETrue; |
334 iMobileNotifyStatusChange.iNotifyPending = ETrue; |
340 iMobileNotifyStatusChange.iNotifyHandle = aTsyReqHandle; |
335 iMobileNotifyStatusChange.iNotifyHandle = aTsyReqHandle; |
341 iMobileNotifyStatusChange.iNotifyData = aStatus; |
336 iMobileNotifyStatusChange.iNotifyData = aStatus; |
342 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYMOBILECALLSTATUSCHANGE_2, "<<CSimCall::NotifyMobileCallStatusChange"); |
337 LOGCALL1("<<CSimCall::NotifyMobileCallStatusChange"); |
343 return KErrNone; |
338 return KErrNone; |
344 } |
339 } |
345 |
340 |
346 TInt CSimCall::NotifyMobileCallStatusChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
341 TInt CSimCall::NotifyMobileCallStatusChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
347 /** |
342 /** |
350 * |
345 * |
351 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
346 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
352 * @return KErrNone |
347 * @return KErrNone |
353 */ |
348 */ |
354 { |
349 { |
355 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYMOBILECALLSTATUSCHANGECANCEL_1, ">>CSimCall::NotifyMobileCallStatusChangeCancel"); |
350 LOGCALL1(">>CSimCall::NotifyMobileCallStatusChangeCancel"); |
356 if(iMobileNotifyStatusChange.iNotifyPending) |
351 if(iMobileNotifyStatusChange.iNotifyPending) |
357 { |
352 { |
358 iMobileNotifyStatusChange.iNotifyPending=EFalse; |
353 iMobileNotifyStatusChange.iNotifyPending=EFalse; |
359 ReqCompleted(iMobileNotifyStatusChange.iNotifyHandle,KErrCancel); |
354 ReqCompleted(iMobileNotifyStatusChange.iNotifyHandle,KErrCancel); |
360 } |
355 } |
361 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYMOBILECALLSTATUSCHANGECANCEL_2, "<<CSimCall::NotifyMobileCallStatusChangeCancel"); |
356 LOGCALL1("<<CSimCall::NotifyMobileCallStatusChangeCancel"); |
362 return KErrNone; |
357 return KErrNone; |
363 } |
358 } |
364 |
359 |
365 |
360 |
366 TInt CSimCall::NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RCall::TStatus* aStatus) |
361 TInt CSimCall::NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RCall::TStatus* aStatus) |
373 * @param aTsyReqHandle Tsy Request handle for the client request |
368 * @param aTsyReqHandle Tsy Request handle for the client request |
374 * @param aStatus pointer to the call status |
369 * @param aStatus pointer to the call status |
375 * @return KErrNone |
370 * @return KErrNone |
376 */ |
371 */ |
377 { |
372 { |
378 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYSTATUSCHANGE_1, ">>CSimCall::NotifyStatusChange"); |
373 LOGCALL1(">>CSimCall::NotifyStatusChange"); |
379 __ASSERT_ALWAYS(!iNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
374 __ASSERT_ALWAYS(!iNotifyStatusChange.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
380 |
375 |
381 iNotifyStatusChange.iNotifyPending = ETrue; |
376 iNotifyStatusChange.iNotifyPending = ETrue; |
382 iNotifyStatusChange.iNotifyHandle = aTsyReqHandle; |
377 iNotifyStatusChange.iNotifyHandle = aTsyReqHandle; |
383 iNotifyStatusChange.iNotifyData = aStatus; |
378 iNotifyStatusChange.iNotifyData = aStatus; |
384 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYSTATUSCHANGE_2, "<<CSimCall::NotifyStatusChange"); |
379 LOGCALL1("<<CSimCall::NotifyStatusChange"); |
385 return KErrNone; |
380 return KErrNone; |
386 } |
381 } |
387 |
382 |
388 TInt CSimCall::NotifyStatusChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
383 TInt CSimCall::NotifyStatusChangeCancel(const TTsyReqHandle /*aTsyReqHandle*/) |
389 /** |
384 /** |
392 * |
387 * |
393 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
388 * @param aTsyReqHandle Tsy Request handle for the client cancel request |
394 * @return KErrNone |
389 * @return KErrNone |
395 */ |
390 */ |
396 { |
391 { |
397 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYSTATUSCHANGECANCEL_1, ">>CSimCall::NotifyStatusChangeCancel"); |
392 LOGCALL1(">>CSimCall::NotifyStatusChangeCancel"); |
398 if(iNotifyStatusChange.iNotifyPending) |
393 if(iNotifyStatusChange.iNotifyPending) |
399 { |
394 { |
400 iNotifyStatusChange.iNotifyPending=EFalse; |
395 iNotifyStatusChange.iNotifyPending=EFalse; |
401 ReqCompleted(iNotifyStatusChange.iNotifyHandle,KErrCancel); |
396 ReqCompleted(iNotifyStatusChange.iNotifyHandle,KErrCancel); |
402 } |
397 } |
403 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYSTATUSCHANGECANCEL_2, "<<CSimCall::NotifyStatusChangeCancel"); |
398 LOGCALL1("<<CSimCall::NotifyStatusChangeCancel"); |
404 return KErrNone; |
399 return KErrNone; |
405 } |
400 } |
406 |
401 |
407 |
402 |
408 |
403 |
478 |
473 |
479 mobileCallInfo.iValid=0x0; |
474 mobileCallInfo.iValid=0x0; |
480 mobileCallInfo.iStatus=iState; |
475 mobileCallInfo.iStatus=iState; |
481 mobileCallInfo.iCallName.Copy(iName); |
476 mobileCallInfo.iCallName.Copy(iName); |
482 mobileCallInfo.iLineName.Copy(iLine->iLineName); |
477 mobileCallInfo.iLineName.Copy(iLine->iLineName); |
483 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETMOBILECALLINFO_1, "CSimCall::GetMobileCallInfo request completed with %d",iState); |
478 LOGCALL2("CSimCall::GetMobileCallInfo request completed with %d",iState); |
484 ReqCompleted(aTsyReqHandle,KErrNone); |
479 ReqCompleted(aTsyReqHandle,KErrNone); |
485 return KErrNone; |
480 return KErrNone; |
486 } |
481 } |
487 |
482 |
488 RCall::TStatus CSimCall::GetCoreCallStatus() |
483 RCall::TStatus CSimCall::GetCoreCallStatus() |
522 * @param aTsyReqHandle |
517 * @param aTsyReqHandle |
523 * @param aCallStatus pointer to the call status |
518 * @param aCallStatus pointer to the call status |
524 * @return KErrNone |
519 * @return KErrNone |
525 */ |
520 */ |
526 { |
521 { |
527 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETSTATUS_1, ">>CSimCall::GetStatus"); |
522 LOGCALL1(">>CSimCall::GetStatus"); |
528 *aCallStatus=GetCoreCallStatus(); |
523 *aCallStatus=GetCoreCallStatus(); |
529 ReqCompleted(aTsyReqHandle,KErrNone); |
524 ReqCompleted(aTsyReqHandle,KErrNone); |
530 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETSTATUS_2, "<<CSimCall::GetStatus"); |
525 LOGCALL1("<<CSimCall::GetStatus"); |
531 return KErrNone; |
526 return KErrNone; |
532 } |
527 } |
533 |
528 |
534 TInt CSimCall::GetMobileCallStatus(const TTsyReqHandle aTsyReqHandle, RMobileCall::TMobileCallStatus* aCallStatus) |
529 TInt CSimCall::GetMobileCallStatus(const TTsyReqHandle aTsyReqHandle, RMobileCall::TMobileCallStatus* aCallStatus) |
535 /** |
530 /** |
538 * @param aTsyReqHandle |
533 * @param aTsyReqHandle |
539 * @param aCallStatus pointer to the call status |
534 * @param aCallStatus pointer to the call status |
540 * @return KErrNone |
535 * @return KErrNone |
541 */ |
536 */ |
542 { |
537 { |
543 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETMOBILECALLSTATUS_1, ">>CSimCall::GetMobileCallStatus"); |
538 LOGCALL1(">>CSimCall::GetMobileCallStatus"); |
544 *aCallStatus=iState; |
539 *aCallStatus=iState; |
545 ReqCompleted(aTsyReqHandle,KErrNone); |
540 ReqCompleted(aTsyReqHandle,KErrNone); |
546 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETMOBILECALLSTATUS_2, "<<CSimCall::GetMobileCallStatus"); |
541 LOGCALL1("<<CSimCall::GetMobileCallStatus"); |
547 return KErrNone; |
542 return KErrNone; |
548 } |
543 } |
549 |
544 |
550 TInt CSimCall::TransferOwnership(const TTsyReqHandle aTsyReqHandle) |
545 TInt CSimCall::TransferOwnership(const TTsyReqHandle aTsyReqHandle) |
551 /** |
546 /** |
580 /** |
575 /** |
581 * Retrieves the last call duration |
576 * Retrieves the last call duration |
582 * Not supported in this version of the Simulator TSY |
577 * Not supported in this version of the Simulator TSY |
583 */ |
578 */ |
584 { |
579 { |
585 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETCALLDURATION_1, ">>CSimCall::GetCallDuration"); |
580 LOGCALL1(">>CSimCall::GetCallDuration"); |
586 |
581 |
587 iCallDurationHandler->GetDuration(aTime); |
582 iCallDurationHandler->GetDuration(aTime); |
588 |
583 |
589 ReqCompleted(aTsyReqHandle,KErrNone); |
584 ReqCompleted(aTsyReqHandle,KErrNone); |
590 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_GETCALLDURATION_2, "<<CSimCall::GetCallDuration"); |
585 LOGCALL1("<<CSimCall::GetCallDuration"); |
591 return KErrNone; |
586 return KErrNone; |
592 } |
587 } |
593 |
588 |
594 TInt CSimCall::RecoverDataPortAndRelinquishOwnership() |
589 TInt CSimCall::RecoverDataPortAndRelinquishOwnership() |
595 /** |
590 /** |
663 * @param aSwap indicates that state change takes place as a consequence of swap operation on the call |
658 * @param aSwap indicates that state change takes place as a consequence of swap operation on the call |
664 * @param aNoPropagation indicates whether change propagate to the holder line object |
659 * @param aNoPropagation indicates whether change propagate to the holder line object |
665 * @return Error indication if change of state is successful or not |
660 * @return Error indication if change of state is successful or not |
666 */ |
661 */ |
667 { |
662 { |
668 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_CHANGESTATEL_1, ">>CSimCall::ChangeState 0x%08x [newState=%d] entry", (TUint)this,aNewState); |
663 LOGCALL3(">>CSimCall::ChangeState 0x%08x [newState=%d] entry", this,aNewState); |
669 |
664 |
670 if(!aNoPropagation) |
665 if(!aNoPropagation) |
671 { |
666 { |
672 TInt ret=iLine->ChangeStateL(aNewState,aSwap,this); |
667 TInt ret=iLine->ChangeStateL(aNewState,aSwap,this); |
673 if(ret!=KErrNone) |
668 if(ret!=KErrNone) |
737 } |
732 } |
738 } |
733 } |
739 if((aNewState == RMobileCall::EStatusConnected && !aSwap)|| aNewState == RMobileCall::EStatusDisconnecting) |
734 if((aNewState == RMobileCall::EStatusConnected && !aSwap)|| aNewState == RMobileCall::EStatusDisconnecting) |
740 iLine->UpdatePhoneNotifiers(this,aNewState); |
735 iLine->UpdatePhoneNotifiers(this,aNewState); |
741 |
736 |
742 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_CHANGESTATEL_2, "<<CSimCall::ChangeState exit %d",iState); |
737 LOGCALL2("<<CSimCall::ChangeState exit %d",iState); |
743 return KErrNone; |
738 return KErrNone; |
744 } |
739 } |
745 |
740 |
746 |
741 |
747 void CSimCall::UpdateNotifiers() |
742 void CSimCall::UpdateNotifiers() |
748 /** |
743 /** |
749 Update notifiers of other voice call when it gets swapped |
744 Update notifiers of other voice call when it gets swapped |
750 */ |
745 */ |
751 { |
746 { |
752 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_UPDATENOTIFIERS_1, ">>CSimCall::UpdateNotifiers 0x%08x entry", this); |
747 LOGCALL2(">>CSimCall::UpdateNotifiers 0x%08x entry", this); |
753 |
748 |
754 // Check for call duration change |
749 // Check for call duration change |
755 if (!iCallDurationHandler) |
750 if (!iCallDurationHandler) |
756 { |
751 { |
757 TRAP_IGNORE(iCallDurationHandler=CSimCallDuration::NewL(this)); |
752 TRAP_IGNORE(iCallDurationHandler=CSimCallDuration::NewL(this)); |
808 mobileCallCaps.iCallEventCaps=0; |
803 mobileCallCaps.iCallEventCaps=0; |
809 ReqCompleted(iNotifyMobileCapsChange.iNotifyHandle,KErrNone); |
804 ReqCompleted(iNotifyMobileCapsChange.iNotifyHandle,KErrNone); |
810 } |
805 } |
811 } |
806 } |
812 |
807 |
813 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_UPDATENOTIFIERS_2, "<<CSimCall::UpdateNotifiers exit %d",iState); |
808 LOGCALL2("<<CSimCall::UpdateNotifiers exit %d",iState); |
814 } |
809 } |
815 |
810 |
816 TInt CSimCall::ActionEvent(TCallEvent /*aEvent*/, TInt /*aStatus*/) |
811 TInt CSimCall::ActionEvent(TCallEvent /*aEvent*/, TInt /*aStatus*/) |
817 /** |
812 /** |
818 * This is an empty shell function. Each line should implement its own |
813 * This is an empty shell function. Each line should implement its own |
1009 * @param aTsyReqHandle Tsy Request handle for the client request |
1004 * @param aTsyReqHandle Tsy Request handle for the client request |
1010 * @param aStatus pointer to the call status |
1005 * @param aStatus pointer to the call status |
1011 * @return KErrNone |
1006 * @return KErrNone |
1012 */ |
1007 */ |
1013 { |
1008 { |
1014 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYREMOTEPARTYINFOCHANGE_1, ">>CSimCall::NotifyRemotePartyInfoChange"); |
1009 LOGCALL1(">>CSimCall::NotifyRemotePartyInfoChange"); |
1015 __ASSERT_ALWAYS(iNotifyRemotePartyInfoTimer, SimPanic(EOjectNotConstructed)); |
1010 __ASSERT_ALWAYS(iNotifyRemotePartyInfoTimer, SimPanic(EOjectNotConstructed)); |
1016 __ASSERT_ALWAYS(!iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
1011 __ASSERT_ALWAYS(!iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending,SimPanic(ENotificationAlreadyPending)); |
1017 |
1012 |
1018 RMobileCall::TMobileCallRemotePartyInfoV1Pckg* remotepartyPckg = (RMobileCall::TMobileCallRemotePartyInfoV1Pckg*) aRemoteParty; |
1013 RMobileCall::TMobileCallRemotePartyInfoV1Pckg* remotepartyPckg = (RMobileCall::TMobileCallRemotePartyInfoV1Pckg*) aRemoteParty; |
1019 RMobileCall::TMobileCallRemotePartyInfoV1& remoteparty = (*remotepartyPckg)(); |
1014 RMobileCall::TMobileCallRemotePartyInfoV1& remoteparty = (*remotepartyPckg)(); |
1030 iNotifyRemotePartyInfoTimer->Start(); |
1025 iNotifyRemotePartyInfoTimer->Start(); |
1031 |
1026 |
1032 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending = ETrue; |
1027 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending = ETrue; |
1033 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyHandle = aTsyReqHandle; |
1028 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyHandle = aTsyReqHandle; |
1034 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyData = &remoteparty; |
1029 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyData = &remoteparty; |
1035 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYREMOTEPARTYINFOCHANGE_2, "<<CSimCall::NotifyRemotePartyInfoChange"); |
1030 LOGCALL1("<<CSimCall::NotifyRemotePartyInfoChange"); |
1036 return KErrNone; |
1031 return KErrNone; |
1037 } |
1032 } |
1038 |
1033 |
1039 TInt CSimCall::NotifyRemotePartyInfoChangeCancel() |
1034 TInt CSimCall::NotifyRemotePartyInfoChangeCancel() |
1040 /** |
1035 /** |
1042 * This is acheived simply by resetting the flag that indicates a notification is pending. |
1037 * This is acheived simply by resetting the flag that indicates a notification is pending. |
1043 * |
1038 * |
1044 * @return KErrNone |
1039 * @return KErrNone |
1045 */ |
1040 */ |
1046 { |
1041 { |
1047 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYREMOTEPARTYINFOCHANGECANCEL_1, ">>CSimCall::NotifyRemotePartyInfoChangeCancel"); |
1042 LOGCALL1(">>CSimCall::NotifyRemotePartyInfoChangeCancel"); |
1048 if(iNotifyRemotePartyInfoTimer && iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending) |
1043 if(iNotifyRemotePartyInfoTimer && iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending) |
1049 { |
1044 { |
1050 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending=EFalse; |
1045 iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyPending=EFalse; |
1051 ReqCompleted(iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyHandle,KErrCancel); |
1046 ReqCompleted(iNotifyRemotePartyInfoTimer->iNotifyRemotePartyInfo.iNotifyHandle,KErrCancel); |
1052 } |
1047 } |
1053 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSIMCALL_NOTIFYREMOTEPARTYINFOCHANGECANCEL_2, "<<CSimCall::NotifyRemotePartyInfoChangeCancel"); |
1048 LOGCALL1("<<CSimCall::NotifyRemotePartyInfoChangeCancel"); |
1054 return KErrNone; |
1049 return KErrNone; |
1055 } |
1050 } |