17#include <private/qaudiosystem_p.h>
20#include <AudioUnit/AudioUnit.h>
21#include <CoreAudio/CoreAudioTypes.h>
22#include <AudioToolbox/AudioToolbox.h>
24#include <QtCore/QIODevice>
25#include <QtCore/QWaitCondition>
26#include <QtCore/QMutex>
27#include <QtCore/QTimer>
56 AudioStreamBasicDescription m_streamDescription;
57 AudioBufferList *m_bufferList;
65 bool feed(AudioBufferList&
dst, UInt32& packetCount);
69 UInt32 m_totalPackets;
81 AudioStreamBasicDescription
const& inputFormat,
82 AudioStreamBasicDescription
const& outputFormat,
91 AudioUnitRenderActionFlags *ioActionFlags,
92 const AudioTimeStamp *inTimeStamp,
94 UInt32 inNumberFrames);
103 void flush(
bool all =
false);
131 AudioConverterRef m_audioConverter;
132 AudioStreamBasicDescription m_inputFormat;
133 AudioStreamBasicDescription m_outputFormat;
137 const static OSStatus as_empty =
'qtem';
140 static OSStatus converterCallback(AudioConverterRef inAudioConverter,
141 UInt32 *ioNumberDataPackets,
142 AudioBufferList *ioData,
143 AudioStreamPacketDescription **outDataPacketDescription,
190 void deviceStoppped();
201 void audioThreadStart();
202 void audioThreadStop();
204 void audioDeviceStop();
205 void audioDeviceActive();
206 void audioDeviceFull();
207 void audioDeviceError();
213 static OSStatus inputCallback(
void *inRefCon,
214 AudioUnitRenderActionFlags *ioActionFlags,
215 const AudioTimeStamp *inTimeStamp,
217 UInt32 inNumberFrames,
218 AudioBufferList *ioData);
223 int m_periodSizeBytes;
224 int m_internalBufferSize;
228 AudioUnit m_audioUnit;
229#if defined(Q_OS_MACOS)
230 AudioDeviceID m_audioDeviceId;
237 AudioStreamBasicDescription m_streamFormat;
238 AudioStreamBasicDescription m_deviceFormat;
IOBluetoothDevice * device
The QAudioDevice class provides an information about audio devices and their functionality.
QCoreAudioBufferList(AudioStreamBasicDescription const &streamFormat)
AudioBufferList * audioBufferList() const
int frameCount(int buffer=0) const
qint64 bufferSize(int buffer=0) const
int packetCount(int buffer=0) const
QCoreAudioPacketFeeder(QCoreAudioBufferList *abl)
bool feed(AudioBufferList &dst, UInt32 &packetCount)
qint64 renderFromDevice(AudioUnit audioUnit, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames)
qint64 readBytes(char *data, qint64 len)
QDarwinAudioSourceBuffer(int bufferSize, int maxPeriodSize, AudioStreamBasicDescription const &inputFormat, AudioStreamBasicDescription const &outputFormat, QObject *parent)
~QDarwinAudioSourceBuffer()
void flush(bool all=false)
void setFlushDevice(QIODevice *device)
bool isSequential() const
Returns true if this device is sequential; otherwise returns false.
QDarwinAudioSourceDevice(QDarwinAudioSourceBuffer *audioBuffer, QObject *parent)
qint64 writeData(const char *data, qint64 len)
Writes up to maxSize bytes from data to the device.
QDarwinAudioSource(const QAudioDevice &device, QObject *parent)
qsizetype bufferSize() const
void setVolume(qreal volume)
qint64 processedUSecs() const
qsizetype bytesReady() const
QAudio::Error error() const
void setBufferSize(qsizetype value)
void setFormat(const QAudioFormat &format)
QAudioFormat format() const
QAudio::State state() const
\inmodule QtCore \reentrant
void unlock() noexcept
Unlocks the mutex.
void lock() noexcept
Locks the mutex.
QObject * parent() const
Returns a pointer to the parent object.
bool wait(QMutex *, QDeadlineTimer=QDeadlineTimer(QDeadlineTimer::Forever))
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLsizei const GLfloat * v
[13]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei GLsizei GLenum format