diff -r 17af172ffa5f -r 630d2f34d719 cbsref/telephonyrefplugins/atltsy/atcommand/generic/inc/globalphonemanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/inc/globalphonemanager.h Tue Aug 31 16:23:08 2010 +0300 @@ -0,0 +1,224 @@ +// 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: +// @file globlephonemanager.h +// This contains CGlobalPhonemanager which manage the global phone status and call info manager. +// + +#ifndef __GLOBALPHONEMANAGER_H__ +#define __GLOBALPHONEMANAGER_H__ + +// system include +#include +#include +#include +#include + +// user include +#include +#include "cltsypacketserviceshandler.h" + +/** + * Define the prort access type + */ +enum TPortAccess + { + EPortAccessAllowed, + EPortAccessDenied + }; + +/** + * Define the phone status for phone initialization + */ +enum TPhoneInitStatus + { + EPhoneNotInitialised, + EPhoneInitialising, + EPhoneInitialiseCancelling, + EPhoneInitialised + }; + +/** + * Define the singnal info + * + */ +struct TTsySignalInfo + { + TInt iSignalStrength; + TInt iBar; + }; + +/** + * Define the storage type + */ +typedef TBuf8<2> TStorageType; + +/** + * Define the global phone status + */ +struct TPhoneStatusTSY + { + RPhone::TModemDetection iModemDetected; + RPhone::TMode iMode; + TUint iDataAndFaxFlags; + TPhoneInitStatus iInitStatus; + TPortAccess iPortAccess; + TInt iWaitForCarrierTime; + TBool iDataPortLoaned; + TUint iSupportedPhoneBookStorageFlag; + TInt iSupportedPhoneBookCount; + TStorageType iLastAccessedPhoneBook; + TBool iNetworkChanged; + RMobilePhone::TMobilePhoneRegistrationStatus iRegistrationStatus; + RMobilePhone::TMobilePhoneLocationAreaV1 iLocationArea; + RMobilePhone::TMobilePhoneNetworkInfoV5 iCurrentNetwork; + TTsySignalInfo iSignalInfo; + RMobilePhone::TMobilePhoneBatteryInfoV1 iBatteryInfo; + RMobilePhone::TMobilePhoneNITZ iMobilePhoneNITZ; + RPacketService::TRegistrationStatus iGprsRegistrationStatus; + RPacketService::TStatus iPacketStatus; + TInt iGprsMaxNumContexts; + TRfStateInfo iRfStateInfo; + RMobilePhone::TMobilePhoneNetworkSelectionV1 iLocalNetworkSel; + RMobilePhone::TMobilePhoneIdentityV1 iPhoneId; + }; + +// forward class declarations +class CTsyConfig; +class CAtManager; +class CCommEngine; +class CRequestBase; +class CLtsyCallInformationManager; + +/** + * This class is a shared global phone manager across all the handlers. + * + * This class provide the functions which store the phone status, modem status and access the call info manager. + * + */ +class CGlobalPhonemanager : public CBase + { +public: + /** + * Factory function + */ + static CGlobalPhonemanager* NewL(); + + /** + * Factory function + */ + static CGlobalPhonemanager* NewLC(); + + /** + * virtual destructor + */ + virtual ~CGlobalPhonemanager(); + +public: + /** + * Check current phone status before writing an AT command + */ + TInt CheckGlobalPhoneStatus(); + + /** + * Set current Active IPC Request + */ + void SetActiveRequest(CRequestBase* aRequestBase); + + /** + * Before writing an AT command to baseband, the last active Request must be deleted in order to avoiding the + */ + void DeleteLastActiveRequest(); + + /** + * Get Call informantion manager reference + * + */ + CLtsyCallInformationManager& GetCallInfoManager(); + + /** + * Get current active IPC request + */ + CRequestBase* CurrentActiveRequest(); +private: + /** + * Constructor + * + */ + CGlobalPhonemanager(); + + /** + * 2nd Constructor + * + */ + void ConstructL(); + + /** + * Initialize Phone Manager + * + */ + void InitL(); +public: + /** + * CommDB Engine + */ + CTsyConfig *iConfiguration; + + /** + * Comm Engine + * Own + */ + CCommEngine *iCommEngine; + + /** + * AT Manager + * Own + */ + CAtManager *iAtManager; + + /** + * Global phone status + */ + TPhoneStatusTSY iPhoneStatus; + + /** + * This member define if or not there is unfinished IPC active + */ + TBool iEventSignalActive; + + /** + * Pkt Context list + */ + RPointerArray iContextList; + /** + * Phonebook store info + */ + DispatcherPhonebook::TPhonebookStoreInfoV1 iPhonebookStoreInfo; + /** + * Get the total storage items from CAtSmsStoreInfo + */ + TInt iStoreTotal; +private: + /** + * Current active Ipc Request + */ + CRequestBase* iActiveIpcRequest; + + /** + * The call information manager + * Own + */ + CLtsyCallInformationManager* iCallInfoManager; + }; + +#endif /*__GLOBALPHONEMANAGER_H__*/