cbsref/telephonyrefplugins/atltsy/handler/inc/cltsyphonehandler.h
branchRCL_3
changeset 65 630d2f34d719
equal deleted inserted replaced
61:17af172ffa5f 65:630d2f34d719
       
     1 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // CLtsyPhoneHandler
       
    15 
       
    16 #ifndef __CLTSYDISPATCHPHONEHANDLER_H_
       
    17 #define __CLTSYDISPATCHPHONEHANDLER_H_
       
    18 
       
    19 // INCLUDES
       
    20 #include <e32std.h>
       
    21 #include <e32base.h>
       
    22 
       
    23 #include <ctsy/ltsy/mltsydispatchinterface.h>
       
    24 #include <ctsy/ltsy/mltsydispatchphoneinterface.h>
       
    25 #include "misdispatchinterfacesupported.h"
       
    26 #include "ltsymacros.h"
       
    27 #include "globalphonemanager.h"
       
    28 
       
    29 
       
    30 #include "requestbase.h"
       
    31 
       
    32 
       
    33 // Can be removed in real LTSY implementation
       
    34 MTEST_FORWARD_DECLARE_MOCKLTSYENGINE
       
    35 class CRequestBase;
       
    36 
       
    37 class CInitializePhone;
       
    38 class CAsyncHelperRequest;
       
    39 class CATNetworkRegStatusChange;
       
    40 class CATNotifyCellInfo;
       
    41 class CNotifyBatteryAndSignal;
       
    42 class CATDetectNetwork;
       
    43 class CATSelectNetwork;
       
    44 
       
    45 
       
    46 class MLtsyUnsolicitedCommandObserver;
       
    47 class CUnsolicitedWindPhoneHandler;
       
    48 
       
    49 // CLASS DECLARATION
       
    50 
       
    51 /**
       
    52  * Implements interfaces from the CTSY Dispatcher. The CTSY Dispatcher uses these
       
    53  * interfaces to make requests to the Licensee LTSY.
       
    54  */
       
    55 class CLtsyPhoneHandler : 	public CBase,
       
    56 							public MIsDispatchInterfaceSupported, 		
       
    57 							public MLtsyDispatchPhoneGetFdnStatus,
       
    58 							public MLtsyDispatchPhoneGetNetworkRegistrationStatus,
       
    59 							public MLtsyDispatchPhoneGetHomeNetwork,
       
    60 							public MLtsyDispatchPhoneBootNotifyModemStatusReady,
       
    61 							public MLtsyDispatchPhoneBootNotifySimStatusReady,
       
    62 							public MLtsyDispatchPhoneSimRefreshRegister,
       
    63 							public MLtsyDispatchPhoneGetServiceProviderName,
       
    64 							public MLtsyDispatchPhoneGetPhoneId,
       
    65 							public MLtsyDispatchPhoneGetDetectedNetworks,
       
    66 							public MLtsyDispatchPhoneGetDetectedNetworksCancel,
       
    67 							public MLtsyDispatchPhoneSelectNetwork,
       
    68 							public MLtsyDispatchPhoneSelectNetworkCancel,
       
    69 							public MLtsyDispatchPhoneSetNetworkSelectionSetting,
       
    70 							public MLtsyDispatchPhoneGetCurrentNetworkInfo,
       
    71 							public MLtsyDispatchPhoneGetNetworkMode,
       
    72 							public MLtsyDispatchPhoneGetNitzInfo,
       
    73 							public MLtsyDispatchPhoneGetSignalStrength,
       
    74 							public MLtsyDispatchPhoneGetBatteryInfo,
       
    75 							public MLtsyDispatchPhoneNspsWakeup,
       
    76                             public MLtsyDispatchPhoneSetSystemNetworkMode,
       
    77                             public MLtsyDispatchPhoneGetCurrentSystemNetworkModes,
       
    78                             public MLtsyDispatchPhoneResetNetServer,
       
    79                             public MLtsyDispatchPhoneSetAlwaysOnMode,
       
    80                             public MLtsyDispatchPhoneSetDriveMode,
       
    81                             public MLtsyDispatchPhoneGetHspaStatus,
       
    82                             public MLtsyDispatchPhoneSetHspaStatus,
       
    83                             public MLtsyDispatchPhoneGetNetworkProviderName,
       
    84                             public MLtsyDispatchPhoneGetOperatorName,
       
    85                             public MLtsyDispatchPhoneGetCellInfo,
       
    86 							public MLtsyDispatchPhoneRegisterCellInfoChangeNotification,
       
    87 							public MLtsyDispatchPhoneGetPhoneCellInfo,
       
    88 							public MLtsyDispatchPhoneGetUsimServiceSupport,
       
    89 							public MLtsyDispatchPhoneGetCurrentActiveUsimApplication,
       
    90 							public MLtsyDispatchPhoneTerminateAllCalls,
       
    91 							public MLtsyDispatchPhoneGetSystemNetworkBand,
       
    92 							public MLtsyDispatchPhoneSetSystemNetworkBand,
       
    93 							public MIpcRequestCompleteObserver
       
    94 							
       
    95 	{
       
    96 public:
       
    97 	virtual ~CLtsyPhoneHandler();
       
    98 	static CLtsyPhoneHandler* NewL(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);
       
    99 	static CLtsyPhoneHandler* NewLC(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);
       
   100 
       
   101 	// From MIsDispatchInterfaceSupported
       
   102 	virtual TBool IsInterfaceSupported(TLtsyDispatchInterfaceApiId aDispatchApiId);
       
   103 	void IsCallbackIndicatorSupported(TLtsyDispatchIndIdGroup aIdGroup, TUint32& aIndIdBitMask);
       
   104 	
       
   105 	// From MLtsyDispatchPhoneGetFdnStatus
       
   106 	virtual TInt HandleGetFdnStatusReqL();
       
   107 
       
   108 	// From MLtsyDispatchPhoneGetNetworkRegistrationStatus
       
   109 	virtual TInt HandleGetNetworkRegistrationStatusReqL();
       
   110 
       
   111 	// From MLtsyDispatchPhoneGetHomeNetwork
       
   112 	virtual TInt HandleGetHomeNetworkReqL();
       
   113 
       
   114 	// From MLtsyDispatchPhoneBootNotifyModemStatusReady
       
   115 	virtual TInt HandleBootNotifyModemStatusReadyReqL();
       
   116 
       
   117 	// From MLtsyDispatchPhoneBootNotifySimStatusReady
       
   118 	virtual TInt HandleBootNotifySimStatusReadyReqL();
       
   119 
       
   120 	// From MLtsyDispatchPhoneSimRefreshRegister
       
   121 	virtual TInt HandleSimRefreshRegisterReqL(TUint16 aFilesToRegister);
       
   122 	
       
   123     // From MLtsyDispatchPhoneGetServiceProviderName
       
   124     virtual TInt HandleGetServiceProviderNameReqL();
       
   125 
       
   126     // From MLtsyDispatchPhoneGetPhoneId
       
   127     virtual TInt HandleGetPhoneIdReqL();
       
   128 
       
   129     // From MLtsyDispatchPhoneGetDetectedNetworks
       
   130     virtual TInt HandleGetDetectedNetworksReqL();
       
   131 
       
   132     // From MLtsyDispatchPhoneGetDetectedNetworksCancel
       
   133     virtual TInt HandleGetDetectedNetworksCancelReqL();
       
   134 
       
   135     // From MLtsyDispatchPhoneSelectNetwork
       
   136     virtual TInt HandleSelectNetworkReqL(TBool aIsManual, const RMobilePhone::TMobilePhoneNetworkManualSelection& aNetworkManualSelection);
       
   137 
       
   138     // From MLtsyDispatchPhoneSelectNetworkCancel
       
   139     virtual TInt HandleSelectNetworkCancelReqL();
       
   140 
       
   141     // From MLtsyDispatchPhoneSetNetworkSelectionSetting
       
   142     virtual TInt HandleSetNetworkSelectionSettingReqL(const RMobilePhone::TMobilePhoneNetworkSelectionV1& aPhoneNetworkSelection);
       
   143     
       
   144     // From MLtsyDispatchPhoneGetCurrentNetworkInfo
       
   145     virtual TInt HandleGetCurrentNetworkInfoReqL();
       
   146     
       
   147     // From MLtsyDispatchPhoneGetNetworkMode
       
   148     virtual TInt HandleGetNetworkModeReqL();
       
   149     
       
   150     // From MLtsyDispatchPhoneGetNitzInfo
       
   151     virtual TInt HandleGetNitzInfoReqL();
       
   152     
       
   153     // From MLtsyDispatchPhoneGetSignalStrength
       
   154     virtual TInt HandleGetSignalStrengthReqL();
       
   155     
       
   156     // From MLtsyDispatchPhoneGetBatteryInfo
       
   157     virtual TInt HandleGetBatteryInfoReqL();
       
   158 
       
   159 	// From MLtsyDispatchPhoneNspsWakeup
       
   160 	virtual TInt HandleNspsWakeupReqL();
       
   161 
       
   162 	// From MLtsyDispatchPhoneSetSystemNetworkMode
       
   163 	virtual TInt HandleSetSystemNetworkModeReqL(RMmCustomAPI::TNetworkModeCaps aMode);
       
   164 
       
   165 	// From MLtsyDispatchPhoneGetCurrentSystemNetworkModes
       
   166 	virtual TInt HandleGetCurrentSystemNetworkModesReqL();
       
   167 
       
   168 	// From MLtsyDispatchPhoneResetNetServer
       
   169 	virtual TInt HandleResetNetServerReqL();
       
   170 
       
   171 	// From MLtsyDispatchPhoneSetAlwaysOnMode
       
   172 	virtual TInt HandleSetAlwaysOnModeReqL(RMmCustomAPI::TSetAlwaysOnMode aMode);
       
   173 
       
   174 	// From MLtsyDispatchPhoneSetDriveMode
       
   175 	virtual TInt HandleSetDriveModeReqL(RMmCustomAPI::TSetDriveMode aMode);
       
   176     
       
   177 	// From MLtsyDispatchPhoneGetHspaStatus
       
   178 	virtual TInt HandleGetHspaStatusReqL();
       
   179 
       
   180 	// From MLtsyDispatchPhoneSetHspaStatus
       
   181 	virtual TInt HandleSetHspaStatusReqL(RMmCustomAPI::THSxPAStatus aStatus);
       
   182     
       
   183 	// From MLtsyDispatchPhoneGetNetworkProviderName
       
   184 	virtual TInt HandleGetNetworkProviderNameReqL();
       
   185     
       
   186 	// From MLtsyDispatchPhoneGetOperatorName
       
   187 	virtual TInt HandleGetOperatorNameReqL();
       
   188     
       
   189 	// From MLtsyDispatchPhoneGetCellInfo
       
   190 	virtual TInt HandleGetCellInfoReqL();
       
   191 
       
   192 	// From MLtsyDispatchPhoneRegisterCellInfoChangeNotification
       
   193     virtual TInt HandleRegisterCellInfoChangeNotificationReqL();
       
   194     
       
   195     // From MLtsyDispatchPhoneGetPhoneCellInfo
       
   196     virtual TInt HandleGetPhoneCellInfoReqL();
       
   197     
       
   198     // From MLtsyDispatchPhoneGetUsimServiceSupport
       
   199     virtual TInt HandleGetGetUsimServiceSupportReqL(TInt aApplicationNumber);
       
   200     
       
   201     // From MLtsyDispatchPhoneGetCurrentActiveUsimApplication
       
   202     virtual TInt HandleGetCurrentActiveUsimApplicationReqL();
       
   203 
       
   204 	// From MLtsyDispatchPhoneTerminateAllCalls
       
   205     virtual TInt HandleTerminateAllCallsReqL(TInt aCallId);
       
   206     
       
   207 	// From MLtsyDispatchPhoneGetSystemNetworkBand
       
   208     virtual TInt HandleGetSystemNetworkBandReqL();
       
   209     
       
   210     // From MLtsyDispatchPhoneSetSystemNetworkBand
       
   211     virtual TInt HandleSetSystemNetworkBandReqL(RMmCustomAPI::TBandSelection aBand, RMmCustomAPI::TNetworkModeCaps aMode);
       
   212     
       
   213     // From MIpcRequestCompleteObserver
       
   214     virtual void NotifyIpcRequestComplete(TInt aIpcId);
       
   215        
       
   216 public:
       
   217 	MLtsyUnsolicitedCommandObserver* GetUnsolicitedCallControlHandler() const;	
       
   218 private:
       
   219 	CLtsyPhoneHandler(CCtsyDispatcherCallback& aCtsyDispatcherCallback,CGlobalPhonemanager* aGloblePhone);
       
   220 	void ConstructL();
       
   221 private:
       
   222 	/**
       
   223 	 * Callback object in the CTSY Dispatcher.
       
   224 	 * 
       
   225 	 * Used to complete a request back to the CTSY Dispatcher.
       
   226 	 */
       
   227 	CCtsyDispatcherCallback& iCtsyDispatcherCallback;
       
   228 	CGlobalPhonemanager* iGloblePhone;
       
   229 	CInitializePhone* iInitializePhone;
       
   230 	CAsyncHelperRequest* iAsyncHelperRequest;
       
   231 	CATNetworkRegStatusChange* iNetworkRegStatusChange;
       
   232 	CATNotifyCellInfo* iNotifyCellInfo;
       
   233 	CNotifyBatteryAndSignal* iNotifyBatteryAndSignal;
       
   234 	CATDetectNetwork* iATDetectNetwork;
       
   235 	CATSelectNetwork* iATSelectNetwork;
       
   236 	
       
   237 	/**
       
   238 	 * Process unsolicited command
       
   239 	 */
       
   240 	CUnsolicitedWindPhoneHandler* iUnsolicitedHandler;
       
   241 	
       
   242 	/**
       
   243 	 * Store the one IPC Id which identify next possible IPC request to be run
       
   244 	 */
       
   245 	TInt iPendingIpcId;
       
   246 	}; // class CLtsyPhoneHandler
       
   247 
       
   248 #endif // __CLTSYDISPATCHPHONEHANDLER_H_
       
   249