3#ifndef IOSAUDIOOUTPUT_H
4#define IOSAUDIOOUTPUT_H
17#include <private/qaudiosystem_p.h>
19#if defined(Q_OS_MACOS)
20# include <CoreAudio/CoreAudio.h>
22#include <AudioUnit/AudioUnit.h>
23#include <CoreAudio/CoreAudioTypes.h>
25#include <QtCore/QIODevice>
26#include <QtCore/QWaitCondition>
27#include <QtCore/QMutex>
114 void deviceStopped();
124 static OSStatus renderCallback(
void *inRefCon,
125 AudioUnitRenderActionFlags *ioActionFlags,
126 const AudioTimeStamp *inTimeStamp,
128 UInt32 inNumberFrames,
129 AudioBufferList *ioData);
133 void audioThreadStart();
134 void audioThreadStop();
135 void audioThreadDrain();
136 void audioDeviceStart();
137 void audioDeviceStop();
138 void audioDeviceIdle();
139 void audioDeviceError();
147 static constexpr int DEFAULT_BUFFER_SIZE = 8 * 1024;
149 bool m_isOpen =
false;
150 int m_internalBufferSize = DEFAULT_BUFFER_SIZE;
151 int m_periodSizeBytes = 0;
155#if defined(Q_OS_MACOS)
156 AudioDeviceID m_audioDeviceId;
158 AudioUnit m_audioUnit = 0;
160 AudioStreamBasicDescription m_streamFormat;
165 qreal m_cachedVolume = 1.;
166#if defined(Q_OS_MACOS)
169 bool m_pullMode =
false;
IOBluetoothDevice * device
The QAudioDevice class provides an information about audio devices and their functionality.
qint64 readFrames(char *data, qint64 maxFrames)
~QDarwinAudioSinkBuffer()
qint64 writeBytes(const char *data, qint64 maxSize)
void setPrefetchDevice(QIODevice *device)
bool isSequential() const
Returns true if this device is sequential; otherwise returns false.
qint64 writeData(const char *data, qint64 len)
Writes up to maxSize bytes from data to the device.
void setFormat(const QAudioFormat &format)
qint64 processedUSecs() const
QAudioFormat format() const
void setBufferSize(qsizetype value)
QAudio::State state() const
QAudio::Error error() const
void setVolume(qreal volume)
qsizetype bytesFree() const
qsizetype bufferSize() const
\inmodule QtCore \reentrant
QObject * parent() const
Returns a pointer to the parent object.
State
\value ActiveState Audio data is being processed, this state is set after start() is called and while...
Error
\value NoError No errors have occurred \value OpenError An error occurred opening the audio device \v...
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei GLsizei GLenum format