kdeconnect-kde/plugins/remotesystemvolume/remotesystemvolumeplugin.h
Alexander Lohnau 7091f333f9 Do not mark plugin classes as exported
This is not needed, because only a symbol to create the KPluginFactory
instance must be exported. The KPluginFactory macros or rather the underlying
Q_PLUGIN_METADATA macro already take care of that.

In other plugin code of KDE, we also do not export classes.
The size of the generated plugin files is nearly identical, but removing
the macros avoids confusion for developers.
2023-07-22 20:51:19 +00:00

46 lines
1.3 KiB
C++

/**
* SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#pragma once
#include <QObject>
#include <core/kdeconnectplugin.h>
#define PACKET_TYPE_SYSTEMVOLUME QStringLiteral("kdeconnect.systemvolume")
#define PACKET_TYPE_SYSTEMVOLUME_REQUEST QStringLiteral("kdeconnect.systemvolume.request")
class RemoteSystemVolumePlugin : public KdeConnectPlugin
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.remotesystemvolume")
Q_PROPERTY(QByteArray sinks READ sinks NOTIFY sinksChanged)
Q_PROPERTY(QString deviceId READ deviceId CONSTANT)
public:
explicit RemoteSystemVolumePlugin(QObject *parent, const QVariantList &args);
bool receivePacket(const NetworkPacket &np) override;
void connected() override;
QString dbusPath() const override;
QString deviceId() const
{
return device()->id();
}
QByteArray sinks();
Q_SCRIPTABLE void sendVolume(const QString &name, int volume);
Q_SCRIPTABLE void sendMuted(const QString &name, bool muted);
Q_SIGNALS:
Q_SCRIPTABLE void sinksChanged();
Q_SCRIPTABLE void volumeChanged(const QString &name, int volume);
Q_SCRIPTABLE void mutedChanged(const QString &name, bool muted);
private:
QByteArray m_sinks;
};