diff -r a2efdd544abf -r b47902b73a93 datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Utils/BTGPSDeviceManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Utils/BTGPSDeviceManager.h Fri Jun 04 10:34:15 2010 +0100 @@ -0,0 +1,190 @@ +/* +* 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 BTGPSDEVICEMANAGER_H +#define BTGPSDEVICEMANAGER_H + +// INCLUDES + +#include +#include "BTGPSDeviceListener.h" + +// FORWARD DECLARATIONS +class CBTDevice; +class TBTSockAddr; + +// CLASS DECLARATION + +/** +* Manager class for connected BT device. This class contains connected +* BT device address, pairing information, device connection status and +* device type. It also inform listeners if device connection status or +* device type is changed. +* +*/ +class CBTGPSDeviceManager: public CBase + { + public: + + /** + * Two-phase construction. + */ + static CBTGPSDeviceManager * NewL(); + + /** + * Destructor + */ + virtual ~CBTGPSDeviceManager(); + + /** + * Get BT Device + * @return Reference to CBTDevice object + */ + CBTDevice& BtDevice(); + + /** + * Get BT socket address + * @param aAddr On return contains connected BT socket + * address + */ + void BtSockAddr(TBTSockAddr& aAddr) const; + + /** + * Set BT socket info and device type. This function will also + * do reset. + * @param aAddr BT device socket address. + * @param aType BT device type + */ + void SetDeviceInfo( + const TBTSockAddr& aAddr, + const TBTDeviceType& aType); + + /** + * Set port number + * @param aPort Port number + */ + void SetPort(TInt aPort); + + /** + * Get port number + * @return Port number. Zero by default. + */ + TInt Port() const; + + /** + * Get paired status + * @return ETrue if the device is paried, EFalse otherwise. + */ + TBool IsPaired() const; + + /** + * Set device paired status + * @param aPaired Device pairing status + */ + void SetPaired(TBool aPaired = ETrue); + + /** + * Get BT Device Type + * @return Device type + */ + TBTDeviceType DeviceType() const; + + /** + * Check if GPS is connected + * @return ETrue if the connected device is a GPS device + */ + TBool IsGpsConnected() const; + + /** + * Set BT Device Type + * @param aType BT device type + */ + void SetBTDeviceType(TBTDeviceType aType); + + /** + * Get BT Device connect status + * @return BT device connection status. + */ + TBTDeviceConnectStatus DeviceConnectStatus() const; + + /** + * Set device connection status + * @param aStatus BT device connection status. + * @param aErr Last operation error code if connection + * status is EBTDeviceConnectError. + */ + void SetBTDeviceConnectStatus( + TBTDeviceConnectStatus aStatus, + TInt aErr = KErrNone); + + /** + * Add device status change listener + * @param aListener Reference to listener. + */ + void AddListenerL(MBTGPSDeviceListener& aListener); + + /** + * Remove listener + * @param aListener Reference to listener. + */ + void RemoveListener(MBTGPSDeviceListener& aListener); + + private: + + /** + * Second phase of the construction + */ + void ConstructL(); + + /** + * Private constructor + */ + CBTGPSDeviceManager(); + + /** + * Issue status change event to listeners + */ + void StatusChanged(); + + private: + //Status + CBTDevice* iBtDevice; + + //Port + TInt iPort; + + //Paired + TBool iPaired; + + //BT Device Type + TBTDeviceType iType; + + //BT Device connection status + TBTDeviceConnectStatus iConnectStatus; + + //Last operation error code + TInt iError; + + //Listner array + RArray iListenerArray; + + }; +#endif +// End of File +