4#ifndef QWASMWEBAUDIOSINK_P_H
5#define QWASMWEBAUDIOSINK_P_H
18#include <private/qaudiosystem_p.h>
21#include <emscripten/val.h>
29class QWasmAudioSinkDevice;
39 void start(QIODevice *device) override;
41 void start(AudioCallback &&callback)
override;
59 void start(
bool pullMode);
61 void connectWorklet();
62 void writeToRingBuffer(
const char *data,
int bytes);
63 void teardownPipeline();
77 std::atomic<quint64> m_processed{0};
78 bool m_workletModuleLoaded =
false;
84 QByteArray m_ringBuffer;
85 std::atomic<
int> m_writePos{0};
86 std::atomic<
int> m_readPos{0};
87 std::atomic<
float> m_volumeAtomic{1.0f};
89 QIODevice *m_device =
nullptr;
90 bool m_pullMode =
false;
91 bool m_running =
false;
92 bool m_suspended =
false;
93 std::optional<AudioCallback> m_audioCallback;
94 qsizetype m_bufferSize = 0;
95 std::string m_deviceId;
The QAudioDevice class provides an information about audio devices and their functionality.
The QCameraDevice class provides general information about camera devices.
QPlatformAudioSink * createAudioSink(const QAudioDevice &, const QAudioFormat &, QObject *parent) override
QList< QAudioDevice > findAudioOutputs() const override
QList< QAudioDevice > findAudioInputs() const override
QPlatformAudioSource * createAudioSource(const QAudioDevice &, const QAudioFormat &, QObject *parent) override
void connectNotify(const QMetaMethod &signal) override
QLatin1String backendName() const override
QIODevice * start() override
void start(AudioCallback &&callback) override
QAudio::State state() const override
qsizetype bufferSize() const override
void setBufferSize(qsizetype value) override
qsizetype bytesFree() const override
void setVolume(float volume) override
qint64 processedUSecs() const override
static void deliverDataCallback(int callbackId)
bool hasCallbackAPI() override
~QWasmAudioSink() override
static void workletReadyCallback(int callbackId)
static void workletReadyCallback(int callbackId)
qint64 processedUSecs() const override
QAudio::State state() const override
QIODevice * start() override
qsizetype bufferSize() const override
~QWasmAudioSource() override
void setBufferSize(qsizetype value) override
void start(QIODevice *device) override
void setVolume(float volume) override
qint64 readFromBuffer(char *data, qint64 maxlen)
static void audioDataCallback(int callbackId)
qsizetype bytesReady() const override
void connectNotify(const QMetaMethod &signal) override
QList< QCameraDevice > findVideoInputs() const override
Combined button and popup list for selecting options.