QtCraft API C++ classes QML types Handbook

QcSystemAudio Class

The system's audio through Qt Multimedia: devices from QMediaDevices, and the sink on an audio thread of its own (QcAudioSinkHost), so a stalled GUI thread does not interrupt the sound. More...

Header: #include <audio/QcSystemAudio.h>
Inherits: QcAudioPlatform

Public Functions

QcSystemAudio(QObject *parent = nullptr)
QcSystemAudio(const QcSystemAudio &)
QcSystemAudio(QcSystemAudio &&)
QcSystemAudio &operator=(QcSystemAudio &&)
QcSystemAudio &operator=(const QcSystemAudio &)

Reimplemented Public Functions

virtual void close() override
virtual QByteArray defaultOutput() const override
virtual std::optional<QcAudioPlatform::Format> format(const QByteArray &device, int keepRate) const override
virtual QcAudioPlatform::Opened open(const QByteArray &device, const QcAudioPlatform::Format &format, const QcMixerDevice::Render &render) override
virtual QList<QcAudioPlatform::Device> outputs() const override
virtual void watchOutputs(bool watch) override

Static Public Members

const int bufferMilliseconds

Detailed Description

Lives in the GUI thread; open() and close() wait for the audio thread.

Member Function Documentation

[explicit] QcSystemAudio::QcSystemAudio(QObject *parent = nullptr)

The system's audio, child of parent; the audio thread starts with the first sink.

[delete] QcSystemAudio::QcSystemAudio(const QcSystemAudio &)

Copy-constructs an instance of QcSystemAudio. This function is deleted.

[delete] QcSystemAudio::QcSystemAudio(QcSystemAudio &&)

Move-constructs an instance of QcSystemAudio. This function is deleted.

[override virtual] void QcSystemAudio::close()

Reimplements: QcAudioPlatform::close().

[override virtual] QByteArray QcSystemAudio::defaultOutput() const

Reimplements: QcAudioPlatform::defaultOutput() const.

[override virtual] std::optional<QcAudioPlatform::Format> QcSystemAudio::format(const QByteArray &device, int keepRate) const

Reimplements: QcAudioPlatform::format(const QByteArray &device, int keepRate) const.

[override virtual] QcAudioPlatform::Opened QcSystemAudio::open(const QByteArray &device, const QcAudioPlatform::Format &format, const QcMixerDevice::Render &render)

Reimplements: QcAudioPlatform::open(const QByteArray &device, const QcAudioPlatform::Format &format, const QcMixerDevice::Render &render).

[override virtual] QList<QcAudioPlatform::Device> QcSystemAudio::outputs() const

Reimplements: QcAudioPlatform::outputs() const.

[override virtual] void QcSystemAudio::watchOutputs(bool watch)

Reimplements: QcAudioPlatform::watchOutputs(bool watch).

[delete] QcSystemAudio &QcSystemAudio::operator=(QcSystemAudio &&)

Move-assigns other to this QcSystemAudio instance. This function is deleted.

[delete] QcSystemAudio &QcSystemAudio::operator=(const QcSystemAudio &)

Copy-assigns other to this QcSystemAudio instance. This function is deleted.

Member Variable Documentation

const int QcSystemAudio::bufferMilliseconds

Audio the sink keeps buffered: short enough for direct feedback, long enough to ride out a slow frame.