1/*
2 * BluezQt - Asynchronous Bluez wrapper library
3 *
4 * SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com>
5 *
6 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9#ifndef BLUEZQT_RFKILL_H
10#define BLUEZQT_RFKILL_H
11
12#include <QHash>
13#include <QObject>
14
15#include "bluezqt_export.h"
16
17#include <memory>
18
19namespace BluezQt
20{
21struct RfkillPrivate;
22
23/*!
24 * \inmodule BluezQt
25 * \class BluezQt::Rfkill
26 * \inheaderfile BluezQt/Rfkill
27 */
28class BLUEZQT_EXPORT Rfkill : public QObject
29{
30 Q_OBJECT
31 /*! \property BluezQt::Rfkill::state */
32 Q_PROPERTY(State state READ state NOTIFY stateChanged)
33
34public:
35 /*!
36 * \enum BluezQt::Rfkill::State
37 * \value Unblocked
38 * \value SoftBlocked
39 * \value HardBlocked
40 * \value Unknown
41 */
42 enum State {
43 Unblocked = 0,
44 SoftBlocked = 1,
45 HardBlocked = 2,
46 Unknown = 3,
47 };
48 Q_ENUM(State)
49
50 /*!
51 */
52 explicit Rfkill(QObject *parent = nullptr);
53
54 ~Rfkill() override;
55
56 /*!
57 */
58 State state() const;
59 /*!
60 */
61 void block();
62 /*!
63 */
64 void unblock();
65
66Q_SIGNALS:
67 /*!
68 */
69 void stateChanged(State state);
70
71private Q_SLOTS:
72 BLUEZQT_NO_EXPORT void devReadyRead();
73
74private:
75 BLUEZQT_NO_EXPORT void init();
76 BLUEZQT_NO_EXPORT bool openForWriting();
77 BLUEZQT_NO_EXPORT void updateRfkillDevices();
78 BLUEZQT_NO_EXPORT bool setSoftBlock(quint8 soft);
79
80 std::unique_ptr<RfkillPrivate> d;
81};
82
83} // namespace BluezQt
84
85#endif // BLUEZQT_RFKILL_H
86

source code of bluez-qt/src/rfkill.h