QList<QAudioDeviceInfo> QAudioDeviceFactory::availableDevices(QAudio::Mode mode) { QList<QAudioDeviceInfo> devices; #ifndef QT_NO_AUDIO_BACKEND #if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(HAS_ALSA)) foreach (const QByteArray &handle, QAudioDeviceInfoInternal::availableDevices(mode)) devices << QAudioDeviceInfo(QLatin1String("builtin"), handle, mode); #endif #endif #if !defined(QT_NO_SETTINGS) QFactoryLoader* l = loader(); foreach (QString const& key, l->keys()) { QAudioEngineFactoryInterface* plugin = qobject_cast<QAudioEngineFactoryInterface*>(l->instance(key)); if (plugin) { foreach (QByteArray const& handle, plugin->availableDevices(mode)) devices << QAudioDeviceInfo(key, handle, mode); } delete plugin; } #endif return devices; }
QAudioDeviceInfo QAudioDeviceFactory::defaultOutputDevice() { QAudioEngineFactoryInterface* plugin = qobject_cast<QAudioEngineFactoryInterface*>(loader()->instance(QLatin1String("default"))); if (plugin) { QList<QByteArray> list = plugin->deviceList(QAudio::AudioOutput); if (list.size() > 0) return QAudioDeviceInfo(QLatin1String("default"), list.at(0), QAudio::AudioOutput); } #if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(HAS_ALSA)) return QAudioDeviceInfo(QLatin1String("builtin"), QAudioDeviceInfoInternal::defaultOutputDevice(), QAudio::AudioOutput); #endif return QAudioDeviceInfo(); }
QAudioDeviceInfo QAudioDeviceFactory::defaultInputDevice() { QAudioEngineFactoryInterface* plugin = qobject_cast<QAudioEngineFactoryInterface*>(loader()->instance(QLatin1String("default"))); if (plugin) { QList<QByteArray> list = plugin->availableDevices(QAudio::AudioInput); if (list.size() > 0) return QAudioDeviceInfo(QLatin1String("default"), list.at(0), QAudio::AudioInput); } #ifndef QT_NO_AUDIO_BACKEND #if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(HAS_ALSA) || defined(Q_OS_SYMBIAN)) return QAudioDeviceInfo(QLatin1String("builtin"), QAudioDeviceInfoInternal::defaultInputDevice(), QAudio::AudioInput); #endif #endif return QAudioDeviceInfo(); }
BeatController::BeatController(QAudioDeviceInfo inputDevice, uint16_t recordSize, uint32_t sampleRate, uint16_t m_bandCount, QObject *parent) : QObject(parent) { m_RecordSize = recordSize; m_Buffer = new SoundBuffer(recordSize); m_Analyser = new BeatAnalyser(m_bandCount,sampleRate,recordSize); m_inputDevice = QAudioDeviceInfo(inputDevice); m_FFT = new FFT(recordSize); m_FFT->setSoundBuffer(m_Buffer); m_Analyser->setFFT(m_FFT); QAudioFormat audioFormat; audioFormat.setSampleRate(sampleRate); audioFormat.setChannelCount(1); audioFormat.setSampleSize(16); audioFormat.setSampleType(QAudioFormat::SignedInt); audioFormat.setByteOrder(QAudioFormat::LittleEndian); audioFormat.setCodec("audio/pcm"); //QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice()); if (!m_inputDevice.isFormatSupported(audioFormat)) { qWarning() << "Default format not supported - trying to use nearest"; audioFormat = m_inputDevice.nearestFormat(audioFormat); } m_audioInput = new QAudioInput(m_inputDevice, audioFormat, this); m_ioDevice = m_audioInput->start(); connect(m_ioDevice, SIGNAL(readyRead()), this, SLOT(readAudio())); }
QAudioDeviceInfo QAudioDeviceFactory::defaultOutputDevice() { #if !defined (QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) QAudioSystemFactoryInterface* plugin = qobject_cast<QAudioSystemFactoryInterface*>(audioLoader()->instance(defaultKey())); if (plugin) { QList<QByteArray> list = plugin->availableDevices(QAudio::AudioOutput); if (list.size() > 0) return QAudioDeviceInfo(defaultKey(), list.at(0), QAudio::AudioOutput); } // if no plugin is marked as default or if the default plugin doesn't have any output device, // return the first output available from other plugins. QList<QAudioDeviceInfo> outputDevices = availableDevices(QAudio::AudioOutput); if (!outputDevices.isEmpty()) return outputDevices.first(); #endif return QAudioDeviceInfo(); }
QAudioDeviceInfo QAudioDeviceFactory::defaultOutputDevice() { #if !defined (QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) QAudioSystemFactoryInterface* plugin = qobject_cast<QAudioSystemFactoryInterface*>(audioLoader()->instance(QLatin1String("default"))); if (plugin) { QList<QByteArray> list = plugin->availableDevices(QAudio::AudioOutput); if (list.size() > 0) return QAudioDeviceInfo(QLatin1String("default"), list.at(0), QAudio::AudioOutput); } #endif QAudioDeviceInfo result; #ifndef QT_NO_AUDIO_BACKEND #if (defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(HAS_ALSA) || defined(Q_OS_SYMBIAN)) result = QAudioDeviceInfo(QLatin1String("builtin"), QAudioDeviceInfoInternal::defaultOutputDevice(), QAudio::AudioOutput); #endif #endif return result; }
QList<QAudioDeviceInfo> QAudioDeviceFactory::availableDevices(QAudio::Mode mode) { QList<QAudioDeviceInfo> devices; #if !defined (QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) QMediaPluginLoader* l = audioLoader(); foreach (const QString& key, l->keys()) { QAudioSystemFactoryInterface* plugin = qobject_cast<QAudioSystemFactoryInterface*>(l->instance(key)); if (plugin) { foreach (QByteArray const& handle, plugin->availableDevices(mode)) devices << QAudioDeviceInfo(key, handle, mode); } } #endif return devices; }
/** * ATTENTION: The default devices give a null-device at second call */ QAudioDeviceInfo Client::audioDeviceByName( QString name, QAudio::Mode mode ) { QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices( mode ); while(!devices.isEmpty()) { QAudioDeviceInfo temp = devices.takeFirst(); if(temp.deviceName() == name) { return temp; } } if( mode == QAudio::AudioInput) { return QAudioDeviceInfo::defaultInputDevice(); } else if( mode == QAudio::AudioOutput ) { return QAudioDeviceInfo::defaultOutputDevice(); } return QAudioDeviceInfo(); }
QString AudioEndpointSelector::defaultEndpoint() const { return QAudioDeviceInfo(QAudioDeviceInfo::defaultInputDevice()).deviceName(); }