summaryrefslogtreecommitdiffstats
path: root/src/PulseAudioQt/volumeobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/PulseAudioQt/volumeobject.cpp')
-rw-r--r--src/PulseAudioQt/volumeobject.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/PulseAudioQt/volumeobject.cpp b/src/PulseAudioQt/volumeobject.cpp
new file mode 100644
index 0000000..a18a12a
--- /dev/null
+++ b/src/PulseAudioQt/volumeobject.cpp
@@ -0,0 +1,70 @@
+/*
+ SPDX-FileCopyrightText: 2014-2015 Harald Sitter <sitter@kde.org>
+
+ SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
+*/
+
+#include <pulse/volume.h>
+
+#include "volumeobject.h"
+#include "volumeobject_p.h"
+
+namespace PulseAudioQt
+{
+VolumeObject::VolumeObject(QObject *parent)
+ : IndexedPulseObject(parent)
+ , d(new VolumeObjectPrivate(this))
+{
+}
+
+VolumeObjectPrivate::VolumeObjectPrivate(VolumeObject *q)
+ : q(q)
+{
+ pa_cvolume_init(&m_volume);
+}
+
+VolumeObject::~VolumeObject()
+{
+}
+
+qint64 VolumeObject::volume() const
+{
+ return pa_cvolume_max(&d->m_volume);
+}
+
+bool VolumeObject::isMuted() const
+{
+ return d->m_muted;
+}
+
+pa_cvolume VolumeObjectPrivate::cvolume() const
+{
+ return m_volume;
+}
+
+bool VolumeObject::isVolumeWritable() const
+{
+ return d->m_volumeWritable;
+}
+
+QVector<QString> VolumeObject::channels() const
+{
+ return d->m_channels;
+}
+
+QStringList VolumeObject::rawChannels() const
+{
+ return d->m_rawChannels;
+}
+
+QVector<qint64> VolumeObject::channelVolumes() const
+{
+ QVector<qint64> ret;
+ ret.reserve(d->m_volume.channels);
+ for (int i = 0; i < d->m_volume.channels; ++i) {
+ ret << d->m_volume.values[i];
+ }
+ return ret;
+}
+
+} // PulseAudioQt