Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qaudioinput.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
3// GPL-3.0-only
4
5#include <qaudioinput.h>
6#include <qaudiodevice.h>
7#include <qmediadevices.h>
8#include <private/qplatformaudioinput_p.h>
9#include <private/qplatformmediaintegration_p.h>
10
11#include <utility>
12
56{
57}
58
61{
62 auto maybeAudioInput = QPlatformMediaIntegration::instance()->createAudioInput(this);
63 if (maybeAudioInput) {
64 d = maybeAudioInput.value();
67 } else {
68 d = new QPlatformAudioInput(nullptr);
69 qWarning() << "Failed to initialize QAudioInput" << maybeAudioInput.error();
70 }
71}
72
74{
75 setDisconnectFunction({});
76 delete d;
77}
78
98{
99 return d->volume;
100}
101
102void QAudioInput::setVolume(float volume)
103{
104 volume = qBound(0., volume, 1.);
105 if (d->volume == volume)
106 return;
107 d->volume = volume;
108 d->setVolume(volume);
110}
111
127{
128 return d->muted;
129}
130
131void QAudioInput::setMuted(bool muted)
132{
133 if (d->muted == muted)
134 return;
135 d->muted = muted;
136 d->setMuted(muted);
138}
139
162{
163 return d->device;
164}
165
167{
168 auto dev = device;
169 if (dev.isNull())
171 if (dev.mode() != QAudioDevice::Input)
172 return;
173 if (d->device == dev)
174 return;
175 d->device = dev;
176 d->setAudioDevice(dev);
178}
179
183void QAudioInput::setDisconnectFunction(std::function<void()> disconnectFunction)
184{
185 if (d->disconnectFunction) {
186 auto df = d->disconnectFunction;
187 d->disconnectFunction = {};
188 df();
189 }
190 d->disconnectFunction = std::move(disconnectFunction);
191}
192
193#include "moc_qaudioinput.cpp"
IOBluetoothDevice * device
The QAudioDevice class provides an information about audio devices and their functionality.
Mode mode
\qmlproperty enumeration QtMultimedia::audioDevice::mode
\qmltype AudioInput \instantiates QAudioInput
Definition qaudioinput.h:19
bool isMuted() const
bool muted
\qmlproperty bool QtMultimedia::AudioInput::muted
Definition qaudioinput.h:23
void mutedChanged(bool muted)
float volume
\qmlproperty real QtMultimedia::AudioInput::volume
Definition qaudioinput.h:22
void setMuted(bool muted)
void volumeChanged(float volume)
QAudioDevice device
\qmlproperty AudioDevice QtMultimedia::AudioInput::device
Definition qaudioinput.h:21
QAudioInput(QObject *parent=nullptr)
void deviceChanged()
void setVolume(float volume)
void setDevice(const QAudioDevice &device)
The QMediaDevices class provides information about available multimedia input and output devices.
QAudioDevice defaultAudioInput
\qmlproperty audioDevice QtMultimedia::MediaDevices::defaultAudioInput Returns the default audio inpu...
\inmodule QtCore
Definition qobject.h:90
virtual void setVolume(float)
std::function< void()> disconnectFunction
virtual void setMuted(bool)
virtual void setAudioDevice(const QAudioDevice &)
static QPlatformMediaIntegration * instance()
virtual QMaybe< QPlatformAudioInput * > createAudioInput(QAudioInput *)
#define qWarning
Definition qlogging.h:162
constexpr const T & qBound(const T &min, const T &val, const T &max)
Definition qminmax.h:44
#define emit
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent