--- a/telephonyutils/etel3rdpartyapi/inc/TelephonyFunctions.h Mon May 03 13:37:20 2010 +0300
+++ b/telephonyutils/etel3rdpartyapi/inc/TelephonyFunctions.h Thu May 06 15:10:38 2010 +0100
@@ -1,360 +1,360 @@
-/*
-* Copyright (c) 2009 Sony Ericsson Mobile Communications AB
-* 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:
-* Sony Ericsson Mobile Communications AB - initial contribution.
-* Nokia Corporation - additional changes.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-#ifndef TELEPHONYFUNCTIONS_H__
-#define TELEPHONYFUNCTIONS_H__
-
-/** @file
- * Definition of CTelephonyFunctions class. Used by CTelephony class.
- */
-
-#include <e32base.h>
-#include <etel.h>
-#include <etelmm.h>
-#include <e32property.h>
-
-#include <sacls.h>
-
-#include "Etel3rdParty.h"
-
-#include <commsdattypesv1_1.h>
-
-const TInt KTelephonyDllUidValue = 0x1000AA4F; ///< Unique to this Dll
-const TUid KTelephonyDllUid={KTelephonyDllUidValue}; ///< Unique to this Dll
-_LIT(KTelephonyCategory, "Telephony");
-
-class CGetPhoneIdAct;
-class CGetSubscriberIdAct;
-class CGetIndicatorAct;
-class CGetBatteryInfoAct;
-class CGetSignalStrengthAct;
-class CGetIccLockInfoAct;
-class CSendDTMFTonesAct;
-class CFlightModeChangeAct;
-class CNotifyIndicatorAct;
-class CNotifyBatteryInfoAct;
-class CNotifySignalStrengthAct;
-class CNotifyIccLockInfoAct;
-class CGetSupplementaryServiceStatusAct;
-class CGetIdentityServiceStatusAct;
-class CNotifyLineStatusAct;
-class CDialNewCallAct;
-class CGetCallDynamicCapsAct;
-class CHoldAct;
-class CResumeAct;
-class CSwapAct;
-class CHangupAct;
-class CAnswerIncomingCallAct;
-class CNotifyCallStatusAct;
-class CNotifyRemotePartyInfoAct;
-class CGetNetworkRegistrationStatusAct;
-class CGetCurrentNetworkInfoAct;
-class CGetCurrentNetworkNameAct;
-class CGetOperatorNameAct;
-class CNotifyNetworkRegistrationStatusAct;
-class CNotifyCurrentNetworkInfoAct;
-class CNotifyIncomingCallAct;
-
-class CTelephonyFunctions : public CBase
-/**
-Class which uses Etel.DLL on behalf of CTelephony objects.
-*/
- {
-
-public:
- enum TState ///< State of the CTelephonyFunctions object
- {
- EIdle,
- EDialling,
- EAnswering,
- EEstablishingDataChannel,
- EDataChannelInUse,
- ECleaningUp
- };
-
-
- enum TOperations ///< Operations of the CTelephonyFunctions object
- {
- EGetPhoneId, // 0
- EGetSubscriberId,
- EGetFlightMode,
- EGetIndicator,
- EGetBatteryInfo,
- EGetSignalStrength, // 5
- EGetIccLockInfo,
- ESendDTMFTones,
- EDialNewCall,
- EGetCallDynamicCaps,
- EGetCallStatus, // 10
- EHold,
- EResume,
- ESwap,
- EHangup,
- EAnswerIncomingCall, // 15
- ENotifyIncomingCall,
- EGetNetworkRegistrationStatus,
- EGetCurrentNetworkInfo,
- EGetCurrentNetworkName,
- EGetOperatorName, // 20
- EGetCFSupplServicesStatus,
- EGetCBSupplServicesStatus,
- EGetCWSupplServicesStatus,
- EGetIdentityServiceStatus,
-
- EFlightModeChange, // 25
- ENotifyIndicator,
- ENotifyBatteryInfo,
- ENotifySignalStrength,
- ENotifyPin1LockInfo,
- ENotifyPin2LockInfo, // 30
- ENotifyNetworkRegistrationStatus,
- ENotifyCurrentNetworkInfo,
- ENotifyOwnedCall1Status,
- ENotifyOwnedCall2Status,
- ENotifyOwnedCall1RemoteInfo, // 35
- ENotifyOwnedCall2RemoteInfo,
- ENotifyVoiceLineStatus,
-
- EMaxNumberOperations
- };
-
- enum TCallPoolOperation
- {
- EUnset,
- EAnswer,
- EDial
- };
-
- #define KErrTelephonyOutOfSequence (-1)
-
- #define KNoMultimodeTsy (-1)
-
- // Constructors
- static CTelephonyFunctions* NewLC();
- static CTelephonyFunctions* NewL();
-
- // Destructor - virtual and class not intended
- // for derivation, so not exported
- ~CTelephonyFunctions();
-
- // Phone Functionality
- TInt GetPhoneIdL(TRequestStatus& aReqStatus, TDes8& aId);
- TInt GetSubscriberIdL(TRequestStatus& aReqStatus, TDes8& aId);
- TInt GetFlightMode(TRequestStatus& aReqStatus, TDes8& aMode);
- TInt GetIndicatorL(TRequestStatus& aReqStatus, TDes8& aIndicator);
- TInt GetBatteryInfoL(TRequestStatus& aReqStatus, TDes8& aBatteryInfo);
- TInt GetSignalStrengthL(TRequestStatus& aReqStatus, TDes8& aSignalStrength);
- TInt GetLockInfoL(TRequestStatus& aReqStatus, const CTelephony::TIccLock& aLock, TDes8& aLockInfo);
- TInt SendDTMFTonesL(TRequestStatus& aReqStatus, const TDesC& aTones);
- TInt GetLineStatus(const CTelephony::TPhoneLine& aLine, TDes8& aStatus);
- TInt GetCallInfoL(TDes8& aCallSelect, TDes8& aCallInfo, TDes8& aRemoteInfo);
- TInt DialNewCallL(TRequestStatus& aStatus, TDes8& aCallParams,
- const CTelephony::TTelNumber& aTelNumber, CTelephony::TCallId& aCallId, const CTelephony::TPhoneLine aLine = CTelephony::EVoiceLine);
- TInt GetCallDynamicCaps(const CTelephony::TCallId& aCallId, TDes8& aCallCaps);
- TInt GetCallStatusL(const CTelephony::TCallId& aCallId, TDes8& aCallStatus);
- TInt HoldL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
- TInt ResumeL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
- TInt SwapL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId1,
- const CTelephony::TCallId& aCallId2);
- TInt HangupL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
- TInt AnswerIncomingCallL(TRequestStatus& aReqStatus, CTelephony::TCallId& aCallId,
- const CTelephony::TPhoneLine aLine=CTelephony::EVoiceLine);
- // Network Functionality
- TInt GetNetworkRegistrationStatusL(TRequestStatus& aReqStatus, TDes8& aStatus);
- TInt GetCurrentNetworkInfoL(TRequestStatus& aReqStatus, TDes8& aNetworkInfo);
- TInt GetCurrentNetworkNameL(TRequestStatus& aReqStatus, TDes8& aNetworkName);
- TInt GetOperatorNameL(TRequestStatus& aReqStatus, TDes8& aOperator);
- // (Basic) Supplementary Services Functionality
- TInt GetCFSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallForwardingCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
- TInt GetCBSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallBarringCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
- TInt GetCWSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
- TInt GetIdentityServiceStatusL(TRequestStatus& aReqStatus,
- const CTelephony::TIdentityService& aService, TDes8& aStatus);
- // Cancel Request Functionality
- TInt CancelAsync(CTelephony::TCancellationRequest aCancel);
- // Notification Functionality
- TInt NotifyChangeL(TRequestStatus& aReqStatus, const CTelephony::TNotificationEvent& aEvent, TDes8& aDes);
- void ResetPendingNotifyRequest(CTelephony::TNotificationEvent aEvent);
- void CompleteRequest(TOperations aOPeration, TInt aCompleteCode);
-
- // Deprecated functions
-
- void CleanUp(); // Close/Free outstanding "Open" objects etc.
- inline TRequestStatus** RequestStatus();
- inline RMobileCall* Call();
- inline RMobileCall* Call(const CTelephony::TCallId aCallId);
- inline RMobileLine* Line(const CTelephony::TPhoneLine aLine);
- inline RMobilePhone* Phone();
- inline RProperty* PhonePowerProperty();
- TInt GetISVCall(CTelephony::TCallId& aCallId);
- void CloseAndReset(const CTelephony::TCallId aCallId);
-
- static void CopyTelAddress(const RMobilePhone::TMobileAddress& aFromAddress, CTelephony::TTelAddress& aToAddress);
- static void GetCallStatus(const RMobileCall::TMobileCallStatus aMMCallStatus, CTelephony::TCallStatus& aTelCallStatus);
-
- inline void SetAsyncRequestOutstandingFalse();
- inline TRequestStatus** GetRequestStatus(CTelephonyFunctions::TOperations aOp);
- inline TBool IsRequestPending(CTelephonyFunctions::TOperations aOp);
- inline void SetRequestPending(CTelephonyFunctions::TOperations aOp, TBool aBool);
-
-private:
- CTelephonyFunctions();
- void ConstructL();
- void GetCommDbTSYnameL(TDes& aTableName); // get TSY name from CommDb
- void InitialisePhoneL();
- TBool IsFlightModeOn();
- TInt NotifyFlightModeL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyOwnedCall1RemotePartyInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyOwnedCall2RemotePartyInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyVoiceLineStatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyOwnedCall1StatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyOwnedCall2StatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyIndicatorL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyPinLockInfoL(TRequestStatus& aRequestStatus, const CTelephony::TNotificationEvent& aEvent, TDes8& aDes);
- TInt NotifyBatteryInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifySignalStrengthL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyNetworkRegistrationStatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
- TInt NotifyCurrentNetworkInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
-
-private:
- RTelServer iTelServer;
- RMobilePhone iPhone;
- RMobileLine iLineData;
- RMobileLine iLineFax;
- RMobileLine iLineVoice;
- TName iLineVoiceName;
- TName iCallName;
- RProperty iPhonePowerProperty;
- //TSAPhoneStatus iFlightMode;
- TInt iTsyVersion;
-
- // Active Objects
- CGetPhoneIdAct* iGetPhoneId;
- CGetSubscriberIdAct* iGetSubscriberId;
- CGetIndicatorAct* iGetIndicator;
- CGetBatteryInfoAct* iGetBatteryInfo;
- CGetSignalStrengthAct* iGetSignalStrength;
- CGetIccLockInfoAct* iGetIccLockInfo;
- CSendDTMFTonesAct* iSendDTMFTones;
- CDialNewCallAct* iDialNewCall;
- CHoldAct* iHold;
- CResumeAct* iResume;
- CSwapAct* iSwap;
- CHangupAct* iHangup;
- CAnswerIncomingCallAct* iAnswerIncomingCall;
-
- CFlightModeChangeAct* iFlightModeChange;
- CNotifyIndicatorAct* iNotifyIndicator;
- CNotifyBatteryInfoAct* iNotifyBatteryInfo;
- CNotifySignalStrengthAct* iNotifySignalStrength;
- CNotifyIccLockInfoAct* iNotifyIccLockInfo;
- CNotifyNetworkRegistrationStatusAct* iNotifyNetworkRegStatus;
- CNotifyCurrentNetworkInfoAct* iNotifyCurrentNetworkInfo;
- CNotifyCallStatusAct* iNotifyOwnedCall1Status;
- CNotifyCallStatusAct* iNotifyOwnedCall2Status;
- CNotifyRemotePartyInfoAct* iNotifyOwnedCall1RemoteInfo;
- CNotifyRemotePartyInfoAct* iNotifyOwnedCall2RemoteInfo;
-
- // Internal Active Objects
- CNotifyLineStatusAct* iInternalNotifyVoiceLineStatus;
- CNotifyIncomingCallAct* iInternalNotifyIncomingCall;
-
- // Network Functionality
- CGetNetworkRegistrationStatusAct* iGetNetworkRegistrationStatus;
- CGetCurrentNetworkInfoAct* iGetCurrentNetworkInfo;
- CGetCurrentNetworkNameAct* iGetCurrentNetworkName;
- CGetOperatorNameAct* iGetOperatorName;
-
- // (Basic) Supplementary Services Functionality
- CGetSupplementaryServiceStatusAct* iGetCFSupplementaryServiceStatus;
- CGetSupplementaryServiceStatusAct* iGetCWSupplementaryServiceStatus;
- CGetSupplementaryServiceStatusAct* iGetCBSupplementaryServiceStatus;
- CGetIdentityServiceStatusAct* iGetIdentityServiceStatus;
-
- TRequestStatus* iRequestStatus;
- RMobileCall iCall;
- RMobileCall iIncomingCall;
-
- TState iState;
- TBool iTelServerIsOpen; ///< so destructor can Close() if necc.
- TBool iPhoneIsOpen; ///< so destructor/CleanUp() can Close() if necc.
- TBool iLineIsVoiceOpen; ///< so destructor/CleanUp() can Close() if necc.
- TBool iLineIsDataOpen; ///< so destructor/CleanUp() can Close() if necc.
- TBool iLineIsFaxOpen; ///< so destructor/CleanUp() can Close() if necc.
- TBool iAsyncRequestOutstanding; ///< ETrue if async call in progress.
- TBool iCallIsOpen; ///< so destructor/CleanUp() can Close() if necc.
-
- RPointerArray<TRequestStatus> iReqStatusTable;
- RArray<TBool> iReqPendingTable;
- RArray<RMobileCall> iCallPool;
- RArray<TCallPoolOperation> iCallPoolStatus;
- }; // class CTelephonyFunctions
-
-class CAsyncRequestBaseAct : public CActive
- {
-
-public:
- ~CAsyncRequestBaseAct();
- CAsyncRequestBaseAct();
-protected:
- void RunL(); // from CActive
- virtual void Complete() = 0;
- };
-
-/**
-Interface implemented by classes which want to be notified when an
-event completes. These objects should register themselves with the
-relevant active object that handles the event in question using
-the RegisterObserver() function.
-The AO will call EventCompleted() when it completes.
-DeregisterObserver() can be called when the object no longer
-wishes to be notified.
-
-@see MIncomingCallNameSubject
-*/
-class MEventObserver
- {
-public:
- virtual void EventCompleted() = 0;
- };
-
-/**
-Interface implemented by the CNotifyIncomingCallAct AO
-to allow other objects register themselves to be notified of
-when an incoming call arrives, obtain the call name and reset
-it when there is no longer an incoming call.
-
-Two AOs currently make use of the methods in this interface:
-CNotifyLineStatusAct resets the call name when the line
-is no longer ringing and CAnswerIncomingCallAct retrieves the
-call name when there is an incoming call so that the call can be
-opened.
-*/
-class MIncomingCallNameSubject
- {
-public:
- virtual void RegisterObserver(MEventObserver* aObserver) = 0;
- virtual void DeregisterObserver(MEventObserver* aObserver) = 0;
- virtual void ResetCallName() = 0;
- virtual TInt CallName(TName&) const = 0;
- };
-
-#include "TelephonyFunctions.inl"
-
-#endif // TELEPHONYFUNCTIONS_H__
+/*
+* Copyright (c) 2009 Sony Ericsson Mobile Communications AB
+* 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:
+* Sony Ericsson Mobile Communications AB - initial contribution.
+* Nokia Corporation - additional changes.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef TELEPHONYFUNCTIONS_H__
+#define TELEPHONYFUNCTIONS_H__
+
+/** @file
+ * Definition of CTelephonyFunctions class. Used by CTelephony class.
+ */
+
+#include <e32base.h>
+#include <etel.h>
+#include <etelmm.h>
+#include <e32property.h>
+
+#include <sacls.h>
+
+#include "Etel3rdParty.h"
+
+#include <commsdattypesv1_1.h>
+
+const TInt KTelephonyDllUidValue = 0x1000AA4F; ///< Unique to this Dll
+const TUid KTelephonyDllUid={KTelephonyDllUidValue}; ///< Unique to this Dll
+_LIT(KTelephonyCategory, "Telephony");
+
+class CGetPhoneIdAct;
+class CGetSubscriberIdAct;
+class CGetIndicatorAct;
+class CGetBatteryInfoAct;
+class CGetSignalStrengthAct;
+class CGetIccLockInfoAct;
+class CSendDTMFTonesAct;
+class CFlightModeChangeAct;
+class CNotifyIndicatorAct;
+class CNotifyBatteryInfoAct;
+class CNotifySignalStrengthAct;
+class CNotifyIccLockInfoAct;
+class CGetSupplementaryServiceStatusAct;
+class CGetIdentityServiceStatusAct;
+class CNotifyLineStatusAct;
+class CDialNewCallAct;
+class CGetCallDynamicCapsAct;
+class CHoldAct;
+class CResumeAct;
+class CSwapAct;
+class CHangupAct;
+class CAnswerIncomingCallAct;
+class CNotifyCallStatusAct;
+class CNotifyRemotePartyInfoAct;
+class CGetNetworkRegistrationStatusAct;
+class CGetCurrentNetworkInfoAct;
+class CGetCurrentNetworkNameAct;
+class CGetOperatorNameAct;
+class CNotifyNetworkRegistrationStatusAct;
+class CNotifyCurrentNetworkInfoAct;
+class CNotifyIncomingCallAct;
+
+class CTelephonyFunctions : public CBase
+/**
+Class which uses Etel.DLL on behalf of CTelephony objects.
+*/
+ {
+
+public:
+ enum TState ///< State of the CTelephonyFunctions object
+ {
+ EIdle,
+ EDialling,
+ EAnswering,
+ EEstablishingDataChannel,
+ EDataChannelInUse,
+ ECleaningUp
+ };
+
+
+ enum TOperations ///< Operations of the CTelephonyFunctions object
+ {
+ EGetPhoneId, // 0
+ EGetSubscriberId,
+ EGetFlightMode,
+ EGetIndicator,
+ EGetBatteryInfo,
+ EGetSignalStrength, // 5
+ EGetIccLockInfo,
+ ESendDTMFTones,
+ EDialNewCall,
+ EGetCallDynamicCaps,
+ EGetCallStatus, // 10
+ EHold,
+ EResume,
+ ESwap,
+ EHangup,
+ EAnswerIncomingCall, // 15
+ ENotifyIncomingCall,
+ EGetNetworkRegistrationStatus,
+ EGetCurrentNetworkInfo,
+ EGetCurrentNetworkName,
+ EGetOperatorName, // 20
+ EGetCFSupplServicesStatus,
+ EGetCBSupplServicesStatus,
+ EGetCWSupplServicesStatus,
+ EGetIdentityServiceStatus,
+
+ EFlightModeChange, // 25
+ ENotifyIndicator,
+ ENotifyBatteryInfo,
+ ENotifySignalStrength,
+ ENotifyPin1LockInfo,
+ ENotifyPin2LockInfo, // 30
+ ENotifyNetworkRegistrationStatus,
+ ENotifyCurrentNetworkInfo,
+ ENotifyOwnedCall1Status,
+ ENotifyOwnedCall2Status,
+ ENotifyOwnedCall1RemoteInfo, // 35
+ ENotifyOwnedCall2RemoteInfo,
+ ENotifyVoiceLineStatus,
+
+ EMaxNumberOperations
+ };
+
+ enum TCallPoolOperation
+ {
+ EUnset,
+ EAnswer,
+ EDial
+ };
+
+ #define KErrTelephonyOutOfSequence (-1)
+
+ #define KNoMultimodeTsy (-1)
+
+ // Constructors
+ static CTelephonyFunctions* NewLC();
+ static CTelephonyFunctions* NewL();
+
+ // Destructor - virtual and class not intended
+ // for derivation, so not exported
+ ~CTelephonyFunctions();
+
+ // Phone Functionality
+ TInt GetPhoneIdL(TRequestStatus& aReqStatus, TDes8& aId);
+ TInt GetSubscriberIdL(TRequestStatus& aReqStatus, TDes8& aId);
+ TInt GetFlightMode(TRequestStatus& aReqStatus, TDes8& aMode);
+ TInt GetIndicatorL(TRequestStatus& aReqStatus, TDes8& aIndicator);
+ TInt GetBatteryInfoL(TRequestStatus& aReqStatus, TDes8& aBatteryInfo);
+ TInt GetSignalStrengthL(TRequestStatus& aReqStatus, TDes8& aSignalStrength);
+ TInt GetLockInfoL(TRequestStatus& aReqStatus, const CTelephony::TIccLock& aLock, TDes8& aLockInfo);
+ TInt SendDTMFTonesL(TRequestStatus& aReqStatus, const TDesC& aTones);
+ TInt GetLineStatus(const CTelephony::TPhoneLine& aLine, TDes8& aStatus);
+ TInt GetCallInfoL(TDes8& aCallSelect, TDes8& aCallInfo, TDes8& aRemoteInfo);
+ TInt DialNewCallL(TRequestStatus& aStatus, TDes8& aCallParams,
+ const CTelephony::TTelNumber& aTelNumber, CTelephony::TCallId& aCallId, const CTelephony::TPhoneLine aLine = CTelephony::EVoiceLine);
+ TInt GetCallDynamicCaps(const CTelephony::TCallId& aCallId, TDes8& aCallCaps);
+ TInt GetCallStatusL(const CTelephony::TCallId& aCallId, TDes8& aCallStatus);
+ TInt HoldL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
+ TInt ResumeL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
+ TInt SwapL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId1,
+ const CTelephony::TCallId& aCallId2);
+ TInt HangupL(TRequestStatus& aReqStatus, const CTelephony::TCallId& aCallId);
+ TInt AnswerIncomingCallL(TRequestStatus& aReqStatus, CTelephony::TCallId& aCallId,
+ const CTelephony::TPhoneLine aLine=CTelephony::EVoiceLine);
+ // Network Functionality
+ TInt GetNetworkRegistrationStatusL(TRequestStatus& aReqStatus, TDes8& aStatus);
+ TInt GetCurrentNetworkInfoL(TRequestStatus& aReqStatus, TDes8& aNetworkInfo);
+ TInt GetCurrentNetworkNameL(TRequestStatus& aReqStatus, TDes8& aNetworkName);
+ TInt GetOperatorNameL(TRequestStatus& aReqStatus, TDes8& aOperator);
+ // (Basic) Supplementary Services Functionality
+ TInt GetCFSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallForwardingCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
+ TInt GetCBSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, const CTelephony::TCallBarringCondition aCondition, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
+ TInt GetCWSupplementaryServiceStatusL(TRequestStatus& aRequestStatus, TDes8& aDes, const CTelephony::TServiceGroup aServiceGroup);
+ TInt GetIdentityServiceStatusL(TRequestStatus& aReqStatus,
+ const CTelephony::TIdentityService& aService, TDes8& aStatus);
+ // Cancel Request Functionality
+ TInt CancelAsync(CTelephony::TCancellationRequest aCancel);
+ // Notification Functionality
+ TInt NotifyChangeL(TRequestStatus& aReqStatus, const CTelephony::TNotificationEvent& aEvent, TDes8& aDes);
+ void ResetPendingNotifyRequest(CTelephony::TNotificationEvent aEvent);
+ void CompleteRequest(TOperations aOPeration, TInt aCompleteCode);
+
+ // Deprecated functions
+
+ void CleanUp(); // Close/Free outstanding "Open" objects etc.
+ inline TRequestStatus** RequestStatus();
+ inline RMobileCall* Call();
+ inline RMobileCall* Call(const CTelephony::TCallId aCallId);
+ inline RMobileLine* Line(const CTelephony::TPhoneLine aLine);
+ inline RMobilePhone* Phone();
+ inline RProperty* PhonePowerProperty();
+ TInt GetISVCall(CTelephony::TCallId& aCallId);
+ void CloseAndReset(const CTelephony::TCallId aCallId);
+
+ static void CopyTelAddress(const RMobilePhone::TMobileAddress& aFromAddress, CTelephony::TTelAddress& aToAddress);
+ static void GetCallStatus(const RMobileCall::TMobileCallStatus aMMCallStatus, CTelephony::TCallStatus& aTelCallStatus);
+
+ inline void SetAsyncRequestOutstandingFalse();
+ inline TRequestStatus** GetRequestStatus(CTelephonyFunctions::TOperations aOp);
+ inline TBool IsRequestPending(CTelephonyFunctions::TOperations aOp);
+ inline void SetRequestPending(CTelephonyFunctions::TOperations aOp, TBool aBool);
+
+private:
+ CTelephonyFunctions();
+ void ConstructL();
+ void GetCommDbTSYnameL(TDes& aTableName); // get TSY name from CommDb
+ void InitialisePhoneL();
+ TBool IsFlightModeOn();
+ TInt NotifyFlightModeL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyOwnedCall1RemotePartyInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyOwnedCall2RemotePartyInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyVoiceLineStatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyOwnedCall1StatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyOwnedCall2StatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyIndicatorL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyPinLockInfoL(TRequestStatus& aRequestStatus, const CTelephony::TNotificationEvent& aEvent, TDes8& aDes);
+ TInt NotifyBatteryInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifySignalStrengthL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyNetworkRegistrationStatusL(TRequestStatus& aRequestStatus, TDes8& aDes);
+ TInt NotifyCurrentNetworkInfoL(TRequestStatus& aRequestStatus, TDes8& aDes);
+
+private:
+ RTelServer iTelServer;
+ RMobilePhone iPhone;
+ RMobileLine iLineData;
+ RMobileLine iLineFax;
+ RMobileLine iLineVoice;
+ TName iLineVoiceName;
+ TName iCallName;
+ RProperty iPhonePowerProperty;
+ //TSAPhoneStatus iFlightMode;
+ TInt iTsyVersion;
+
+ // Active Objects
+ CGetPhoneIdAct* iGetPhoneId;
+ CGetSubscriberIdAct* iGetSubscriberId;
+ CGetIndicatorAct* iGetIndicator;
+ CGetBatteryInfoAct* iGetBatteryInfo;
+ CGetSignalStrengthAct* iGetSignalStrength;
+ CGetIccLockInfoAct* iGetIccLockInfo;
+ CSendDTMFTonesAct* iSendDTMFTones;
+ CDialNewCallAct* iDialNewCall;
+ CHoldAct* iHold;
+ CResumeAct* iResume;
+ CSwapAct* iSwap;
+ CHangupAct* iHangup;
+ CAnswerIncomingCallAct* iAnswerIncomingCall;
+
+ CFlightModeChangeAct* iFlightModeChange;
+ CNotifyIndicatorAct* iNotifyIndicator;
+ CNotifyBatteryInfoAct* iNotifyBatteryInfo;
+ CNotifySignalStrengthAct* iNotifySignalStrength;
+ CNotifyIccLockInfoAct* iNotifyIccLockInfo;
+ CNotifyNetworkRegistrationStatusAct* iNotifyNetworkRegStatus;
+ CNotifyCurrentNetworkInfoAct* iNotifyCurrentNetworkInfo;
+ CNotifyCallStatusAct* iNotifyOwnedCall1Status;
+ CNotifyCallStatusAct* iNotifyOwnedCall2Status;
+ CNotifyRemotePartyInfoAct* iNotifyOwnedCall1RemoteInfo;
+ CNotifyRemotePartyInfoAct* iNotifyOwnedCall2RemoteInfo;
+
+ // Internal Active Objects
+ CNotifyLineStatusAct* iInternalNotifyVoiceLineStatus;
+ CNotifyIncomingCallAct* iInternalNotifyIncomingCall;
+
+ // Network Functionality
+ CGetNetworkRegistrationStatusAct* iGetNetworkRegistrationStatus;
+ CGetCurrentNetworkInfoAct* iGetCurrentNetworkInfo;
+ CGetCurrentNetworkNameAct* iGetCurrentNetworkName;
+ CGetOperatorNameAct* iGetOperatorName;
+
+ // (Basic) Supplementary Services Functionality
+ CGetSupplementaryServiceStatusAct* iGetCFSupplementaryServiceStatus;
+ CGetSupplementaryServiceStatusAct* iGetCWSupplementaryServiceStatus;
+ CGetSupplementaryServiceStatusAct* iGetCBSupplementaryServiceStatus;
+ CGetIdentityServiceStatusAct* iGetIdentityServiceStatus;
+
+ TRequestStatus* iRequestStatus;
+ RMobileCall iCall;
+ RMobileCall iIncomingCall;
+
+ TState iState;
+ TBool iTelServerIsOpen; ///< so destructor can Close() if necc.
+ TBool iPhoneIsOpen; ///< so destructor/CleanUp() can Close() if necc.
+ TBool iLineIsVoiceOpen; ///< so destructor/CleanUp() can Close() if necc.
+ TBool iLineIsDataOpen; ///< so destructor/CleanUp() can Close() if necc.
+ TBool iLineIsFaxOpen; ///< so destructor/CleanUp() can Close() if necc.
+ TBool iAsyncRequestOutstanding; ///< ETrue if async call in progress.
+ TBool iCallIsOpen; ///< so destructor/CleanUp() can Close() if necc.
+
+ RPointerArray<TRequestStatus> iReqStatusTable;
+ RArray<TBool> iReqPendingTable;
+ RArray<RMobileCall> iCallPool;
+ RArray<TCallPoolOperation> iCallPoolStatus;
+ }; // class CTelephonyFunctions
+
+class CAsyncRequestBaseAct : public CActive
+ {
+
+public:
+ ~CAsyncRequestBaseAct();
+ CAsyncRequestBaseAct();
+protected:
+ void RunL(); // from CActive
+ virtual void Complete() = 0;
+ };
+
+/**
+Interface implemented by classes which want to be notified when an
+event completes. These objects should register themselves with the
+relevant active object that handles the event in question using
+the RegisterObserver() function.
+The AO will call EventCompleted() when it completes.
+DeregisterObserver() can be called when the object no longer
+wishes to be notified.
+
+@see MIncomingCallNameSubject
+*/
+class MEventObserver
+ {
+public:
+ virtual void EventCompleted() = 0;
+ };
+
+/**
+Interface implemented by the CNotifyIncomingCallAct AO
+to allow other objects register themselves to be notified of
+when an incoming call arrives, obtain the call name and reset
+it when there is no longer an incoming call.
+
+Two AOs currently make use of the methods in this interface:
+CNotifyLineStatusAct resets the call name when the line
+is no longer ringing and CAnswerIncomingCallAct retrieves the
+call name when there is an incoming call so that the call can be
+opened.
+*/
+class MIncomingCallNameSubject
+ {
+public:
+ virtual void RegisterObserver(MEventObserver* aObserver) = 0;
+ virtual void DeregisterObserver(MEventObserver* aObserver) = 0;
+ virtual void ResetCallName() = 0;
+ virtual TInt CallName(TName&) const = 0;
+ };
+
+#include "TelephonyFunctions.inl"
+
+#endif // TELEPHONYFUNCTIONS_H__