diff -r a2efdd544abf -r b47902b73a93 datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Settings/BTGPSNokDeviceHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Settings/BTGPSNokDeviceHandler.h Fri Jun 04 10:34:15 2010 +0100 @@ -0,0 +1,191 @@ +/* +* Copyright (c) 2005-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: +* +*/ + + + + +#ifndef BTGPSNOKDEVICEHANDLER_H +#define BTGPSNOKDEVICEHANDLER_H + +// INCLUDES +#include +#include "BTGPSMessageListener.h" +#include "BTGPSSettingsListener.h" +#include "BTGPSDeviceListener.h" + +// CLASS DECLARATION +class CBTGPSSettingManager; +class CBTGPSConnectManager; +class CBTGPSConstantsManager; +class CBTGPSDeviceManager; +class CBTGPSNokNightModeHandler; +class TBTGPSNmeaParser; +class CBTGPSDeviceListManager; + + +/** +* Handler for specific Nokia BT GPS device features. This class defines objects that +* listen NMEA messages and show battery, external power and external antenna status +* information note when specific messages received. It also monitoring night mode +* status of the connected device. +* +*/ +class CBTGPSNokDeviceHandler: + public CBase, + private MBTGPSMessageListener, + private MBTGPSSettingsListener, + private MBTGPSDeviceListener + { + public: + + /** + * Two-phase construction. + * @param aConnectManager Reference to connect manager + * @param aSettingManager Reference to setting manager + * @param aConstantsManager Reference to constants manager + * @param aDeviceManager Reference to device manager + */ + static CBTGPSNokDeviceHandler * NewL( + CBTGPSConnectManager& aConnectManager, + CBTGPSSettingManager& aSettingManager, + CBTGPSConstantsManager& aConstantsManager, + CBTGPSDeviceManager& aDeviceManager, + CBTGPSDeviceListManager& aDeviceListManager); + + /** + * Destructor + */ + virtual ~CBTGPSNokDeviceHandler(); + + private: + /** + * From MBTGPSMessageListener + */ + virtual void HandleMessage(const TBTGPSNmeaParser& aParser); + + /** + * From MBTGPSSettingsListener + */ + virtual void HandleNightModeChange( + const TBTGPSSettingsApi::TNightModeState aStatus ); + + /** + * From MBTGPSDeviceListener + */ + virtual void BTDeviceStatusChanged( + TInt aConnectStatus, + TInt aDeviceType, + TInt aErr=KErrNone); + + + private: + + /** + * Second phase of the construction + */ + void ConstructL(); + + /** + * Private constructor + */ + CBTGPSNokDeviceHandler( + CBTGPSConnectManager& aConnectManager, + CBTGPSSettingManager& aSettingManager, + CBTGPSConstantsManager& aConstantsManager, + CBTGPSDeviceManager& aDeviceManager, + CBTGPSDeviceListManager& aDeviceListManager); + + /** + * Update device status to setting manager + */ + void UpdateDeviceStatus( + TInt aBattLevel, + TInt aBattStatus, + TInt aExtPowStatus, + TInt aExtAntStatus); + + /** + * Handle PNOK STAT message + */ + void HandleStatMessage(const TBTGPSNmeaParser& aParser); + + /** + * Update device version + */ + void UpdateDeviceVersion(const TBTGPSNmeaParser& aParser); + + /** + * Check night mode status from PNOK nmea sentence + */ + void CheckNightModeStatus(TInt aStatus); + + /** + * Update night mode on device according to setting + */ + void UpdateNightMode(TBTGPSSettingsApi::TNightModeState aSetting); + + /** + * Update PSY state + */ + void UpdatePsyState( + TInt aConnectStatus, + TInt aDeviceType); + + /** + * Update BT device info in setting + */ + void UpdateBtDeviceInfo( + TInt aConnectStatus, + TInt aDeviceType); + + private: + //Connect manager + CBTGPSConnectManager& iConnectManager; + + //Setting manager + CBTGPSSettingManager& iSettingManager; + + //Constants manager + CBTGPSConstantsManager& iConstantsManager; + + //Device manager + CBTGPSDeviceManager& iDeviceManager; + + //Device List Manager + CBTGPSDeviceListManager& iDeviceListManager; + + //Night mode handler + CBTGPSNokNightModeHandler* iNightModeHandler; + + //Night mode status + TInt iNightModeSetting; + + //Battery full or empty status + TInt iBattStatus; + + //Ext power status; + TInt iExtPowerStatus; + + //Ext antenna status; + TInt iExtAntennaStatus; + + //Previous BT device type + TInt iPreviousDeviceType; + }; +#endif +// End of File +