--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convergedcallengine/csplugin/inc/cspetelcallwaitingrequester.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2007 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: Fetches call waiting status from ETel
+*
+*/
+
+
+#ifndef CSPETELCALLWAITINGREQUESTER_H
+#define CSPETELCALLWAITINGREQUESTER_H
+
+
+#include <e32base.h>
+#include <mccpcscall.h>
+#include <mccecall.h>
+#include <etelmm.h>
+
+class RMobilePhone;
+class CRetrieveMobilePhoneCWList;
+
+/**
+* Makes asynchronic request to ETel interface according to given request type.
+* Provides canceling via CActive::Cancel().
+*
+*/
+class CSPEtelCallWaitingRequester
+ : public CActive
+ {
+
+ public:
+
+ /**
+ * Constructs the requester via two phase.
+ *
+ * @param aPhone mobile phone reference needed for reading cw setting
+ * @return requester object
+ */
+ static CSPEtelCallWaitingRequester* NewL( RMobilePhone& aPhone );
+
+ /**
+ * C++ default destructor
+ */
+ virtual ~CSPEtelCallWaitingRequester( );
+
+ /**
+ * Makes the request. Note that ERequestTypeDial is made with a
+ * separate MakeDialRequest function.
+ *
+ * @since S60 3.2
+ * @param aRequest type of request
+ * @return ETrue if active, EFalse if not
+ */
+ void GetCallWaitingL( const CCCECallParameters& iParams,
+ TBool& aCallWaitingStatus );
+
+
+
+ protected: // From CActive
+ /**
+ * From CActive
+ * RunL
+ * @since S60 3.2
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ * Cancels the monitor
+ * @since S60 3.2
+ */
+ void DoCancel();
+
+
+ private:
+
+ /**
+ * Requester can be inactive (from boot to first Cw request),
+ * requesting value from network
+ * (with first MT call that gets Queue-request from CCE),
+ * or monitoring (after first request).
+ */
+ enum ECSPCwRequesterMode {
+ ECwRequesterInactive,
+ ECwRequesterGetStarted,
+ ECwRequesterMonitoring
+ };
+
+ private:
+
+ /**
+ * Constructor.
+ * @param aPhone mobile phone reference needed for reading cw setting
+ *
+ */
+ CSPEtelCallWaitingRequester::CSPEtelCallWaitingRequester(RMobilePhone& aPhone);
+
+ /**
+ * Constructs the requester.
+ *
+ * @param aPhone phone reference
+ */
+ void CSPEtelCallWaitingRequester::ConstructL();
+
+ /**
+ * Starts monitoring call waiting setting.
+ */
+ void StartMonitoring();
+
+ /**
+ * Returns the call waiting status from call waiting status list by linetype.
+ */
+ void GetCallWaitingStatusByLineType( const CCCECallParameters& iParams,
+ TBool& aCallWaitingStatus );
+
+
+ private: // data
+
+ /**
+ * List of call waiting settings.
+ * Own.
+ */
+ CRetrieveMobilePhoneCWList* iList;
+
+ /**
+ * Making the asynchronous request synchronous.
+ */
+ CActiveSchedulerWait iWait;
+
+ /**
+ * Phone handle for listening cw status changes.
+ */
+ RMobilePhone& iPhone;
+
+ /**
+ * Cw status descriptor for reading changed cw status.
+ */
+ TPckgBuf<RMobilePhone::TMobilePhoneCWInfoEntryV1> iDesCwStatus;
+
+ /**
+ * Current mode according to the enumeration.
+ */
+ ECSPCwRequesterMode iMode;
+
+ /**
+ * Actual call waiting status for primary line: On/Off = True/False.
+ */
+ TBool iPrimaryLineCwStatus;
+
+ /**
+ * Actual call waiting status for aux line: On/Off = True/False.
+ */
+ TBool iAuxLineCwStatus;
+ };
+
+#endif // CSPETELCALLWAITINGREQUESTER_H