PulseAudio Qt Bindings

stream.h
1/*
2 SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef STREAM_H
8#define STREAM_H
9
10#include <QString>
11
12#include "volumeobject.h"
13
14// Properties need fully qualified classes even with pointers.
15#include "client.h"
16
17namespace PulseAudioQt
18{
19class StreamPrivate;
20
21class PULSEAUDIOQT_EXPORT Stream : public VolumeObject
22{
23 Q_OBJECT
24 Q_PROPERTY(PulseAudioQt::Client *client READ client NOTIFY clientChanged)
25 Q_PROPERTY(bool virtualStream READ isVirtualStream NOTIFY virtualStreamChanged)
26 Q_PROPERTY(quint32 deviceIndex READ deviceIndex WRITE setDeviceIndex NOTIFY deviceIndexChanged)
27 Q_PROPERTY(bool corked READ isCorked NOTIFY corkedChanged)
28 Q_PROPERTY(bool hasVolume READ hasVolume NOTIFY hasVolumeChanged)
29
30public:
31 ~Stream() override;
32
33 Client *client() const;
34 bool isVirtualStream() const;
35 quint32 deviceIndex() const;
36 bool isCorked() const;
37 bool hasVolume() const;
38
39 virtual void setDeviceIndex(quint32 deviceIndex) = 0;
40
41Q_SIGNALS:
42 void clientChanged();
43 void virtualStreamChanged();
44 void deviceIndexChanged();
45 void corkedChanged();
46 void hasVolumeChanged();
47
48protected:
49 /** @private */
50 explicit Stream(QObject *parent);
51 /** @private */
52 std::unique_ptr<class StreamPrivate> d;
53
54 friend class SinkInputPrivate;
55 friend class SourceOutputPrivate;
56};
57
58} // PulseAudioQt
59
60#endif // STREAM_H
The primary namespace of PulseAudioQt.
Definition card.cpp:17
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:18:01 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.