DtkBluetooth
BlueZ DBus interface binding for Qt
dbluetoothdevice.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DBLUETOOTHDEVICE_H
6#define DBLUETOOTHDEVICE_H
7
8#include "dtkbluetooth_global.h"
9#include <DExpected>
10#include <DObject>
11#include <QObject>
12#include <QBluetoothDeviceInfo>
13
14DBLUETOOTH_BEGIN_NAMESPACE
15
16using DTK_CORE_NAMESPACE::DExpected;
17using DTK_CORE_NAMESPACE::DObject;
18
19class DDevicePrivate;
20
21class DDevice : public QObject, public DObject
22{
23 Q_OBJECT
24 explicit DDevice(const QString &adapterPath, const QString &deviceAddress, QObject *parent = nullptr);
25 friend class DAdapter;
26 friend class DAgentAdaptor;
27
28public:
29 ~DDevice() override;
30
31 enum AddressType : quint8 { Public, Random, Unknown };
32 Q_ENUM(AddressType)
33
34 Q_PROPERTY(bool blocked READ blocked WRITE setBlocked NOTIFY blockedChanged)
35 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
36 Q_PROPERTY(bool legacyPairing READ legacyPairing CONSTANT)
37 Q_PROPERTY(bool paired READ paired NOTIFY pairedChanged)
38 Q_PROPERTY(bool servicesResolved READ servicesResolved NOTIFY servicesResolvedChanged)
39 Q_PROPERTY(bool trusted READ trusted WRITE setTrusted NOTIFY trustedChanged)
40 Q_PROPERTY(quint64 adapter READ adapter CONSTANT)
41 Q_PROPERTY(QString address READ address CONSTANT)
42 Q_PROPERTY(AddressType addressType READ addressType NOTIFY addressTypeChanged)
43 Q_PROPERTY(QString alias READ alias NOTIFY aliasChanged)
44 Q_PROPERTY(QString name READ name CONSTANT)
45 Q_PROPERTY(qint16 RSSI READ RSSI NOTIFY RSSIChanged)
46 Q_PROPERTY(QBluetoothDeviceInfo deviceInfo READ deviceInfo CONSTANT)
47 Q_PROPERTY(QString icon READ icon CONSTANT)
48 Q_PROPERTY(quint16 appearance READ appearance CONSTANT)
49
50 bool blocked() const;
51 void setBlocked(bool blocked);
52 bool connected() const;
53 bool legacyPairing() const;
54 bool paired() const;
55 bool servicesResolved() const;
56 bool trusted() const;
57 void setTrusted(bool trusted);
58 quint64 adapter() const;
59 QString address() const;
60 AddressType addressType() const;
61 QString alias() const;
62 QString name() const;
63 QBluetoothDeviceInfo deviceInfo() const;
64 QString icon() const;
65 qint16 RSSI() const;
66 quint16 appearance() const;
67 bool isValid() const;
68
69public Q_SLOTS:
70 DExpected<void> disconnectDevice() const;
71 DExpected<void> cancelPairing() const;
72 DExpected<void> connectDevice() const;
73 DExpected<void> pair() const;
74
75Q_SIGNALS:
76 void blockedChanged(bool blocked);
77 void connectedChanged(bool connected);
78 void pairedChanged(bool servicesResolved);
79 void servicesResolvedChanged(bool servicesResolved);
80 void trustedChanged(bool trusted);
81 void addressTypeChanged(AddressType type);
82 void aliasChanged(const QString &alias);
83 void RSSIChanged(qint16 rssi);
84
85 void removed();
86
87private:
88 D_DECLARE_PRIVATE(DDevice);
89};
90
91DBLUETOOTH_END_NAMESPACE
92#endif
对于蓝牙适配器的封装
Definition: dbluetoothadapter.h:24
对于蓝牙设备的封装
Definition: dbluetoothdevice.h:22
AddressType
Definition: dbluetoothdevice.h:31