--- a/bluetoothengine/btui/btuimodel/btdevicedata.h Wed May 05 09:56:48 2010 +0300
+++ b/bluetoothengine/btui/btuimodel/btdevicedata.h Mon May 17 11:06:23 2010 +0300
@@ -18,63 +18,104 @@
#ifndef BTDEVICEDATA_H
#define BTDEVICEDATA_H
-#include <qglobal.h>
+#include "btuimodeltypes.h"
+#include <btdevicemodel.h>
+
#include <e32base.h>
-#include <btengconnman.h>
#include <btservices/btdevrepository.h>
-#include "btuimodel.h"
+#include <btservices/devdiscoveryobserver.h>
+
+
+class CAdvanceDevDiscoverer;
/*!
\class BtDeviceData
- \brief class for handling local Bluetooth setting updates.
+ \brief class for providing remote device data.
BtDeviceData class is responsible for providing the latest information
- regarding the properties of remote devices and the connection status.
+ regarding the properties of remote devices.
\\sa bluetoothuimodel
*/
class BtDeviceData : public QObject,
- public MBTEngConnObserver,
- public MBtDevRepositoryObserver
+ public MBtDevRepositoryObserver,
+ public MDevDiscoveryObserver
{
Q_OBJECT
public:
- BtDeviceData(
- const QSharedPointer<BtuiModelDataSource> &data,
- QObject *parent = 0
- );
+ explicit BtDeviceData( BtDeviceModel& model, QObject *parent = 0 );
virtual ~BtDeviceData();
-private:
- // from MBTEngConnObserver
+ bool isValid( int row, int col ) const;
+
+ int rowCount() const;
+
+ int columnCount() const;
+
+ void data(QVariant& val, int row, int col, int role ) const;
- void ConnectComplete( TBTDevAddr& addr, TInt err,
- RBTDevAddrArray* conflicts );
-
- void DisconnectComplete( TBTDevAddr& addr, TInt err );
+ BtuiModelDataItem itemData( int row, int col ) const;
+
+ bool searchDevice();
+ void cancelSearchDevice();
+
+ void removeTransientDevices();
+
+private:
// From MBtDeviceRepositoryObserver
- void BtDeviceDeleted( const TBTDevAddr& addr );
+ void RepositoryInitialized();
+
+ void DeletedFromRegistry( const TBTDevAddr& addr );
+
+ void AddedToRegistry( const CBtDevExtension& dev );
+
+ void ChangedInRegistry( const CBtDevExtension& dev, TUint similarity );
- void BtDeviceAdded( const CBTDevice& device );
+ void ServiceConnectionChanged(
+ const CBtDevExtension& dev, TBool connected );
- void BtDeviceChanged( const CBTDevice& device, TUint similarity );
+ // from MDevDiscoveryObserver
+ void HandleNextDiscoveryResultL(
+ const TInquirySockAddr& inqAddr, const TDesC& name );
+
+ void HandleDiscoveryCompleted( TInt error );
public slots:
//void activeRequestCompleted( int status, int id );
private:
+ void initializeDataStore();
+
+ void updateDeviceProperty(BtuiModelDataItem& qtdev,
+ const CBtDevExtension& dev, TUint similarity );
+
+ int indexOf( const TBTDevAddr& addr ) const;
+
+ void updateRssi(BtuiModelDataItem& qtdev, int rssi );
+
+ void setMajorProperty( BtuiModelDataItem& qtdev, int prop, bool addto);
+
+ bool isDeviceInRange( const BtuiModelDataItem& qtdev );
+
+ bool isDeviceInRegistry( const BtuiModelDataItem& qtdev );
+
private:
- QSharedPointer<BtuiModelDataSource> mData;
+
+ BtuiModelDataSource mData;
- CBTEngConnMan *mBtengConnMan;
+ BtDeviceModel& mModel;
CBtDevRepository* mDeviceRepo;
+ CAdvanceDevDiscoverer* mDiscover;
+
+ bool isSearchingDevice;
+
Q_DISABLE_COPY(BtDeviceData)
};