kdeconnect-kde/plugins/connectivity-report/connectivity_reportplugin.h

69 lines
1.9 KiB
C
Raw Normal View History

/**
* SPDX-FileCopyrightText: 2021 David Shlemayev <david.shlemayev@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#ifndef CONNECTIVITY_REPORT_H
#define CONNECTIVITY_REPORT_H
#include <core/kdeconnectplugin.h>
/**
* Packet used to report the current connectivity state
* <p>
* The body should contain a key "signalStrengths" which has a dict that maps
* a SubscriptionID (opaque value) to a dict with the connection info (See below)
* <p>
* For example:
* {
* "signalStrengths": {
* "6": {
* "networkType": "4G",
* "signalStrength": 3
* },
* "17": {
* "networkType": "HSPA",
* "signalStrength": 2
* },
* ...
* }
* }
*/
#define PACKET_TYPE_CONNECTIVITY_REPORT QStringLiteral("kdeconnect.connectivity_report")
/**
* Packet sent to request the current connectivity state
* <p>
* The request packet shall contain no body
*/
#define PACKET_TYPE_CONNECTIVITY_REPORT_REQUEST QStringLiteral("kdeconnect.connectivity_report.request")
class ConnectivityReportPlugin
: public KdeConnectPlugin
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.connectivity_report")
Q_PROPERTY(QString cellularNetworkType READ cellularNetworkType NOTIFY refreshed)
Q_PROPERTY(int cellularNetworkStrength READ cellularNetworkStrength NOTIFY refreshed)
public:
explicit ConnectivityReportPlugin(QObject* parent, const QVariantList& args);
bool receivePacket(const NetworkPacket& np) override;
void connected() override;
QString dbusPath() const override;
QString cellularNetworkType() const;
int cellularNetworkStrength() const;
Q_SIGNALS:
Q_SCRIPTABLE void refreshed(QString cellularNetworkType, int cellularNetworkStrength);
private:
QString m_cellularNetworkType;
int m_cellularNetworkStrength = -1;
};
#endif