7091f333f9
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.
38 lines
948 B
Objective-C
38 lines
948 B
Objective-C
/**
|
|
* SPDX-FileCopyrightText: 2019 Weixuan XIAO <veyx.shaw@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <QMap>
|
|
#include <QObject>
|
|
|
|
#include <core/kdeconnectplugin.h>
|
|
|
|
#import <CoreAudio/CoreAudio.h>
|
|
|
|
#define PACKET_TYPE_SYSTEMVOLUME QStringLiteral("kdeconnect.systemvolume")
|
|
#define PACKET_TYPE_SYSTEMVOLUME_REQUEST QStringLiteral("kdeconnect.systemvolume.request")
|
|
|
|
class MacOSCoreAudioDevice;
|
|
|
|
class SystemvolumePlugin : public KdeConnectPlugin
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit SystemvolumePlugin(QObject *parent, const QVariantList &args);
|
|
~SystemvolumePlugin();
|
|
|
|
bool receivePacket(const NetworkPacket &np) override;
|
|
void connected() override;
|
|
void sendSinkList();
|
|
|
|
void updateDeviceVolume(AudioDeviceID deviceId);
|
|
void updateDeviceMuted(AudioDeviceID deviceId);
|
|
|
|
private:
|
|
QMap<QString, MacOSCoreAudioDevice *> m_sinksMap;
|
|
};
|