initial Bluetooth Device Model addition
[profile/ivi/bluetooth-qt.git] / nearbydevicesmodel.h
1 #ifndef NEARBYDEVICESMODEL_H
2 #define NEARBYDEVICESMODEL_H
3
4 #include <QObject>
5 #include <QAbstractListModel>
6 #include <QDBusObjectPath>
7
8 #include "bluemanager.h"
9 #include "blueadapter.h"
10 #include "asyncagent.h"
11
12 class NearbyDevicesModel : public QAbstractListModel
13 {
14         Q_OBJECT
15
16 public:
17         NearbyDevicesModel(QObject *parent = 0);
18
19 public slots:
20
21         int columnCount(const QModelIndex &) const { return 1;}
22         int rowCount(const QModelIndex &parent = QModelIndex()) const;
23         QVariant data(const QModelIndex &index, int role) const;
24
25         QString hwAddress(int index) { return devicepathlist[index]; }
26         QString alias(int index){ return deviceAliasMap[devicepathlist[index]]; }
27         void pair(QString hwaddy);
28         void discover(bool start);
29         void removeAll(bool);
30
31         void replyRequestConfirmation(bool confirmed);
32         void replyPasskey(uint passkey);
33         void replyRequestPidCode(QString pidCode);
34
35 private slots:
36         void adapterAdded(QDBusObjectPath);
37         void adapterRemoved(QDBusObjectPath);
38         void deviceCreated(QString hwaddy, QVariantMap properties);
39         void deviceRemoved(QString hwaddy);
40
41 signals:
42         void requestConfirmation(QString device, uint code);
43         void requestPasskey(QString device);
44         void requestPidCode(QString device);
45
46         void nearbyDeviceFound(int index);
47         void nearbyDeviceRemoved(int index);
48
49 private:
50         QList<QString> devicepathlist;
51         QMap<QString,QString> deviceAliasMap;
52         OrgBluezManagerInterface *manager;
53         OrgBluezAdapterInterface *adapter;
54         AsyncAgent* agent;
55 };
56
57 #endif // NEARBYDEVICESMODEL_H