bluetoothengine/btui/btuimodel/btdevicedata.h
changeset 31 a0ea99b6fa53
parent 29 48ae3789ce00
--- 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)
 
 };