Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
4
#
include
"qqnxaudiodevices_p.h"
5
#
include
"qmediadevices.h"
6
#
include
"private/qcameradevice_p.h"
7
#
include
"qcameradevice.h"
8
9
#
include
"qqnxaudiosource_p.h"
10
#
include
"qqnxaudiosink_p.h"
11
#
include
"qqnxaudiodevice_p.h"
12
13
#
include
<
qdir
.
h
>
14
#
include
<
qdebug
.
h
>
15
16
QT_BEGIN_NAMESPACE
17
18
static
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
44
QQnxAudioDevices
::
QQnxAudioDevices
()
45
:
QPlatformAudioDevices
()
46
{
47
}
48
49
QList
<
QAudioDevice
>
QQnxAudioDevices
::
findAudioInputs
()
const
50
{
51
return
::enumeratePcmDevices(QAudioDevice::Input);
52
}
53
54
QList
<
QAudioDevice
>
QQnxAudioDevices
::
findAudioOutputs
()
const
55
{
56
return
::enumeratePcmDevices(QAudioDevice::Output);
57
}
58
59
QPlatformAudioSource *
QQnxAudioDevices
::createAudioSource(
const
QAudioDevice &deviceInfo,
60
const
QAudioFormat &fmt,
61
QObject *parent)
62
{
63
return
new
QQnxAudioSource
(deviceInfo, fmt, parent);
64
}
65
66
QPlatformAudioSink *
QQnxAudioDevices
::createAudioSink(
const
QAudioDevice &deviceInfo,
67
const
QAudioFormat &fmt,
68
QObject *parent)
69
{
70
return
new
QQnxAudioSink
(deviceInfo, fmt, parent);
71
}
72
73
QT_END_NAMESPACE
QDir
\inmodule QtCore
Definition
qdir.h:22
QQnxAudioDevices
Definition
qqnxaudiodevices_p.h:25
QQnxAudioDevices::QQnxAudioDevices
QQnxAudioDevices()
Definition
qqnxaudiodevices.cpp:44
QQnxAudioDevices::findAudioInputs
QList< QAudioDevice > findAudioInputs() const override
Definition
qqnxaudiodevices.cpp:49
QQnxAudioDevices::findAudioOutputs
QList< QAudioDevice > findAudioOutputs() const override
Definition
qqnxaudiodevices.cpp:54
QQnxAudioSink
Definition
qqnxaudiosink_p.h:35
QQnxAudioSource
Definition
qqnxaudiosource_p.h:32
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
enumeratePcmDevices
static QT_BEGIN_NAMESPACE QList< QAudioDevice > enumeratePcmDevices(QAudioDevice::Mode mode)
Definition
qqnxaudiodevices.cpp:18
qtmultimedia
src
multimedia
qnx
qqnxaudiodevices.cpp
Generated on
for Qt by
1.18.0