--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/Engine/inc/csatmultimodeapi.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,263 @@
+/*
+* Copyright (c) 2008 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: Encapsule the access to ETel MM API in sat
+*
+*/
+
+
+#ifndef CSATMULTIMODEAPI_H
+#define CSATMULTIMODEAPI_H
+
+#include <e32base.h>
+#include "msatmultimodeapi.h"
+
+class CSatSActiveWrapper;
+
+/**
+ * Encapsule the access to ETel MM API in sat
+ *
+ * This class is an active object. It will submit
+ * Etel asynchronous request and wait for response.
+ * Clients for this class will implement the interface
+ * in MSatETelClient which is the callback function
+ * when CSatMultiModeApi get the ETel request response.
+ *
+ * @lib satengine.lib
+ * @since S60 v5.0
+ */
+class CSatMultiModeApi : public CBase,
+ public MSatMultiModeApi
+ {
+
+public:
+ /**
+ * Two-phased constructor.
+ */
+ static CSatMultiModeApi* NewL();
+
+ /**
+ * Destructor
+ */
+ virtual ~CSatMultiModeApi();
+
+// from base class MSatMultiModeApi
+
+ /**
+ * Gives pointer to active RMobilePhone session
+ *
+ * @return pointer to active RMobilePhone server session
+ */
+ RMobilePhone* Phone();
+
+ /**
+ * Gives reference to active Dummy RMobilePhone session
+ *
+ * @return Reference to active Dummy RMobilePhone server session
+ */
+ RMobilePhone* DummyPhone();
+
+ /**
+ * Gives pointer to active RMmCustomApi session
+ *
+ * @return pointer to active RMmCustomApi server session
+ */
+ RMmCustomAPI* CustomApi();
+
+ /**
+ * Lowers error granularity to basic errors
+ */
+ void LowerErrorGranularity();
+
+ /**
+ * Raises error granularity to extended errors
+ */
+ void RaiseErrorGranularity();
+
+ /**
+ * Access RMobilePhone::GetNetworkRegistrationStatus
+ * for the paramter information please see the etelmm.h
+ */
+ void GetNetworkRegistrationStatus( TRequestStatus& aReqStatus,
+ RMobilePhone::TMobilePhoneRegistrationStatus& aStatus );
+
+ /**
+ * Access RMobilePhone::NotifyNetworkRegistrationStatusChange
+ * for the paramter information please see the etelmm.h
+ */
+ void NotifyNetworkRegistrationStatusChange( TRequestStatus& aReqStatus,
+ RMobilePhone::TMobilePhoneRegistrationStatus& aStatus );
+
+ /**
+ * Access RMobilePhone::NotifyNetworkRegistrationStatusChange
+ * for the paramter information please see the etelmm.h
+ */
+ void GetSubscriberId( TRequestStatus& aReqStatus,
+ RMobilePhone::TMobilePhoneSubscriberId& aId );
+
+ /**
+ * Access RMobilePhone::SendDTMFTones
+ * for the paramter information please see the etelmm.h
+ */
+ void SendDTMFTones( TRequestStatus& aReqStatus, const TDesC& aTones);
+
+ /**
+ * Access RMobilePhone::CancelAsyncRequest
+ * for the paramter information please see the etelmm.h
+ */
+ void CancelAsyncRequest(TInt aReqToCancel);
+
+ /**
+ * Access RMobilePhone::SendNetworkServiceRequestNoFdnCheck
+ * for the paramter information please see the etelmm.h
+ */
+ void SendNetworkServiceRequestNoFdnCheck( TRequestStatus& aReqStatus,
+ const TDesC& aServiceString);
+
+ /**
+ * Access RMobileCall::DialNoFdnCheck
+ * for the paramter information please see the etelmm.h
+ */
+ void DialNoFdnCheck( TRequestStatus& aStatus,
+ const TDesC8& aCallParams,const TDesC& aTelNumber );
+
+ /**
+ * Access RMobileUssdMessaging::SendMessageNoFdnCheck
+ * for the paramter information please see the etelmm.h
+ */
+ void SendMessageNoFdnCheck( TRequestStatus& aReqStatus,
+ const TDesC8& aMsgData, const TDesC8& aMsgAttributes );
+ /**
+ * Access RMobileCall::DialCancel
+ */
+ void DialCancel();
+
+ /**
+ * Access RMobilePhone::GetCurrentActiveUSimApplication
+ */
+ void GetCurrentActiveUSimApplication( TRequestStatus& aReqStatus,
+ RMobilePhone::TAID& aAID );
+
+
+ /**
+ * Check if there is an incoming call
+ * @return ETrue if there is an incoming call
+ */
+ TBool IsCallIncoming();
+private:
+
+ /**
+ * Default C++ constructor
+ */
+ CSatMultiModeApi();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+// New functions
+ /**
+ * Makes the connections to ETel Server
+ */
+ void ConnectETelServerL();
+
+ /**
+ * Loads and opens phone module
+ *
+ * @param aPhone reference to phone that is loaded
+ * @param aModuleName Name of the phone module
+ * @param aPhoneName Name of the phone
+ */
+ void LoadPhoneModuleL( RMobilePhone& aPhone, const TDesC& aModuleName,
+ const TDesC& aPhoneName );
+
+ /**
+ * Open the RMobileCall
+ */
+ void LoadMobileCallL();
+
+ /**
+ * Open the RMobileUssdMessaging
+ */
+ void LoadUssdMessagingL();
+
+
+private: // data
+
+ /**
+ * The Etel server.
+ * Own
+ */
+ RTelServer iTelServer;
+
+ /**
+ * Used to access phone based functionality
+ * Own
+ */
+ RMobilePhone iPhone;
+
+ /**
+ * Phone module for Dummy TSY
+ * Own
+ */
+ RMobilePhone iDummyPhone;
+
+ /**
+ * RMmCustomAPI
+ * Own
+ */
+ RMmCustomAPI iCustomPhone;
+
+ /**
+ * Line needed by iCall
+ * own
+ */
+ RMobileLine iLine;
+
+ /**
+ * Access call based functionality
+ * own
+ */
+ RMobileCall iCall;
+
+ /**
+ * Access USSD Messaging
+ * own
+ */
+ RMobileUssdMessaging iUssd;
+
+ /**
+ * Pointer to Active Wrapper. Used in startup
+ * Own.
+ */
+ CSatSActiveWrapper* iWrapper;
+
+ /**
+ * Indicate if the iLine has been openned
+ */
+ TBool iLineOpened;
+
+ /**
+ * Indicate if the iCall has been openned
+ */
+ TBool iCallOpened;
+
+ /**
+ * Indicate if the iUssd has been openned
+ */
+ TBool iUssdOpened;
+
+ };
+
+#endif // CSATMULTIMODEAPI_H