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
qplatformmediadevices.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 "qcameradevice.h"
7#include "qaudiosystem_p.h"
8#include "qaudiodevice.h"
10
11#if defined(Q_OS_ANDROID)
13#elif defined(Q_OS_DARWIN)
15#elif defined(Q_OS_WINDOWS) && QT_CONFIG(wmf)
17#elif QT_CONFIG(alsa)
18#include <qalsamediadevices_p.h>
19#elif QT_CONFIG(pulseaudio)
21#elif defined(Q_OS_QNX)
22#include <qqnxmediadevices_p.h>
23#elif defined(Q_OS_WASM)
24#include <private/qwasmmediadevices_p.h>
25#endif
26
27
29
30std::unique_ptr<QPlatformMediaDevices> QPlatformMediaDevices::create()
31{
32#ifdef Q_OS_DARWIN
33 return std::make_unique<QDarwinMediaDevices>();
34#elif defined(Q_OS_WINDOWS) && QT_CONFIG(wmf)
35 return std::make_unique<QWindowsMediaDevices>();
36#elif defined(Q_OS_ANDROID)
37 return std::make_unique<QAndroidMediaDevices>();
38#elif QT_CONFIG(alsa)
39 return std::make_unique<QAlsaMediaDevices>();
40#elif QT_CONFIG(pulseaudio)
41 return std::make_unique<QPulseAudioMediaDevices>();
42#elif defined(Q_OS_QNX)
43 return std::make_unique<QQnxMediaDevices>();
44#elif defined(Q_OS_WASM)
45 return std::make_unique<QWasmMediaDevices>();
46#else
47 return std::make_unique<QPlatformMediaDevices>();
48#endif
49}
50
52
54{
55 // Make sure we are notified if video inputs changed
56 if (const auto videoDevices = QPlatformMediaIntegration::instance()->videoDevices())
59}
60
62
63QList<QAudioDevice> QPlatformMediaDevices::audioInputs() const
64{
65 return {};
66}
67
68QList<QAudioDevice> QPlatformMediaDevices::audioOutputs() const
69{
70 return {};
71}
72
81
83 const QAudioDevice &deviceInfo,
84 QObject *parent)
85{
86 QAudioDevice info = deviceInfo;
87 if (info.isNull())
88 info = audioInputs().value(0);
89
90 QPlatformAudioSource* p = !info.isNull() ? createAudioSource(info, parent) : nullptr;
91 if (p)
92 p->setFormat(format);
93 return p;
94}
95
97 const QAudioDevice &deviceInfo,
98 QObject *parent)
99{
100 QAudioDevice info = deviceInfo;
101 if (info.isNull())
102 info = audioOutputs().value(0);
103
104 QPlatformAudioSink* p = !info.isNull() ? createAudioSink(info, parent) : nullptr;
105 if (p)
106 p->setFormat(format);
107 return p;
108}
109
111
113
114#include "moc_qplatformmediadevices_p.cpp"
The QAudioDevice class provides an information about audio devices and their functionality.
The QAudioFormat class stores audio stream parameter information.
\inmodule QtCore
Definition qobject.h:103
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
virtual QList< QAudioDevice > audioOutputs() const
virtual QPlatformAudioSource * createAudioSource(const QAudioDevice &, QObject *parent)
~QPlatformMediaDevices() override
QPlatformAudioSink * audioOutputDevice(const QAudioFormat &format, const QAudioDevice &deviceInfo, QObject *parent)
virtual QPlatformAudioSink * createAudioSink(const QAudioDevice &, QObject *parent)
virtual QList< QAudioDevice > audioInputs() const
static std::unique_ptr< QPlatformMediaDevices > create()
QPlatformAudioSource * audioInputDevice(const QAudioFormat &format, const QAudioDevice &deviceInfo, QObject *parent)
static QPlatformMediaIntegration * instance()
Combined button and popup list for selecting options.
@ UniqueConnection
GLint GLsizei GLsizei GLenum format
GLfloat GLfloat p
[1]
QHostInfo info
[0]