6#include <private/qaudiohelpers_p.h> 
   17    , m_state(
QAudio::StoppedState)
 
   19    , m_elapsedTimeOffset(0)
 
   21    , m_volume(
qreal(1.0f))
 
   25    , m_deviceInfo(deviceInfo)
 
   40    if (!m_pullMode && m_audioSource)
 
   57    if (!m_pullMode && m_audioSource)
 
   96    snd_pcm_capture_pause(m_pcmHandle.get());
 
  109    snd_pcm_capture_resume(m_pcmHandle.get());
 
  122    return qMax(m_bytesAvailable, 0);
 
  171void QQnxAudioSource::userFeed()
 
  179bool QQnxAudioSource::deviceReady()
 
  185        m_bytesAvailable = m_periodSize;
 
  188        if (m_audioSource != 0) {
 
  200bool QQnxAudioSource::open()
 
  204            qWarning(
"QQnxAudioSource: open error, invalid format.");
 
  206            qWarning(
"QQnxAudioSource: open error, invalid sample rate (%d).", m_format.
sampleRate());
 
  219    snd_pcm_plugin_set_disable(m_pcmHandle.get(), PLUGIN_MMAP);
 
  232    if ((errorCode = snd_pcm_plugin_params(m_pcmHandle.get(), &
params)) < 0) {
 
  233        qWarning(
"QQnxAudioSource: open error, couldn't set channel params (0x%x)", -errorCode);
 
  238    if ((errorCode = snd_pcm_plugin_prepare(m_pcmHandle.get(), SND_PCM_CHANNEL_CAPTURE)) < 0) {
 
  239        qWarning(
"QQnxAudioSource: open error, couldn't prepare channel (0x%x)", -errorCode);
 
  247    m_periodSize = 
qMin(2048, setup->buf.block.frag_size);
 
  249    m_elapsedTimeOffset = 0;
 
  250    m_totalTimeValue = 0;
 
  253    m_pcmNotifier = 
new QSocketNotifier(snd_pcm_file_descriptor(m_pcmHandle.get(), SND_PCM_CHANNEL_CAPTURE),
 
  260void QQnxAudioSource::close()
 
  263#if SND_PCM_VERSION < SND_PROTOCOL_VERSION('P',3,0,2) 
  264        snd_pcm_plugin_flush(m_pcmHandle.get(), SND_PCM_CHANNEL_CAPTURE);
 
  266        snd_pcm_plugin_drop(m_pcmHandle.get(), SND_PCM_CHANNEL_CAPTURE);
 
  268        m_pcmHandle = 
nullptr;
 
  272        delete m_pcmNotifier;
 
  276    if (!m_pullMode && m_audioSource) {
 
  277        delete m_audioSource;
 
  284    if (!m_pullMode && m_bytesAvailable == 0)
 
  290    const int actualRead = snd_pcm_plugin_read(m_pcmHandle.get(), tempBuffer.data(), m_periodSize);
 
  291    if (actualRead < 1) {
 
  292        snd_pcm_channel_status_t status;
 
  293        memset(&status, 0, 
sizeof(status));
 
  294        status.channel = SND_PCM_CHANNEL_CAPTURE;
 
  295        if ((errorCode = snd_pcm_plugin_status(m_pcmHandle.get(), &status)) < 0) {
 
  296            qWarning(
"QQnxAudioSource: read error, couldn't get plugin status (0x%x)", -errorCode);
 
  302        if (status.status == SND_PCM_STATUS_READY
 
  303            || status.status == SND_PCM_STATUS_OVERRUN) {
 
  304            if ((errorCode = snd_pcm_plugin_prepare(m_pcmHandle.get(), SND_PCM_CHANNEL_CAPTURE)) < 0) {
 
  305                qWarning(
"QQnxAudioSource: read error, couldn't prepare plugin (0x%x)", -errorCode);
 
  318    m_bytesRead += actualRead;
 
  321        m_audioSource->
write(tempBuffer.data(), actualRead);
 
  326    m_bytesAvailable = 0;
 
  333    if (m_state != 
state) {
 
  338    if (m_error != 
error) {
 
  345    : m_audioDevice(audio)
 
  351    return m_audioDevice->read(
data, 
len);
 
IOBluetoothDevice * device
 
The QAudioDevice class provides an information about audio devices and their functionality.
 
QByteArray id
\qmlproperty string QtMultimedia::audioDevice::id
 
\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.
 
virtual qint64 bytesAvailable() const
Returns the number of bytes that are available for reading.
 
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
 
qsizetype bytesReady() const override
 
QAudio::State state() const override
 
void setFormat(const QAudioFormat &) override
 
QAudio::Error error() const override
 
void setVolume(qreal) override
 
QIODevice * start() override
 
QQnxAudioSource(const QAudioDevice &deviceInfo, QObject *parent)
 
friend class InputPrivate
 
void setBufferSize(qsizetype) override
 
QAudioFormat format() const override
 
qsizetype bufferSize() const override
 
qreal volume() const override
 
qint64 processedUSecs() const override
 
void setEnabled(bool)
If enable is true, the notifier is enabled; otherwise the notifier is disabled.
 
void qMultiplySamples(qreal factor, const QAudioFormat &format, const void *src, void *dest, int len)
 
The QAudio namespace contains enums used by the audio classes.
 
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.
 
std::optional< snd_pcm_channel_info_t > pcmChannelInfo(snd_pcm_t *handle, QAudioDevice::Mode mode)
 
std::optional< snd_pcm_channel_setup_t > pcmChannelSetup(snd_pcm_t *handle, QAudioDevice::Mode mode)
 
HandleUniquePtr openPcmDevice(const QByteArray &id, QAudioDevice::Mode mode)
 
snd_pcm_channel_params_t formatToChannelParams(const QAudioFormat &format, QAudioDevice::Mode mode, int fragmentSize)
 
DBusConnection const char DBusError * error
 
constexpr const T & qMin(const T &a, const T &b)
 
constexpr const T & qBound(const T &min, const T &val, const T &max)
 
constexpr const T & qMax(const T &a, const T &b)
 
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
 
GLint GLsizei GLsizei GLenum format
 
GLenum GLenum GLenum input
 
QFileInfo info(fileName)
[8]
 
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent