00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include "CCallWaitingStatus.h"
00033
00040 CCallWaitingStatus* CCallWaitingStatus::NewL(MExecAsync* aController)
00041 {
00042 CCallWaitingStatus* self = new(ELeave) CCallWaitingStatus(aController);
00043 CleanupStack::PushL(self);
00044 self->ConstructL();
00045 CleanupStack::Pop(self);
00046 return self;
00047 }
00048
00053 CCallWaitingStatus::~CCallWaitingStatus()
00054 {
00055 Cancel();
00056 }
00057
00062 void CCallWaitingStatus::DoStartRequestL()
00063 {
00064 _LIT( KNotifyPanic, "CCallWaitingStatus Get Method" );
00065 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00066 iRequestNotify = EFalse;
00067
00068
00069 iTelephony->GetCallWaitingStatus(iStatus, iCallWaitingStatusV1Pckg);
00070 SetActive();
00071 }
00072
00079 CCallWaitingStatus::CCallWaitingStatus(MExecAsync* aController)
00080 : CISVAPIAsync(aController, KCallWaitingStatus),
00081 iCallWaitingStatusV1Pckg(iCallWaitingStatusV1)
00082 {
00083
00084 }
00085
00089 void CCallWaitingStatus::ConstructL()
00090 {
00091
00092 }
00093
00098 void CCallWaitingStatus::RunL()
00099 {
00100 if(iStatus != KErrNone)
00101 {
00102 iConsole->Printf(KError);
00103
00104
00105 iConsole->Printf(_L("%d\n"), iStatus.Int());
00106 }
00107 else
00108 {
00109
00110 iConsole->Printf(KCallWaitingStatusMsg);
00111 switch(iCallWaitingStatusV1.iCallWaiting)
00112 {
00113 case CTelephony::EStatusActive:
00114 iConsole->Printf(_L("Call Waiting Provisioned\n"));
00115 ExampleNotify();
00116 break;
00117 case CTelephony::ENotActive:
00118 case CTelephony::ENotProvisioned:
00119 case CTelephony::ENotAvailable:
00120 case CTelephony::EUnknown:
00121 iConsole->Printf(_L("Call Waiting Not Provisioned\n"));
00122 ExampleComplete();
00123 break;
00124 }
00125 }
00126 }
00127
00131 void CCallWaitingStatus::DoCancel()
00132 {
00133
00134 iTelephony->CancelAsync(CTelephony::EGetCallWaitingStatusCancel);
00135 }