File indexing completed on 2024-12-01 04:21:38
0001 /* 0002 SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef SINK_H 0008 #define SINK_H 0009 0010 #include "device.h" 0011 0012 struct pa_sink_info; 0013 0014 namespace PulseAudioQt 0015 { 0016 /** 0017 * A PulseAudio sink. This class is based on https://freedesktop.org/software/pulseaudio/doxygen/structpa__sink__info.html. 0018 */ 0019 class PULSEAUDIOQT_EXPORT Sink : public Device 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 ~Sink(); 0025 0026 void setVolume(qint64 volume) override; 0027 0028 void setMuted(bool muted) override; 0029 0030 void setActivePortIndex(quint32 port_index) override; 0031 0032 void setChannelVolume(int channel, qint64 volume) override; 0033 0034 bool isDefault() const override; 0035 0036 void setDefault(bool enable) override; 0037 0038 void setChannelVolumes(const QVector<qint64> &channelVolumes) override; 0039 0040 void switchStreams() override; 0041 0042 /** 0043 * Index of the monitor source for this sink. 0044 */ 0045 quint32 monitorIndex() const; 0046 0047 Q_SIGNALS: 0048 void monitorIndexChanged(); 0049 0050 private: 0051 explicit Sink(QObject *parent); 0052 0053 class SinkPrivate *const d; 0054 friend class MapBase<Sink, pa_sink_info>; 0055 }; 0056 0057 } // PulseAudioQt 0058 0059 #endif // SINK_H