Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2025 Paul Colby <git@colby.id.au>
2 : // SPDX-License-Identifier: LGPL-3.0-or-later
3 :
4 : /*!
5 : * \file
6 : * Declares the StatusServicePrivate class.
7 : */
8 :
9 : #ifndef QTPOKIT_STATUSSERVICE_P_H
10 : #define QTPOKIT_STATUSSERVICE_P_H
11 :
12 : #include <qtpokit/statusservice.h>
13 :
14 : #include "abstractpokitservice_p.h"
15 :
16 : QTPOKIT_BEGIN_NAMESPACE
17 :
18 : class QTPOKIT_EXPORT StatusServicePrivate : public AbstractPokitServicePrivate
19 : {
20 80 : Q_OBJECT
21 :
22 : public:
23 : explicit StatusServicePrivate(QLowEnergyController * controller, StatusService * const q);
24 :
25 : static StatusService::DeviceCharacteristics parseDeviceCharacteristics(const QByteArray &value);
26 : static StatusService::Status parseStatus(const QByteArray &value);
27 : static std::optional<StatusService::TorchStatus> parseTorchStatus(const QByteArray &value);
28 : static std::optional<StatusService::ButtonStatus> parseButtonPress(const QByteArray &value);
29 :
30 : protected:
31 : void serviceDiscovered(const QBluetoothUuid &newService) override;
32 :
33 : void characteristicRead(const QLowEnergyCharacteristic &characteristic,
34 : const QByteArray &value) override;
35 : void characteristicWritten(const QLowEnergyCharacteristic &characteristic,
36 : const QByteArray &newValue) override;
37 :
38 : private:
39 80 : Q_DECLARE_PUBLIC(StatusService)
40 : Q_DISABLE_COPY(StatusServicePrivate)
41 : QTPOKIT_BEFRIEND_TEST(StatusService)
42 : };
43 :
44 : QTPOKIT_END_NAMESPACE
45 :
46 : #endif // QTPOKIT_STATUSSERVICE_P_H
|