--- a/bluetoothengine/btui/devmodel/inc/btpairedmodel.h Fri May 28 17:03:06 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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: The model that is used to list and handle all paired devices.
-*
-*/
-
-
-#ifndef BTPAIREDMODEL_H
-#define BTPAIREDMODEL_H
-
-#include "btdevmodelbase.h"
-#include <btengconnman.h>
-#include <bt_sock.h> // for TBTDevAddr
-#include <btserversdkcrkeys.h> //for TBTPowerStateValue
-#include <btengconstants.h>
-#include <btengsettings.h>
-
-enum TPairedModelState
- {
- EIdleState=0,
- EDeleteDeviceState,
- EAddDeviceState,
- EPairDeviceState,
- EDisconnectBeforeOperationState,
- };
-class CBTEngSettings;
-
-/**
-* This is a adds pairing and connecting functionality to BTDevModelBase.
-*
-* It act as a mediator between UI applications and Bluetooth Engine Device Management API.
-*
-*@lib btdevmodel.dll
-*@since S60 V3.2
-*/
-NONSHARABLE_CLASS(CBTPairedModel) :
- public CBTDevModelBase, public MBTEngConnObserver,
- public MBluetoothPhysicalLinksNotifier,
- public MBTEngSettingsObserver
- {
-
-public: // Constructors and destructor
-
- /**
- * C++ default constructor.
- */
- CBTPairedModel(MBTDeviceObserver* aObserver,
- TBTDeviceSortOrder* aOrder );
-
- /** Symbian 2nd phase constuctor that may leave.
- *@param None.
- *@return None.
- */
- void ConstructL();
-
- /**
- * NewL function
- * @param aObserver The observer will receive information about command completes and
- * changes in the devices.
- * @param aOrder The order the devices are sorted. Default order is added by CBTDevMan, so
- * this class can assume this parameter to be used. This class is responsible for deleting this parameter on
- * its destructor.
- */
- static CBTPairedModel* NewL(MBTDeviceObserver* aObserver,
- TBTDeviceSortOrder* aOrder );
-
- /**
- * Destructor
- * @param None.
- */
- virtual ~CBTPairedModel();
-
- /**
- * Checks if any of the devices shown in paired devices view have active bluetooth connection.
- *
- * NOTE: TBTUIViewsCommonUtils::IsAnyDeviceConnectedL will also check
- * those devices that are not paired.
- *
- *@return ETrue, if one or more devices are connected. EFalse if no devices are connected.
- */
- TBool virtual IsAnyDeviceConnected();
-
- /**
- * Start new device pairing. This is handled by Queue, like
- * all other device changes.
- *
- * This is used by CBTDevice::ChangeDevice(CBTDevice* ,EOpPair)
- *
- * @param aPairingDevice the device to be paired.
- * @return KErrInUse, if another operation has be queued and not finnished. KErrNone otherwise.
- */
- TInt PairDeviceL(const CBTDevice* aPairingDevice,
- TNameEntry* aNameEntry);
-
-protected:
-
- /**
- * Change device status, add device, e.g. block, unpair,unblock etc.
- *
- * This is the operation that is used to to execute the operation queued by ChangeDevice.
- *
- * This class will add connection releted operations to CBTDevModelBase::DoChangeDevice.
- *
- * @param aDevice. The device and the type of the change. If the address is empty, then the
- * device index means what device is to be used.
- * @return KerrNone or system wide error code.
- */
- TInt DoChangeDeviceL(const TBTDevice& aDevice);
-
- /**
- * Cancel ongoing connecting, pairing, modifying device in BTRegistry
- *
- * This is the operation that is used to cancel ongoing operation.
- *
- * @param aDevice. The device and the type of the change that will be canceled.
- * If the address is empty, then the
- * device index means what device is to be used.
- * @return None.
- */
- void DoCancelChangeL(const TBTDevice& aDevice);
-
- /**
- * These two methods set the EStatusPhysicallyConnected attribute to
- * the devices that have active connection.
- */
- void FlagPhysicallyConnectedDevices(RDeviceArray &aDevices);
- void FlagPhysicallyConnectedDevices(TBTDevice& aDevice, RBTDevAddrArray& aBTDeviceArray);
-
-
-private:
-
- /**
- * Start the actual pairing of iPairingDevice
- * This is called by DoChangeDevice, if the operation is pairing.
- *@param none.
- *@return none.
- */
- void DoPairDeviceL();
-
- /**
- * BTEngConnMan will call this when the connecting is finnished.
- * This is called as callback not only for connections initiated by this class,
- * but also for all BT Engines supported porofile connections, including those
- * initiated by remote devices.
- * @param aAddr The address of the device whose connection attempt has been finnished.
- * @param aErr KErrNone if connection is succesfull, Otherwise system wide error code.
- * @param aConflicts The conflicting devices in case of unsuccesfull connection attempt if any.
- * @return none.
- */
- void ConnectComplete(TBTDevAddr& aAddr, TInt aErr, RBTDevAddrArray* aConflicts = NULL);
-
- /**
- * BTEngConnMan will call this when the disconnecting is finnished.
- * This is called as callback not only for disconnections initiated by this class,
- * but also for disconnection of BT Engines supported porofile connections, including those
- * initiated by remote devices.
- * @param aAddr The address of the device whose connection attempt has been finnished.
- * @param aErr KErrNone if disconnection is succesfull, Otherwise system wide error code.
- * @return none.
- */
- void DisconnectComplete(TBTDevAddr& aAddr, TInt aErr);
-
- /**
- * from BTEng's MBTEngConnObserver
- */
- void PairingComplete(TBTDevAddr& aAddr, TInt aErr);
-
- /**
- * The leaving version of PairingComplete. Internally called by PairingComplete
- */
- void PairingCompleteL(TBTDevAddr& aAddr, TInt aErr);
-
- /**
- * Creates and allocates TBTDevice representation of this device
- *
- * This class will add the connection status information to
- * to CBTDevModelBase::CreateDevice.
- *
- * @param aRegDevice the device to be converted
- * @return the TBTDevice representation of the same device. (Note the caller is responsible for deleting
- * the returned item.)
- */
- TBTDevice* CreateDeviceL(const CBTDevice* aRegDevice, TNameEntry* aNameEntry);
-
- /**
- * Adds the given device to internal structures of this class
- * using AddDeviceL, if it is paired and not blocked.
- *
- * @param aRegDevice
- */
- void HandleNewDeviceL(const CBTDevice* aRegDevice,
- TNameEntry* aNameEntry);
-
- /**
- * This callback is used to to notify this call from completed changed from iDevMan.
- * Inherited from MBTEngDevManObserver.
- *
- * This funtion will trap any leave if they may occur and report them as errors in the
- * corresponfing device change operarion.
- *
- * @param aErr KErrNone or system wide error code.
- */
- void HandleDevManComplete(TInt aErr);
-
-public:
-
- /**
- * From MBTEngSettingsObserver - Called when powerstate is changed
- * @param TBTPowerStateValue power state
- * @return None
- */
- void PowerStateChanged( TBTPowerStateValue aState );
-
- /**
- * From MBTEngSettingsObserver - Called when visibility is changed
- * @param TBTPowerStateValue state of visibility mode
- * @return None
- */
- void VisibilityModeChanged( TBTVisibilityMode aState );
-
-
-public: //from MBluetoothPhysicalLinksNotifier
-
- /**
- * Inherited from MBluetoothPhysicalLinksNotifier and implemented empty
- */
- void HandleCreateConnectionCompleteL(TInt ) {};
-
- /**
- * Disconnect from non BTEng device by iLinks is complete.
- *@param aErr KErrNone or system wide errorcode.
- */
- void HandleDisconnectCompleteL(TInt aErr) ;
-
- /** Inherited from MBluetoothPhysicalLinksNotifier and not used.
- */
- void HandleDisconnectAllCompleteL(TInt aErr) {HandleDisconnectCompleteL(aErr); }
-
- /**
- * Get device based on addr or index.
- * @param aDevice the TBTDevice holder. The device address is passed in
- * @return KErrNone if ok.
- * KErrArgument, if neither index not address is filled.
- * KErrOverFlow if index is out of range.
- * KErrNotFound if the given address does not exists, in the internal array.
- */
- TInt virtual GetDevice(TBTDevice& aDevice);
-
- /**
- * This is used to make callback to iObserver, when a leave has been detected.
- *
- *@param aErr the leave error code
- *@param aDevice The device and operation that cause the leave.
- */
- virtual void HandleLeave(TInt aErr,const TBTDevice* aDevice );
-
-private:
-
- CBTEngConnMan* iConnMan;
- CBTDevice* iPairingDevice;
-
- TBTDevice* iDisconnectDevice;
- TPairedModelState iState; // The device is deleted and written back to bt registry before pairing
- // this is used to control those operations
- //used for disconnecting connections not managed by BTEngine
- CBluetoothPhysicalLinks *iLinks;
- RSocketServ iSocketServ;
- CBTEngSettings *iBtEngSettings; // used for turning on BT, if not enabled
- };
-
-#endif