Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqnxaudiodevices.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
6#include "private/qcameradevice_p.h"
8
12
13#include <qdir.h>
14#include <qdebug.h>
15
17
18static QList<QAudioDevice> enumeratePcmDevices(QAudioDevice::Mode mode)
19{
20 if (mode == QAudioDevice::Null)
21 return {};
22
23 QDir dir(QStringLiteral("/dev/snd"));
24
25 dir.setFilter(QDir::Files);
26 dir.setSorting(QDir::Name);
27
28 // QNX PCM devices names start with the pcm prefix and end either with the
29 // 'p' (playback) or 'c' (capture) suffix
30
31 const QChar modeSuffix = mode == QAudioDevice::Input ? u'c' : u'p';
32
33 QList<QAudioDevice> devices;
34
35 for (const QString &entry : dir.entryList()) {
36 if (entry.startsWith(QStringLiteral("pcm")) && entry.back() == modeSuffix)
37 devices << QAudioDevicePrivate::createQAudioDevice(
38 std::make_unique<QnxAudioDeviceInfo>(entry.toUtf8(), mode));
39 }
40
41 return devices;
42}
43
48
50{
51 return ::enumeratePcmDevices(QAudioDevice::Input);
52}
53
55{
56 return ::enumeratePcmDevices(QAudioDevice::Output);
57}
58
59QPlatformAudioSource *QQnxAudioDevices::createAudioSource(const QAudioDevice &deviceInfo,
60 const QAudioFormat &fmt,
61 QObject *parent)
62{
63 return new QQnxAudioSource(deviceInfo, fmt, parent);
64}
65
66QPlatformAudioSink *QQnxAudioDevices::createAudioSink(const QAudioDevice &deviceInfo,
67 const QAudioFormat &fmt,
68 QObject *parent)
69{
70 return new QQnxAudioSink(deviceInfo, fmt, parent);
71}
72
73QT_END_NAMESPACE
\inmodule QtCore
Definition qdir.h:22
QList< QAudioDevice > findAudioInputs() const override
QList< QAudioDevice > findAudioOutputs() const override
static QT_BEGIN_NAMESPACE QList< QAudioDevice > enumeratePcmDevices(QAudioDevice::Mode mode)