00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "CSwap.h"
00018
00026 CSwap* CSwap::NewL(MExecAsync* aController)
00027 {
00028 CSwap* self = new(ELeave) CSwap(aController);
00029 CleanupStack::PushL(self);
00030 self->ConstructL();
00031 CleanupStack::Pop(self);
00032 return self;
00033 }
00034
00039 CSwap::~CSwap()
00040 {
00041 Cancel();
00042 }
00043
00050 void CSwap::DoStartRequestL(CTelephony::TCallId aCallId1,
00051 CTelephony::TCallId aCallId2)
00052 {
00053 _LIT(KDummyAnswerPanic, "CSignalInfo Get Method");
00054 __ASSERT_ALWAYS(!IsActive(), User::Panic(KDummyAnswerPanic, 1));
00055 iRequestNotify = EFalse;
00056 CTelephony::TCallCapsV1 callCapsV1;
00057 CTelephony::TCallCapsV1Pckg callCapsV1Pckg(callCapsV1);
00058
00059
00060 iTelephony->GetCallDynamicCaps(aCallId1, callCapsV1Pckg);
00061
00062 if( callCapsV1.iControlCaps & CTelephony::KCapsSwap)
00063 {
00064
00065 iTelephony->Swap(iStatus, aCallId1, aCallId2);
00066 SetActive();
00067 }
00068 else
00069 {
00070
00071 }
00072 }
00073
00080 CSwap::CSwap(MExecAsync* aController)
00081 : CISVAPIAsync(aController, KSwap)
00082 {
00083
00084 }
00085
00089 void CSwap::ConstructL()
00090 {
00091
00092 }
00093
00098 void CSwap::RunL()
00099 {
00100 if(iStatus != KErrNone)
00101 {
00102 iConsole->Printf(KError);
00103
00104
00105 iConsole->Printf(_L("Swap %d\n"), iStatus.Int());
00106 }
00107 else
00108 {
00109 ExampleComplete();
00110 }
00111 }
00112
00116 void CSwap::DoCancel()
00117 {
00118
00119 iTelephony->CancelAsync(CTelephony::ESwapCancel);
00120 }
00121