diff -r 2eacb6118286 -r ba76fc04e6c2 phoneengine/phonemodel/inc/cpephonemodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/phonemodel/inc/cpephonemodel.h Fri Jun 04 10:19:18 2010 +0100 @@ -0,0 +1,338 @@ +/* +* Copyright (c) 2004 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: This file contains the header file of the CPEPhoneModel class. +* +*/ + + +#ifndef CPEPHONEMODEL_H +#define CPEPHONEMODEL_H + +//INCLUDES +#include "mpeactivestarter.h" +#include "mpephonemodelinternal.h" +#include +#include +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CPEActiveStarter; +class CCCE; +class CPEEngineInfo; +class CPEGsmAudioData; +class CPEExternalDataHandler; +class CPEMessageHandler; +class CPESimStateMonitor; +class CPEIdleStatusMonitor; +class MEngineMonitor; +class MPEContactHandling; +class MPECallHandling; +class MPELogHandling; +class MCCEDtmfInterface; +class CPEAudioFactory; +class MPEServiceHandling; +class CPERemotePartyInfoMediator; +class PhoneServices; +class ParserRecognizer; + +// CLASS DECLARATION + +// DESCRIPTION +// Handles phone related events from the phone application. +// +NONSHARABLE_CLASS( CPEPhoneModel ) + : public CPEPhoneModelIF, + public MPEPhoneModelInternal, + public MPEActiveStarter + { + public: //Constructors and destructor + + // Starting modules of active starter (StepL method) + enum TActiveStarterSteps + { + EPEInitializeCceConnection = 0, + EPEExternalData, + EPECallHandling, + EPEAudioHandling, + EPELogHandlingPhaseOne, + EPEContactHandlingPhaseOne, + EPESimStateMonitor, + EPEServiceHandling, + EPEMessageHandler, + EPESimChangedMonitor, + EPESimStatusMonitorStart, + EPELogHandlingPhaseTwo, + EPEContactHandlingPhaseTwo, + EPEMediatorCommandHandler, + EPEPhoneServices, + EPEParserRecognizer, + EPENetworkHandling + }; + + /** + * Two-phased constructor. + * + * @param aEngineMonitor, for phone application communication + */ + static CPEPhoneModel* NewL( MEngineMonitor& aEngineMonitor ); + + /** + * Two-phased constructor for module tests. + * + * @param aEngineMonitor, for phone application communication + * @param aAudioFactory for creating audio related classes. + */ + static CPEPhoneModel* NewL( + MEngineMonitor& aEngineMonitor, + CPEAudioFactory& aAudioFactory ); + + /** + * Destructor. + */ + virtual ~CPEPhoneModel( ); + + public: //New functions + + /** + * Recalls starting of modules after leave occured in the middle of StepL sequence. + * + */ + void RecallSteps( ); + + /** + * Starts modules of PhoneEngine. + * + * @return True or False depending on wether to continue stepping. + */ + TBool StepL( ); + + /** + * Constructs Contact Handling Phase Two + */ + void ConstructContactHandlingPhaseTwoL(); + +// Functions from CPEPhonemodelIF + + /** + * From CPEPhonemodelIF + * Returns the name of the specified message to PhoneEngine + * + * @since S60 v.4.0 + * @param aMessage is the message code + * @return String containing the name of the message + */ + TPtrC NameByMessageToPhoneEngine( const TInt aMessage ) const; + + /** + * From CPEPhonemodelIF + * Returns the name of the specified message from PhoneEngine + + * @since S60 v.4.0 + * @param aMessage is the message code + * @return String containing the name of the message + */ + TPtrC NameByMessageFromPhoneEngine( const TInt aMessage ) const; + +// Functions from MPEPhoneModel base class + + /** + * From MPEPhoneModel + * Returns pointer to information object (CPEEngineInfo) + * + * @return Return pointer to CPEEngineInfo object as MPEEngineInfo. + */ + MPEEngineInfo* EngineInfo(); + + /** + * From MPEPhoneModel + * Reroutes messages from the phone application to the message handler + * + * @param aMessage is the message code. + * @return Return possible error code. + */ + void HandleMessage( const TInt aMessage ); + +// Functions from MPEPhoneModelInternal base class + + /** + * From MPEPhoneModelInternal + * Returns pointer to information object (CPEEngineInfo) + * + * @return pointer to CPEEngineInfo object as MPEDataStore + */ + MPEDataStore* DataStore(); + + /** + * From MPEPhoneModelInternal + * Returns pointer to external data handler + * + * @return pointer to CPEExternalDataHandler as MPEExternalDataHandler + */ + MPEExternalDataHandler* DataStoreExt(); + + /** + * From MPEPhoneModelInternal + * Returns pointer to Mediator Command handler + * + * @return pointer to CPERemotePartyInfoMediator object + */ + CPERemotePartyInfoMediator* MediatorCommunicationHandler(); + + /** + * From MPEPhoneModelInternal + * Handle internal message + * + * @since S60 v4.0 + * @param aMessage specifies the event that has taken place + * @param aCallId is the call id number. + */ + void HandleInternalMessage( const TInt aMessage ); + + + /** + * From MPEPhoneModelInternal + * Reroutes messages from the subsystems to the message handler + * + * @param aMessage is the message id. + * @return None. + */ + void SendMessage( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage ); + + /** + * From MPEPhoneModelInternal + * Reroutes messages from the subsystems to the message handler. + * + * @param aMessage is the message id. + * @param aCallId is the call id number. + * @return None. + */ + void SendMessage( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + const TInt aCallId ); + + + private: + + /** + * C++ default constructor. + * @param aAudioFactory Makes copy of aAudioFactory + */ + CPEPhoneModel( + MEngineMonitor& aEngineMonitor ); + + /** + * C++ default constructor. + * @param aAudioFactory Makes copy of aAudioFactory + */ + CPEPhoneModel( + MEngineMonitor& aEngineMonitor, + CPEAudioFactory& aAudioFactory ); + + /** + * By default EPOC constructor is private. + */ + void ConstructL(); + + /** + * Static callback function to send message + * @param aSelf - pointer to itself + * @return KErrNone + */ + static TInt CallBackMessageSend( TAny* aSelf ); + + /** + * Process messages from the subsystems. + * + * @param aMessage is the message id. + * @param aCallId is the call id number. + * @return error from message handler. + */ + TInt ProcessMessage( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + const TInt aCallId ); + + /** + * Determines which messages needs to be delayed and delays + * sending them to Engine monitor. + * + * @param aMessage is the message id. + * @param aCallId is the call id number. + * @return info indicating wheather message sending needs to be delayed. + */ + TBool DelayMessageSending( const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, + const TInt aCallId ); + + + private: //Data + + // Starts Phone Engine's modules asynchronically. + CPEActiveStarter* iActiveStarter; + // MEngineMonitor is the message api to phone application + MEngineMonitor& iEngineMonitor; + // CPEEngineInfo object which handles engine information + CPEEngineInfo* iEngineInfo; + // CPEMessageHandler object which handles messages + CPEMessageHandler* iMessageHandler; + // MPECallHandling object which handles call related commands + MPECallHandling* iCallHandling; + // CPEAudioHandling object which handles audio related commands + CPEGsmAudioData* iAudioData; + // Handle to log handling + MPELogHandling* iLogHandling; + // Handle to contact handling + MPEContactHandling* iContactHandling; + MPEServiceHandling* iServiceHandling; + // handle to file server session + RFs iFsSession; + // External data handler + CPEExternalDataHandler* iExternalDataHandler; + // SIM changed monitor + CPESimStateMonitor* iSimChangedMonitor; + // SIM state monitor + CPESimStateMonitor* iSimStatusMonitor; + // Idle status monitor + CPEIdleStatusMonitor* iIdleStatusMonitor; + // DosServer connect error code. + TInt iErrorCode; + // Stepper counter + TInt iStep; + // CCE interface + CCCE* iConvergedCallEngine; + // CCE dtmf interface + MCCEDtmfInterface* iDtmfInterface; + /* + * Audio factory + * Not own. + */ + CPEAudioFactory* iAudioFactory; + // Callback + CIdle* iCallStackCutter; + // Message Id for callback + MEngineMonitor::TPEMessagesFromPhoneEngine iCallBackMessage; + // Call Id for callback + TInt iCallBackCallId ; + + // Mediator command handler + CPERemotePartyInfoMediator* iMediatorCommunicationHandler; + + // Phone Services offered via Qt Highway + PhoneServices* iPhoneServices; + ParserRecognizer* iParserRecognizer; + + }; + +#endif // CPEPHONEMODEL_H + +// End of File