File indexing completed on 2025-04-27 04:36:17
0001 /** 0002 * SPDX-FileCopyrightText: 2019 Weixuan XIAO <veyx.shaw@gmail.com> 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 <QMap> 0010 #include <QObject> 0011 0012 #include <core/kdeconnectplugin.h> 0013 0014 #import <CoreAudio/CoreAudio.h> 0015 0016 #define PACKET_TYPE_SYSTEMVOLUME QStringLiteral("kdeconnect.systemvolume") 0017 #define PACKET_TYPE_SYSTEMVOLUME_REQUEST QStringLiteral("kdeconnect.systemvolume.request") 0018 0019 class MacOSCoreAudioDevice; 0020 0021 class SystemvolumePlugin : public KdeConnectPlugin 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 explicit SystemvolumePlugin(QObject *parent, const QVariantList &args); 0027 ~SystemvolumePlugin(); 0028 0029 void receivePacket(const NetworkPacket &np) override; 0030 void connected() override; 0031 void sendSinkList(); 0032 0033 void updateDeviceVolume(AudioDeviceID deviceId); 0034 void updateDeviceMuted(AudioDeviceID deviceId); 0035 0036 private: 0037 QMap<QString, MacOSCoreAudioDevice *> m_sinksMap; 0038 };