Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqnxmediadevices.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
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
17
18static QList<QAudioDevice> enumeratePcmDevices(QAudioDevice::Mode mode)
19{
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 char modeSuffix = mode == QAudioDevice::Input ? 'c' : '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 << (new QnxAudioDeviceInfo(entry.toUtf8(), mode))->create();
38 }
39
40 return devices;
41}
42
47
48QList<QAudioDevice> QQnxMediaDevices::audioInputs() const
49{
50 return ::enumeratePcmDevices(QAudioDevice::Input);
51}
52
53QList<QAudioDevice> QQnxMediaDevices::audioOutputs() const
54{
55 return ::enumeratePcmDevices(QAudioDevice::Output);
56}
57
59 QObject *parent)
60{
61 return new QQnxAudioSource(deviceInfo, parent);
62}
63
65 QObject *parent)
66{
67 return new QQnxAudioSink(deviceInfo, parent);
68}
69
The QAudioDevice class provides an information about audio devices and their functionality.
Mode
Describes the mode of this device.
\inmodule QtCore
Definition qdir.h:20
@ Name
Definition qdir.h:50
@ Files
Definition qdir.h:23
\inmodule QtCore
Definition qobject.h:103
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
QPlatformAudioSink * createAudioSink(const QAudioDevice &deviceInfo, QObject *parent) override
QPlatformAudioSource * createAudioSource(const QAudioDevice &deviceInfo, QObject *parent) override
QList< QAudioDevice > audioInputs() const override
QList< QAudioDevice > audioOutputs() const override
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
Combined button and popup list for selecting options.
EGLDeviceEXT * devices
GLenum mode
GLuint entry
static QT_BEGIN_NAMESPACE QList< QAudioDevice > enumeratePcmDevices(QAudioDevice::Mode mode)
#define QStringLiteral(str)
QString dir
[11]
view create()