1 | /* |
2 | SPDX-FileCopyrightText: 2011 Lamarque Souza <lamarque@kde.org> |
3 | SPDX-FileCopyrightText: 2011 Will Stephenson <wstephenson@kde.org> |
4 | SPDX-FileCopyrightText: 2011-2013 Lamarque V. Souza <lamarque@kde.org> |
5 | |
6 | SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL |
7 | */ |
8 | |
9 | #include "modemdevice.h" |
10 | |
11 | #ifndef NETWORKMANAGERQT_BLUETOOTH_DEVICE_H |
12 | #define NETWORKMANAGERQT_BLUETOOTH_DEVICE_H |
13 | |
14 | #include <networkmanagerqt/networkmanagerqt_export.h> |
15 | |
16 | namespace NetworkManager |
17 | { |
18 | class BluetoothDevicePrivate; |
19 | |
20 | /** |
21 | * A bluetooth device interface |
22 | */ |
23 | class NETWORKMANAGERQT_EXPORT BluetoothDevice : public ModemDevice |
24 | { |
25 | Q_OBJECT |
26 | |
27 | Q_PROPERTY(uint bluetoothCapabilities READ bluetoothCapabilities) |
28 | Q_PROPERTY(QString hardwareAddress READ hardwareAddress) |
29 | Q_PROPERTY(QString name READ name) |
30 | |
31 | public: |
32 | typedef QSharedPointer<BluetoothDevice> Ptr; |
33 | typedef QList<Ptr> List; |
34 | /** |
35 | * Capabilities of the Bluetooth device |
36 | */ |
37 | enum Capability { |
38 | NoCapability = 0x0, /**< No special capability */ |
39 | Dun = 0x1, /**< Dial Up Networking profile */ |
40 | Pan = 0x2, /**< Personal Area Network profile */ |
41 | }; |
42 | Q_DECLARE_FLAGS(Capabilities, Capability) |
43 | Q_FLAG(Capabilities) |
44 | /** |
45 | * Creates a new BluetoothDevice object. |
46 | */ |
47 | explicit BluetoothDevice(const QString &path, QObject *parent = nullptr); |
48 | /** |
49 | * Destroys a BluetoothDevice object. |
50 | */ |
51 | ~BluetoothDevice() override; |
52 | |
53 | /** |
54 | * Retrieves the capabilities supported by this device. |
55 | * |
56 | * @return the capabilities of the device |
57 | * @see NetworkManager::BluetoothDevice::Capability |
58 | */ |
59 | Capabilities bluetoothCapabilities() const; |
60 | /** |
61 | * The hardware address assigned to the bluetooth interface |
62 | */ |
63 | QString hardwareAddress() const; |
64 | /** |
65 | * Name of the bluetooth interface |
66 | */ |
67 | QString name() const; |
68 | /** |
69 | * The NetworkInterface type. |
70 | * |
71 | * @return the NetworkManager::Device::Type. This always returns NetworkManager::Device::Bluetooth |
72 | */ |
73 | Type type() const override; |
74 | |
75 | Q_SIGNALS: |
76 | /** |
77 | * Emitted when the BT device @p name changes |
78 | */ |
79 | void nameChanged(const QString &name); |
80 | |
81 | private: |
82 | Q_DECLARE_PRIVATE(BluetoothDevice) |
83 | }; |
84 | } |
85 | #endif |
86 | |