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
qcoreaudioutils_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 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
#
ifndef
QCOREAUDIOUTILS_P_H
5
#
define
QCOREAUDIOUTILS_P_H
6
7
//
8
// W A R N I N G
9
// -------------
10
//
11
// This file is not part of the Qt API. It exists purely as an
12
// implementation detail. This header file may change from version to
13
// version without notice, or even be removed.
14
//
15
// We mean it.
16
//
17
18
#
include
<
AudioUnit
/
AudioUnit
.
h
>
19
#
include
<
QtCore
/
qglobal
.
h
>
20
#
include
<
QtCore
/
qpromise
.
h
>
21
#
include
<
QtCore
/
qfuture
.
h
>
22
#
include
<
QtCore
/
qspan
.
h
>
23
#
include
<
QtCore
/
private
/
quniquehandle_p
.
h
>
24
#
include
<
QtMultimedia
/
qaudioformat
.
h
>
25
#
include
<
QtMultimedia
/
qaudiodevice
.
h
>
26
27
#
include
<
CoreAudioTypes
/
CoreAudioTypes
.
h
>
28
#
ifdef
Q_OS_MACOS
29
#
include
<
CoreAudio
/
AudioHardwareBase
.
h
>
30
#
endif
31
32
QT_BEGIN_NAMESPACE
33
34
namespace
QCoreAudioUtils
{
35
36
struct
QFreeDeleter
37
{
38
template
<
typename
T>
39
void
operator
()(T *t)
40
{
41
::free(t);
42
}
43
};
44
45
Q_MULTIMEDIA_EXPORT QAudioFormat
toPreferredQAudioFormat
(
const
AudioStreamBasicDescription
&);
46
AudioStreamBasicDescription
toAudioStreamBasicDescription
(QAudioFormat
const
&);
47
48
Q_MULTIMEDIA_EXPORT
std
::
unique_ptr
<
AudioChannelLayout
,
QFreeDeleter
>
49
toAudioChannelLayout
(
const
QAudioFormat
&
format
,
UInt32
*
size
);
50
QAudioFormat
::
ChannelConfig
fromAudioChannelLayout
(
const
AudioChannelLayout *layout);
51
52
struct
AudioUnitHandleTraits
53
{
54
using
Type
=
AudioUnit
;
55
static
Type
invalidValue
() {
return
nullptr
; }
56
static
bool
close
(Type handle) {
return
AudioComponentInstanceDispose(handle) == noErr; }
57
};
58
59
struct
AudioUnitHandle
:
QUniqueHandle
<
AudioUnitHandleTraits
>
60
{
61
using
QUniqueHandle
::
QUniqueHandle
;
62
AudioUnitHandle
(
AudioUnitHandle
&&) =
default
;
63
AudioUnitHandle
&
operator
=(
AudioUnitHandle
&&) =
default
;
64
~
AudioUnitHandle
();
65
66
bool
initialize
();
67
void
deinitialize
();
68
bool
isInitialized
()
const
{
return
m_initialized; }
69
70
private
:
71
bool
m_initialized{};
72
};
73
74
// AudioUnit helpers
75
std
::
optional
<
AudioUnitHandle
>
makeAudioUnitForIO
();
76
bool
audioUnitSetInputEnabled
(
AudioUnitHandle
&,
bool
);
77
bool
audioUnitSetOutputEnabled
(
AudioUnitHandle
&,
bool
);
78
bool
audioUnitSetInputStreamFormat
(
AudioUnitHandle
&,
AudioUnitElement
,
79
const
AudioStreamBasicDescription &);
80
bool
audioUnitSetOutputStreamFormat
(
AudioUnitHandle
&,
AudioUnitElement
,
81
const
AudioStreamBasicDescription &);
82
bool
audioUnitIsRunning
(
AudioUnitHandle
&);
83
bool
audioUnitSetRenderCallback
(
AudioUnitHandle
&, AURenderCallbackStruct &);
84
85
std
::
optional
<
AudioStreamBasicDescription
>
audioUnitGetInputStreamFormat
(
AudioUnitHandle
&,
86
AudioUnitElement
);
87
88
std
::
optional
<
int
>
audioUnitGetFramesPerSlice
(
AudioUnitHandle
&);
89
90
#
if
defined
(
Q_OS_MACOS
)
91
bool
audioUnitSetCurrentDevice
(
AudioUnitHandle
&,
AudioObjectID
);
92
std
::
optional
<
int
>
audioUnitGetFramesPerBuffer
(
AudioUnitHandle
&);
93
bool
audioObjectSetSamplingRate
(
AudioObjectID
,
int
);
94
std
::
optional
<
int
>
audioObjectGetSamplingRate
(
AudioObjectID
);
95
std
::
optional
<
int
>
audioObjectFindBestNominalSampleRate
(
AudioObjectID
,
QAudioDevice
::
Mode
,
96
int
rate
);
97
bool
audioObjectSetFramesPerBuffer
(
AudioObjectID
,
int32_t
bufferFrames
);
98
#
endif
99
100
}
// namespace QCoreAudioUtils
101
102
QT_END_NAMESPACE
103
104
#
endif
// QCOREAUDIOUTILS_P_H
QCoreAudioUtils
Definition
qcoreaudiodevices.mm:277
QCoreAudioUtils::audioUnitGetInputStreamFormat
std::optional< AudioStreamBasicDescription > audioUnitGetInputStreamFormat(AudioUnitHandle &audioUnit, AudioUnitElement element)
Definition
qcoreaudioutils.cpp:472
QCoreAudioUtils::audioUnitIsRunning
bool audioUnitIsRunning(AudioUnitHandle &audioUnit)
Definition
qcoreaudioutils.cpp:429
QCoreAudioUtils::toAudioStreamBasicDescription
AudioStreamBasicDescription toAudioStreamBasicDescription(QAudioFormat const &audioFormat)
Definition
qcoreaudioutils.cpp:47
QCoreAudioUtils::fromAudioChannelLayout
QAudioFormat::ChannelConfig fromAudioChannelLayout(const AudioChannelLayout *layout)
Definition
qcoreaudioutils.cpp:194
QCoreAudioUtils::audioUnitGetFramesPerSlice
std::optional< int > audioUnitGetFramesPerSlice(AudioUnitHandle &audioUnit)
Definition
qcoreaudioutils.cpp:459
QCoreAudioUtils::audioUnitSetInputEnabled
bool audioUnitSetInputEnabled(AudioUnitHandle &audioUnit, bool enabled)
Definition
qcoreaudioutils.cpp:266
QCoreAudioUtils::audioUnitSetInputStreamFormat
bool audioUnitSetInputStreamFormat(AudioUnitHandle &audioUnit, AudioUnitElement element, const AudioStreamBasicDescription &format)
Definition
qcoreaudioutils.cpp:304
QCoreAudioUtils::toAudioChannelLayout
std::unique_ptr< AudioChannelLayout, QFreeDeleter > toAudioChannelLayout(const QAudioFormat &format, UInt32 *size)
Definition
qcoreaudioutils.cpp:107
QCoreAudioUtils::toPreferredQAudioFormat
QAudioFormat toPreferredQAudioFormat(AudioStreamBasicDescription const &sf)
Definition
qcoreaudioutils.cpp:22
QCoreAudioUtils::audioUnitSetRenderCallback
bool audioUnitSetRenderCallback(AudioUnitHandle &audioUnit, AURenderCallbackStruct &callback)
Definition
qcoreaudioutils.cpp:445
QCoreAudioUtils::audioUnitSetOutputStreamFormat
bool audioUnitSetOutputStreamFormat(AudioUnitHandle &audioUnit, AudioUnitElement element, const AudioStreamBasicDescription &format)
Definition
qcoreaudioutils.cpp:316
QCoreAudioUtils::audioUnitSetOutputEnabled
bool audioUnitSetOutputEnabled(AudioUnitHandle &audioUnit, bool enabled)
Definition
qcoreaudioutils.cpp:278
QCoreAudioUtils::makeAudioUnitForIO
std::optional< AudioUnitHandle > makeAudioUnitForIO()
Definition
qcoreaudioutils.cpp:238
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QCoreAudioUtils::AudioUnitHandleTraits
Definition
qcoreaudioutils_p.h:53
QCoreAudioUtils::AudioUnitHandleTraits::invalidValue
static Type invalidValue()
Definition
qcoreaudioutils_p.h:55
QCoreAudioUtils::AudioUnitHandleTraits::close
static bool close(Type handle)
Definition
qcoreaudioutils_p.h:56
QCoreAudioUtils::AudioUnitHandle
Definition
qcoreaudioutils_p.h:60
QCoreAudioUtils::AudioUnitHandle::AudioUnitHandle
AudioUnitHandle(AudioUnitHandle &&)=default
QCoreAudioUtils::AudioUnitHandle::initialize
bool initialize()
Definition
qcoreaudioutils.cpp:493
QCoreAudioUtils::AudioUnitHandle::isInitialized
bool isInitialized() const
Definition
qcoreaudioutils_p.h:68
QCoreAudioUtils::AudioUnitHandle::deinitialize
void deinitialize()
Definition
qcoreaudioutils.cpp:504
QCoreAudioUtils::AudioUnitHandle::operator=
AudioUnitHandle & operator=(AudioUnitHandle &&)=default
QCoreAudioUtils::AudioUnitHandle::~AudioUnitHandle
~AudioUnitHandle()
Definition
qcoreaudioutils.cpp:488
QCoreAudioUtils::QFreeDeleter
Definition
qcoreaudioutils_p.h:37
QCoreAudioUtils::QFreeDeleter::operator()
void operator()(T *t)
Definition
qcoreaudioutils_p.h:39
qtmultimedia
src
multimedia
coreaudio
qcoreaudioutils_p.h
Generated on
for Qt by
1.18.0