summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudiodevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qaudiodevice.h')
-rw-r--r--src/multimedia/audio/qaudiodevice.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/multimedia/audio/qaudiodevice.h b/src/multimedia/audio/qaudiodevice.h
new file mode 100644
index 000000000..abd1b654c
--- /dev/null
+++ b/src/multimedia/audio/qaudiodevice.h
@@ -0,0 +1,84 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+
+#ifndef QAUDIODEVICEINFO_H
+#define QAUDIODEVICEINFO_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qbytearray.h>
+#include <QtCore/qstring.h>
+#include <QtCore/qstringlist.h>
+#include <QtCore/qlist.h>
+
+#include <QtMultimedia/qtmultimediaglobal.h>
+
+#include <QtMultimedia/qtaudio.h>
+#include <QtMultimedia/qaudioformat.h>
+
+QT_BEGIN_NAMESPACE
+
+class QAudioDevicePrivate;
+QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QAudioDevicePrivate, Q_MULTIMEDIA_EXPORT)
+
+class Q_MULTIMEDIA_EXPORT QAudioDevice
+{
+ Q_GADGET
+ Q_PROPERTY(QByteArray id READ id CONSTANT)
+ Q_PROPERTY(QString description READ description CONSTANT)
+ Q_PROPERTY(bool isDefault READ isDefault CONSTANT)
+ Q_PROPERTY(Mode mode READ mode CONSTANT)
+public:
+ enum Mode {
+ Null,
+ Input,
+ Output
+ };
+ Q_ENUM(Mode)
+
+ QAudioDevice();
+ QAudioDevice(const QAudioDevice& other);
+ ~QAudioDevice();
+
+ QAudioDevice(QAudioDevice &&other) noexcept = default;
+ QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QAudioDevice)
+ void swap(QAudioDevice &other) noexcept
+ { d.swap(other.d); }
+
+ QAudioDevice& operator=(const QAudioDevice& other);
+
+ bool operator==(const QAudioDevice &other) const;
+ bool operator!=(const QAudioDevice &other) const;
+
+ bool isNull() const;
+
+ QByteArray id() const;
+ QString description() const;
+
+ bool isDefault() const;
+ QAudioDevice::Mode mode() const;
+
+ bool isFormatSupported(const QAudioFormat &format) const;
+ QAudioFormat preferredFormat() const;
+
+ int minimumSampleRate() const;
+ int maximumSampleRate() const;
+ int minimumChannelCount() const;
+ int maximumChannelCount() const;
+ QList<QAudioFormat::SampleFormat> supportedSampleFormats() const;
+ QAudioFormat::ChannelConfig channelConfiguration() const;
+
+ const QAudioDevicePrivate *handle() const { return d.get(); }
+private:
+ friend class QAudioDevicePrivate;
+ QAudioDevice(QAudioDevicePrivate *p);
+ QExplicitlySharedDataPointer<QAudioDevicePrivate> d;
+};
+
+#ifndef QT_NO_DEBUG_STREAM
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudioDevice::Mode mode);
+#endif
+
+QT_END_NAMESPACE
+
+#endif // QAUDIODEVICEINFO_H