/** * SPDX-FileCopyrightText: 2018 Nicolas Fella * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include "remotesystemvolumeplugin.h" #include #include #include #include #include #include #include #include #include "plugin_remotesystemvolume_debug.h" K_PLUGIN_CLASS_WITH_JSON(RemoteSystemVolumePlugin, "kdeconnect_remotesystemvolume.json") RemoteSystemVolumePlugin::RemoteSystemVolumePlugin(QObject *parent, const QVariantList &args) : KdeConnectPlugin(parent, args) { } bool RemoteSystemVolumePlugin::receivePacket(const NetworkPacket &np) { if (np.has(QStringLiteral("sinkList"))) { QJsonDocument document(np.get(QStringLiteral("sinkList"))); m_sinks = document.toJson(); Q_EMIT sinksChanged(); } else { QString name = np.get(QStringLiteral("name")); if (np.has(QStringLiteral("volume"))) { Q_EMIT volumeChanged(name, np.get(QStringLiteral("volume"))); } if (np.has(QStringLiteral("muted"))) { Q_EMIT mutedChanged(name, np.get(QStringLiteral("muted"))); } } return true; } void RemoteSystemVolumePlugin::sendVolume(const QString &name, int volume) { NetworkPacket np(PACKET_TYPE_SYSTEMVOLUME_REQUEST); np.set(QStringLiteral("name"), name); np.set(QStringLiteral("volume"), volume); sendPacket(np); } void RemoteSystemVolumePlugin::sendMuted(const QString &name, bool muted) { NetworkPacket np(PACKET_TYPE_SYSTEMVOLUME_REQUEST); np.set(QStringLiteral("name"), name); np.set(QStringLiteral("muted"), muted); sendPacket(np); } void RemoteSystemVolumePlugin::connected() { NetworkPacket np(PACKET_TYPE_SYSTEMVOLUME_REQUEST); np.set(QStringLiteral("requestSinks"), true); sendPacket(np); } QByteArray RemoteSystemVolumePlugin::sinks() { return m_sinks; } QString RemoteSystemVolumePlugin::dbusPath() const { return QStringLiteral("/modules/kdeconnect/devices/") + device()->id() + QStringLiteral("/remotesystemvolume"); } #include "remotesystemvolumeplugin.moc"