File indexing completed on 2023-09-24 05:05:38
0001 /** 0002 * SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> 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 <QObject> 0010 0011 #include <core/kdeconnectplugin.h> 0012 0013 #define PACKET_TYPE_SYSTEMVOLUME QStringLiteral("kdeconnect.systemvolume") 0014 #define PACKET_TYPE_SYSTEMVOLUME_REQUEST QStringLiteral("kdeconnect.systemvolume.request") 0015 0016 class RemoteSystemVolumePlugin : public KdeConnectPlugin 0017 { 0018 Q_OBJECT 0019 Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.remotesystemvolume") 0020 Q_PROPERTY(QByteArray sinks READ sinks NOTIFY sinksChanged) 0021 Q_PROPERTY(QString deviceId READ deviceId CONSTANT) 0022 0023 public: 0024 using KdeConnectPlugin::KdeConnectPlugin; 0025 0026 void receivePacket(const NetworkPacket &np) override; 0027 void connected() override; 0028 QString dbusPath() const override; 0029 0030 QString deviceId() const 0031 { 0032 return device()->id(); 0033 } 0034 QByteArray sinks(); 0035 0036 Q_SCRIPTABLE void sendVolume(const QString &name, int volume); 0037 Q_SCRIPTABLE void sendMuted(const QString &name, bool muted); 0038 0039 Q_SIGNALS: 0040 Q_SCRIPTABLE void sinksChanged(); 0041 Q_SCRIPTABLE void volumeChanged(const QString &name, int volume); 0042 Q_SCRIPTABLE void mutedChanged(const QString &name, bool muted); 0043 0044 private: 0045 QByteArray m_sinks; 0046 };