6f9efdfd4cd7a73e1ff50e8e3b5f8db32bb1c8f2
[profile/ivi/bluetooth-qt.git] / bluetoothdevice.h
1 #ifndef BLUETOOTHDEVICE_H
2 #define BLUETOOTHDEVICE_H
3
4 #include <QObject>
5 #include <QStringList>
6 #include <bluedevice.h>
7
8 class OrgBluezAudioInterface;
9
10 class BluetoothDevice : public QObject
11 {
12     Q_OBJECT    
13         Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged);
14         Q_PROPERTY(bool audioConnected READ audioConnected NOTIFY audioConnectedChanged)
15         Q_PROPERTY(QStringList profiles READ profiles)
16         Q_PROPERTY(QString alias READ alias)
17         Q_PROPERTY(QString name READ name)
18         Q_PROPERTY(QString address READ address)
19         Q_PROPERTY(QString icon READ icon)
20         Q_PROPERTY(QString path READ path)
21
22 public:
23         explicit BluetoothDevice(QDBusObjectPath path = QDBusObjectPath(), QObject *parent = 0);
24
25 signals:
26         void connectedChanged(bool isConnected);
27         void audioConnectedChanged(bool isConnected);
28         void propertyChanged(QString name, QVariant value);
29
30 public slots:
31         void unpair();
32         void connectAudio();
33         void connectAudioSrc();
34         QString connectSerial();
35         void disconnect();
36         void disconnectAudio();
37
38         QStringList profiles();
39         bool isProfileSupported(QString profile);
40
41         ///properties:
42         bool connected();
43         bool audioConnected();
44         QString alias();
45         QString name();
46         QString address();
47         QString icon();
48         QString path();
49
50 private slots:
51         void propertyChanged(QString name,QDBusVariant value);
52         void audioPropertiesChanged(QString name, QDBusVariant value);
53
54 private:
55         OrgBluezDeviceInterface *m_device;
56         OrgBluezAudioInterface *audio;
57 };
58
59 #endif // BLUETOOTHDEVICE_H