00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "CSendDTMF.h"
00018
00026 CSendDTMF* CSendDTMF::NewL(MExecAsync* aController)
00027 {
00028 CSendDTMF* self = new(ELeave) CSendDTMF(aController);
00029 CleanupStack::PushL(self);
00030 self->ConstructL();
00031 CleanupStack::Pop(self);
00032 return self;
00033 }
00034
00038 CSendDTMF::~CSendDTMF()
00039 {
00040 Cancel();
00041 }
00042
00048 void CSendDTMF::DoStartRequestL(const TDesC& aNumber)
00049 {
00050 if (aNumber.Length() == 1)
00051 {
00052 iSingleTone = ETrue;
00053 }
00054 else
00055 {
00056 iSingleTone = EFalse;
00057 }
00058
00059
00060 iTelephony->SendDTMFTones(iStatus, aNumber);
00061 SetActive();
00062 }
00063
00070 CSendDTMF::CSendDTMF(MExecAsync* aController)
00071 : CISVAPIAsync(aController, KSendDTMF)
00072 {
00073
00074 }
00075
00079 void CSendDTMF::ConstructL()
00080 {
00081 iSingleTone = EFalse;
00082 }
00083
00087 void CSendDTMF::RunL()
00088 {
00089 if(iStatus != KErrNone)
00090 {
00091 iConsole->Printf(KError);
00092
00093
00094 iConsole->Printf(_L("%d\n"), iStatus.Int());
00095 }
00096 else
00097 {
00098 if (iSingleTone)
00099 {
00100 iConsole->Printf(_L("Beep\n"));
00101 ExampleNotify();
00102 }
00103 else
00104 {
00105 iConsole->Printf(_L("Beeps\n"));
00106 ExampleComplete();
00107 }
00108 }
00109 }
00110
00114 void CSendDTMF::DoCancel()
00115 {
00116
00117 iTelephony->CancelAsync(CTelephony::ESendDTMFTonesCancel);
00118 }