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
00041 CCallWaitingStatus* CCallWaitingStatus::NewL(MExecAsync* aController)
00042 {
00043 CCallWaitingStatus* self = new(ELeave) CCallWaitingStatus(aController);
00044 CleanupStack::PushL(self);
00045 self->ConstructL();
00046 CleanupStack::Pop(self);
00047 return self;
00048 }
00049
00054 CCallWaitingStatus::~CCallWaitingStatus()
00055 {
00056 Cancel();
00057 }
00058
00063 void CCallWaitingStatus::DoStartRequestL()
00064 {
00065 _LIT( KNotifyPanic, "CCallWaitingStatus Get Method" );
00066 __ASSERT_ALWAYS( !IsActive(), User::Panic( KNotifyPanic, 1 ));
00067 iRequestNotify = EFalse;
00068
00069
00070 iTelephony->GetCallWaitingStatus(iStatus, iCallWaitingStatusV1Pckg);
00071 SetActive();
00072 }
00073
00080 CCallWaitingStatus::CCallWaitingStatus(MExecAsync* aController)
00081 : CISVAPIAsync(aController, KCallWaitingStatus),
00082 iCallWaitingStatusV1Pckg(iCallWaitingStatusV1)
00083 {
00084
00085 }
00086
00090 void CCallWaitingStatus::ConstructL()
00091 {
00092
00093 }
00094
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 ExampleComplete();
00115 break;
00116 case CTelephony::ENotActive:
00117 case CTelephony::ENotProvisioned:
00118 case CTelephony::ENotAvailable:
00119 case CTelephony::EUnknown:
00120 ExampleNotify();
00121 break;
00122 }
00123 }
00124 }
00125
00129 void CCallWaitingStatus::DoCancel()
00130 {
00131
00132 iTelephony->CancelAsync(CTelephony::EGetCallWaitingStatusCancel);
00133 }
00134