summaryrefslogtreecommitdiffstats
path: root/src/multimedia/android/qandroidaudiodevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/android/qandroidaudiodevice.cpp')
-rw-r--r--src/multimedia/android/qandroidaudiodevice.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/multimedia/android/qandroidaudiodevice.cpp b/src/multimedia/android/qandroidaudiodevice.cpp
new file mode 100644
index 000000000..576774fd8
--- /dev/null
+++ b/src/multimedia/android/qandroidaudiodevice.cpp
@@ -0,0 +1,39 @@
+// 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
+
+#include "qandroidaudiodevice_p.h"
+
+#include "qopenslesengine_p.h"
+
+QT_BEGIN_NAMESPACE
+
+QOpenSLESDeviceInfo::QOpenSLESDeviceInfo(const QByteArray &device, const QString &desc, QAudioDevice::Mode mode)
+ : QAudioDevicePrivate(device, mode),
+ m_engine(QOpenSLESEngine::instance())
+{
+ description = desc;
+
+ auto channels = m_engine->supportedChannelCounts(mode);
+ if (channels.size()) {
+ minimumChannelCount = channels.first();
+ maximumChannelCount = channels.last();
+ }
+
+ auto sampleRates = m_engine->supportedSampleRates(mode);
+ if (sampleRates.size()) {
+ minimumSampleRate = sampleRates.first();
+ maximumSampleRate = sampleRates.last();
+ }
+ if (mode == QAudioDevice::Input)
+ supportedSampleFormats.append(QAudioFormat::UInt8);
+ supportedSampleFormats.append(QAudioFormat::Int16);
+
+ preferredFormat.setChannelCount(2);
+ preferredFormat.setSampleRate(48000);
+ QAudioFormat::SampleFormat f = QAudioFormat::Int16;
+ if (!supportedSampleFormats.contains(f))
+ f = supportedSampleFormats.value(0, QAudioFormat::Unknown);
+ preferredFormat.setSampleFormat(f);
+}
+
+QT_END_NAMESPACE