12#include <private/qaudiohelpers_p.h>
17#define AL_FORMAT_MONO_FLOAT32 0x10010
18#define AL_FORMAT_STEREO_FLOAT32 0x10011
36 ALCdevice *
device =
nullptr;
48void QWasmAudioSource::writeBuffer()
51 alcGetIntegerv(aldata->
device, ALC_CAPTURE_SAMPLES, 1, &
samples);
54 auto err = alcGetError(aldata->
device);
56 err = alcGetError(aldata->
device);
64 m_device->
write(m_tmpData,bytes);
72 if (
device.contains(
"Emscripten")) {
101 auto formatError = [
this](){
102 qWarning() <<
"Unsupported audio format " << m_format;
113 format = AL_FORMAT_STEREO8;
116 return formatError();
122 format = AL_FORMAT_MONO16;
125 format = AL_FORMAT_STEREO16;
128 return formatError();
140 return formatError();
144 return formatError();
149 m_tmpData =
new char[m_bufferSize];
155 alcGetError(aldata->
device);
159 auto err = alcGetError(aldata->
device);
161 qWarning() <<
"alcCaptureOpenDevice" << alcGetString(aldata->
device, err);
164 alcCaptureStart(aldata->
device);
165 m_elapsedTimer.
start();
166 auto cerr = alcGetError(aldata->
device);
168 qWarning() <<
"alcCaptureStart" << alcGetString(aldata->
device, cerr);
179 alcCaptureStop(aldata->
device);
180 alcCaptureCloseDevice(aldata->
device);
210 alcCaptureStop(aldata->
device);
219 alcCaptureStart(aldata->
device);
227 alcGetIntegerv(aldata->
device, ALC_CAPTURE_SAMPLES, 1, &
samples);
235 m_bufferSize =
value;
290 alcGetIntegerv(m_in->aldata->
device, ALC_CAPTURE_SAMPLES, 1, &
samples);
293 alcGetError(m_in->aldata->
device);
295 if (m_in->m_volume < 1)
297 auto err = alcGetError(m_in->aldata->
device);
303 m_in->m_processed += bytes;
IOBluetoothDevice * device
void errorChanged(QAudio::Error error)
char * data()
\macro QT_NO_CAST_FROM_BYTEARRAY
void invalidate() noexcept
Marks this QElapsedTimer object as invalid.
void start() noexcept
\typealias QElapsedTimer::Duration Synonym for std::chrono::nanoseconds.
\inmodule QtCore \reentrant
virtual bool open(QIODeviceBase::OpenMode mode)
Opens the device and sets its OpenMode to mode.
void readyRead()
This signal is emitted once every time new data is available for reading from the device's current re...
qint64 write(const char *data, qint64 len)
Writes at most maxSize bytes of data from data to the device.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
void deleteLater()
\threadsafe
void start(int msec)
Starts or restarts the timer with a timeout interval of msec milliseconds.
void setInterval(int msec)
void stop()
Stops the timer.
void timeout(QPrivateSignal)
This signal is emitted when the timer times out.
qint64 readData(char *data, qint64 maxlen) override
Reads up to maxSize bytes from the device into data, and returns the number of bytes read or -1 if an...
qint64 writeData(const char *data, qint64 len) override
Writes up to maxSize bytes from data to the device.
QWasmAudioSourceDevice(QWasmAudioSource *in)
qint64 processedUSecs() const override
QAudio::State state() const override
QIODevice * start() override
void setFormat(const QAudioFormat &fmt) override
qreal volume() const override
qsizetype bufferSize() const override
QWasmAudioSource(const QByteArray &device, QObject *parent)
friend class QWasmAudioSourceDevice
void setBufferSize(qsizetype value) override
QAudioFormat format() const override
void setVolume(qreal volume) override
void setError(const QAudio::Error &error)
qsizetype bytesReady() const override
QAudio::Error error() const override
void qMultiplySamples(qreal factor, const QAudioFormat &format, const void *src, void *dest, int len)
Combined button and popup list for selecting options.
DBusConnection const char DBusError * error
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
constexpr const T & qMin(const T &a, const T &b)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei GLsizei GLenum format
QVideoFrameFormat::PixelFormat fmt
#define AL_FORMAT_STEREO_FLOAT32
#define AL_FORMAT_MONO_FLOAT32
constexpr unsigned int DEFAULT_BUFFER_DURATION
constexpr unsigned int DEFAULT_BUFFER_DURATION