File indexing completed on 2024-04-28 15:17:50

0001 /*
0002  * BluezQt - Asynchronous BlueZ wrapper library
0003  *
0004  * SPDX-FileCopyrightText: 2019 Kai Uwe Broulik <kde@broulik.de>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #ifndef BLUEZQT_BATTERY_H
0010 #define BLUEZQT_BATTERY_H
0011 
0012 #include <QObject>
0013 
0014 #include "bluezqt_export.h"
0015 #include "types.h"
0016 
0017 namespace BluezQt
0018 {
0019 /**
0020  * @class BluezQt::Battery battery.h <BluezQt/Battery>
0021  *
0022  * %Device battery.
0023  *
0024  * This class represents a battery interface.
0025  */
0026 class BLUEZQT_EXPORT Battery : public QObject
0027 {
0028     Q_OBJECT
0029     Q_PROPERTY(int percentage READ percentage NOTIFY percentageChanged)
0030 
0031 public:
0032     /**
0033      * Destroys a Battery object.
0034      */
0035     ~Battery() override;
0036 
0037     /**
0038      * Returns a shared pointer from this.
0039      *
0040      * @return BatteryPtr
0041      */
0042     BatteryPtr toSharedPtr() const;
0043 
0044     /**
0045      * Returns the battery percentage.
0046      *
0047      * @return battery percentage
0048      */
0049     int percentage() const;
0050 
0051 Q_SIGNALS:
0052     /**
0053      * Indicates that battery's percentage has changed.
0054      */
0055     void percentageChanged(int percentage);
0056 
0057 private:
0058     BLUEZQT_NO_EXPORT explicit Battery(const QString &path, const QVariantMap &properties);
0059 
0060     class BatteryPrivate *const d;
0061 
0062     friend class BatteryPrivate;
0063     friend class DevicePrivate;
0064 };
0065 
0066 } // namespace BluezQt
0067 
0068 #endif // BLUEZQT_BATTERY_H