diff -r 0ba996a9b75d -r 613943a21004 bluetoothengine/btui/devmodel/inc/btpairedmodel.h --- a/bluetoothengine/btui/devmodel/inc/btpairedmodel.h Thu Aug 19 10:05:41 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 -#include // for TBTDevAddr -#include //for TBTPowerStateValue -#include -#include - -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