File indexing completed on 2024-04-28 08:49:13

0001 /**
0002  * SPDX-FileCopyrightText: 2021 Aleix Pol i Gonzalez <aleixpol@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include "plugin_virtualmonitor_debug.h"
0010 #include <QJsonObject>
0011 #include <core/kdeconnectplugin.h>
0012 
0013 #define PACKET_TYPE_VIRTUALMONITOR QStringLiteral("kdeconnect.virtualmonitor")
0014 #define PACKET_TYPE_VIRTUALMONITOR_REQUEST QStringLiteral("kdeconnect.virtualmonitor.request")
0015 
0016 class QProcess;
0017 
0018 class VirtualMonitorPlugin : public KdeConnectPlugin
0019 {
0020     Q_OBJECT
0021     Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.virtualmonitor")
0022 
0023 public:
0024     using KdeConnectPlugin::KdeConnectPlugin;
0025     ~VirtualMonitorPlugin() override;
0026 
0027     Q_SCRIPTABLE bool requestVirtualMonitor();
0028 
0029     void connected() override;
0030     QString dbusPath() const override;
0031     void receivePacket(const NetworkPacket &np) override;
0032 
0033 private:
0034     void stop();
0035 
0036     QProcess *m_process = nullptr;
0037     QJsonObject m_remoteResolution;
0038     uint m_retries = 0;
0039 };