mmserv/tms/tmsserver/src/tmsdtmfprovider.cpp
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/mmserv/tms/tmsserver/src/tmsdtmfprovider.cpp	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: Telephony Multimedia Service
- *
- */
-
-#include <etelmm.h>
-#include <rmmcustomapi.h>
-#include "tmsdtmfprovider.h"
-#include "tmsdtmfobserver.h"
-#include "tmsutility.h"
-#include "tmseteldtmfmonitor.h"
-#include "tmseteldtmfstopmonitor.h"
-
-using namespace TMS;
-
-TMSDTMFProvider* TMSDTMFProvider::NewL()
-    {
-    TRACE_PRN_FN_ENT;
-    TMSDTMFProvider* self = new (ELeave) TMSDTMFProvider();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    TRACE_PRN_FN_EXT;
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor of the object.
-// -----------------------------------------------------------------------------
-//
-TMSDTMFProvider::~TMSDTMFProvider()
-    {
-    TRACE_PRN_FN_ENT;
-    Cancel();
-    iObservers.Close();
-    delete iMonitor;
-    delete iStopMonitor;
-
-    iMmCustom.Close();
-    iPhone.Close();
-    iServer.UnloadPhoneModule(iTsyname);
-    iServer.Close();
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructs the requester.
-// -----------------------------------------------------------------------------
-//
-TMSDTMFProvider::TMSDTMFProvider() :
-    CActive(EPriorityStandard)
-    {
-    TRACE_PRN_FN_ENT;
-    CActiveScheduler::Add(this);
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructs the requester in the second phase.
-// -----------------------------------------------------------------------------
-//
-void TMSDTMFProvider::ConstructL()
-    {
-    TRACE_PRN_FN_ENT;
-
-    User::LeaveIfError(iServer.Connect());
-
-    TRACE_PRN_N(_L("**TMS ETel iServer.Connect"));
-
-    User::LeaveIfError(iServer.GetTsyName(0, iTsyname));
-
-    //Load in the phone device driver
-    User::LeaveIfError(iServer.LoadPhoneModule(iTsyname));
-
-    TRACE_PRN_N(_L("**TMS ETel iServer.LoadPhoneModule"));
-
-    //Find the number of phones available from the tel server
-    gint numberPhones;
-    User::LeaveIfError(iServer.EnumeratePhones(numberPhones));
-
-    TRACE_PRN_N(_L("**TMS ETel iServer.EnumeratePhones"));
-
-    //Check there are available phones
-    if (numberPhones < 1)
-        {
-        User::Leave(KErrNotFound);
-        }
-
-    //Get info about the first available phone
-    RTelServer::TPhoneInfo info;
-    User::LeaveIfError(iServer.GetPhoneInfo(0, info));
-
-    TRACE_PRN_N(_L("**TMS ETel iServer.GetPhoneInfo"));
-
-    CleanupClosePushL(iPhone);
-    User::LeaveIfError(iPhone.Open(iServer, info.iName));
-
-    TRACE_PRN_N(_L("**TMS ETel iPhone.Open"));
-
-    RMobilePhone::TLineInfo lineInfo;
-    User::LeaveIfError(iPhone.GetLineInfo(0, lineInfo));
-
-    TRACE_PRN_N(_L("**TMS ETel iPhone.GetLineInfo"));
-
-    gint errorCode = iMmCustom.Open(iPhone);
-
-    if (!iPhone.SubSessionHandle() || !iMmCustom.SubSessionHandle())
-        {
-        User::Leave(KErrArgument);
-        }
-    iMonitor = TMSEtelDtmfMonitor::NewL(*this, iMmCustom);
-    iMonitor->StartMonitoring();
-    iStopMonitor = TMSEtelDtmfStopMonitor::NewL(*this, iPhone);
-    // iStopMonitor->StartMonitoring();
-
-    CleanupStack::Pop(1);//phone
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// Notifies observers about a DTMF event
-// -----------------------------------------------------------------------------
-//
-void TMSDTMFProvider::NotifyDTMFEvent(
-        const TMSDTMFObserver::TCCPDtmfEvent aEvent, const gint aError,
-        const TChar aTone)
-    {
-    TRACE_PRN_FN_ENT;
-    for (gint i = 0; i < iObservers.Count(); i++)
-        {
-        TMSDTMFObserver* obs = iObservers[i];
-        if (obs)
-            {
-            iObservers[i]->HandleDTMFEvent(aEvent, aError, aTone);
-            }
-        }
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// Cancel DTMF string sending
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::CancelDtmfStringSending()
-    {
-    TRACE_PRN_FN_ENT;
-    gint ret(KErrAlreadyExists);
-    if (IsActive())
-        {
-        Cancel();
-        ret = KErrNone;
-        }
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// Starts DTMF string sending
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::StartDtmfTone(const TChar aTone)
-    {
-    TRACE_PRN_FN_ENT;
-    gint ret(KErrAlreadyExists);
-    if (!IsActive())
-        {
-        ret = iPhone.StartDTMFTone(aTone);
-        }
-    TRACE_PRN_IF_ERR(ret);
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// Stop DTMF tone
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::StopDtmfTone()
-    {
-    TRACE_PRN_FN_ENT;
-    gint ret(KErrAlreadyExists);
-    if (!IsActive())
-        {
-        ret = iPhone.StopDTMFTone();
-        }
-    TRACE_PRN_IF_ERR(ret);
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// Send DTMF string
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::SendDtmfToneString(const TDesC& aString)
-    {
-    TRACE_PRN_FN_ENT;
-    gint ret = KErrInUse;
-    if (!IsActive())
-        {
-        iStatus = KRequestPending;
-        iPhone.SendDTMFTones(iStatus, aString);
-        SetActive();
-        ret = KErrNone;
-        }
-    TRACE_PRN_IF_ERR(ret);
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// Continue DTMF string sending
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::ContinueDtmfStringSending(const gboolean aContinue)
-    {
-    TRACE_PRN_FN_ENT;
-    gint status = iPhone.ContinueDTMFStringSending(aContinue);
-    TRACE_PRN_FN_EXT;
-    return status;
-    }
-
-// -----------------------------------------------------------------------------
-// Adds observer.
-// -----------------------------------------------------------------------------
-//
-void TMSDTMFProvider::AddObserver(const TMSDTMFObserver& aObserver)
-    {
-    TRACE_PRN_FN_ENT;
-    if (iObservers.Find(&aObserver) == KErrNotFound)
-        {
-        iObservers.Append(&aObserver);
-        }
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// Removes given observer.
-// -----------------------------------------------------------------------------
-//
-gint TMSDTMFProvider::RemoveObserver(const TMSDTMFObserver& aObserver)
-    {
-    TRACE_PRN_FN_ENT;
-    gint ret = KErrNotFound;
-    gint found = iObservers.Find(&aObserver);
-    if (found != KErrNotFound)
-        {
-        iObservers.Remove(found);
-        ret = KErrNone;
-        }
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// From CActive.
-// Handles request completion.
-// -----------------------------------------------------------------------------
-//
-void TMSDTMFProvider::RunL()
-    {
-    TRACE_PRN_FN_ENT;
-    if (iStatus == KErrNone)
-        {
-        TMSDTMFObserver::TCCPDtmfEvent event =
-                TMSDTMFObserver::ECCPDtmfStringSendingCompleted;
-        NotifyDTMFEvent(event, KErrNone, NULL);
-        }
-    else
-        {
-        gint error = iStatus.Int();
-        if (error != KErrCancel)
-            {
-            TMSDTMFObserver::TCCPDtmfEvent event =
-                    TMSDTMFObserver::ECCPDtmfStringSendingCompleted;
-            NotifyDTMFEvent(event, error, NULL);
-            TRACE_PRN_IF_ERR(error);
-            }
-        // Cancel is not notified
-        }
-    TRACE_PRN_FN_EXT;
-    }
-
-// -----------------------------------------------------------------------------
-// From CActive
-// Canceling functionality.
-// -----------------------------------------------------------------------------
-//
-void TMSDTMFProvider::DoCancel()
-    {
-    TRACE_PRN_FN_ENT;
-    iPhone.CancelAsyncRequest(EMobilePhoneSendDTMFTones);
-    TRACE_PRN_FN_EXT;
-    }
-