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
qpipewire_audiodevices.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 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
"qpipewire_audiodevices_p.h"
5
6
#
include
<
QtMultimedia
/
private
/
qpipewire_audiocontextmanager_p
.
h
>
7
#
include
<
QtMultimedia
/
private
/
qpipewire_audiosink_p
.
h
>
8
#
include
<
QtMultimedia
/
private
/
qpipewire_audiosource_p
.
h
>
9
#
include
<
QtMultimedia
/
private
/
qpipewire_instance_p
.
h
>
10
11
QT_BEGIN_NAMESPACE
12
13
namespace
QtPipeWire
{
14
15
QAudioDevices
::
QAudioDevices
()
16
{
17
Q_ASSERT(
isSupported
(
)
);
18
19
QAudioDeviceMonitor::DeviceLists deviceLists =
20
QAudioContextManager::deviceMonitor().getDeviceLists(
/*verifyThreading=*/
false
);
21
22
m_sourceDeviceList = std::move(deviceLists.sources);
23
m_sinkDeviceList = std::move(deviceLists.sinks);
24
25
connect(&QAudioContextManager::deviceMonitor(), &QAudioDeviceMonitor::audioSinksChanged,
this
,
26
[
this
](QList<QAudioDevice> sinks) {
27
m_sinkDeviceList = std::move(sinks);
28
onAudioOutputsChanged();
29
});
30
31
connect(&QAudioContextManager::deviceMonitor(), &QAudioDeviceMonitor::audioSourcesChanged,
this
,
32
[
this
](QList<QAudioDevice> sources) {
33
m_sourceDeviceList = std::move(sources);
34
onAudioInputsChanged();
35
});
36
}
37
38
bool
QAudioDevices
::
isSupported
()
39
{
40
if
(!QPipeWireInstance::isLoaded())
41
return
false
;
42
43
if
(!QAudioContextManager::minimumRequirementMet())
44
return
false
;
45
46
auto
instance = QPipeWireInstance::instance();
47
if
(!instance)
48
return
false
;
49
50
return
QAudioContextManager::instance()->isConnected();
51
}
52
53
QList
<
QAudioDevice
>
QAudioDevices
::
findAudioInputs
()
const
54
{
55
return
m_sourceDeviceList;
56
}
57
58
QList
<
QAudioDevice
>
QAudioDevices
::
findAudioOutputs
()
const
59
{
60
return
m_sinkDeviceList;
61
}
62
63
QPlatformAudioSource
*
QAudioDevices
::
createAudioSource
(
const
QAudioDevice &device,
const
QAudioFormat &format,
64
QObject *parent)
65
{
66
return
new
QPipewireAudioSource(device, format, parent);
67
}
68
69
QPlatformAudioSink
*
QAudioDevices
::
createAudioSink
(
const
QAudioDevice &device,
const
QAudioFormat &format,
70
QObject *parent)
71
{
72
return
new
QPipewireAudioSink(device, format, parent);
73
}
74
75
}
// namespace QtPipeWire
76
77
QT_END_NAMESPACE
QtPipeWire::QAudioDevices
Definition
qpipewire_audiodevices_p.h:27
QtPipeWire::QAudioDevices::createAudioSink
QPlatformAudioSink * createAudioSink(const QAudioDevice &, const QAudioFormat &, QObject *parent) override
Definition
qpipewire_audiodevices.cpp:69
QtPipeWire::QAudioDevices::createAudioSource
QPlatformAudioSource * createAudioSource(const QAudioDevice &, const QAudioFormat &, QObject *parent) override
Definition
qpipewire_audiodevices.cpp:63
QtPipeWire::QAudioDevices::isSupported
static bool isSupported()
Definition
qpipewire_audiodevices.cpp:38
QtPipeWire::QAudioDevices::QAudioDevices
QAudioDevices()
Definition
qpipewire_audiodevices.cpp:15
QtPipeWire::QAudioDevices::findAudioOutputs
QList< QAudioDevice > findAudioOutputs() const override
Definition
qpipewire_audiodevices.cpp:58
QtPipeWire::QAudioDevices::findAudioInputs
QList< QAudioDevice > findAudioInputs() const override
Definition
qpipewire_audiodevices.cpp:53
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtPipeWire
Definition
qpipewire_async_support.cpp:10
qtmultimedia
src
multimedia
pipewire
qpipewire_audiodevices.cpp
Generated on
for Qt by
1.18.0