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 #include "battery.h"
0010 #include "battery_p.h"
0011 #include "macros.h"
0012 #include "utils.h"
0013 
0014 #include <QVariantMap>
0015 
0016 namespace BluezQt
0017 {
0018 BatteryPrivate::BatteryPrivate(const QString &path, const QVariantMap &properties)
0019     : QObject()
0020     , m_path(path)
0021 {
0022     // Init properties
0023     m_percentage = properties.value(QStringLiteral("Percentage")).toInt();
0024 }
0025 
0026 void BatteryPrivate::propertiesChanged(const QString &interface, const QVariantMap &changed, const QStringList &invalidated)
0027 {
0028     Q_UNUSED(invalidated)
0029 
0030     if (interface != Strings::orgBluezBattery1()) {
0031         return;
0032     }
0033 
0034     QVariantMap::const_iterator i;
0035     for (i = changed.constBegin(); i != changed.constEnd(); ++i) {
0036         const QVariant &value = i.value();
0037         const QString &property = i.key();
0038 
0039         if (property == QLatin1String("Percentage")) {
0040             PROPERTY_CHANGED2(m_percentage, value.toInt(), percentageChanged)
0041         }
0042     }
0043 }
0044 
0045 Battery::Battery(const QString &path, const QVariantMap &properties)
0046     : d(new BatteryPrivate(path, properties))
0047 {
0048 }
0049 
0050 Battery::~Battery()
0051 {
0052     delete d;
0053 }
0054 
0055 BatteryPtr Battery::toSharedPtr() const
0056 {
0057     return d->q.toStrongRef();
0058 }
0059 
0060 int Battery::percentage() const
0061 {
0062     return d->m_percentage;
0063 }
0064 
0065 } // namespace BluezQt
0066 
0067 #include "moc_battery.cpp"
0068 #include "moc_battery_p.cpp"