diff options
Diffstat (limited to 'src/plugins/opensles')
-rw-r--r-- | src/plugins/opensles/qopenslesaudiooutput.cpp | 4 | ||||
-rw-r--r-- | src/plugins/opensles/qopenslesengine.cpp | 6 | ||||
-rw-r--r-- | src/plugins/opensles/qopenslesengine.h | 1 | ||||
-rw-r--r-- | src/plugins/opensles/qopenslesplugin.cpp | 5 | ||||
-rw-r--r-- | src/plugins/opensles/qopenslesplugin.h | 7 |
5 files changed, 18 insertions, 5 deletions
diff --git a/src/plugins/opensles/qopenslesaudiooutput.cpp b/src/plugins/opensles/qopenslesaudiooutput.cpp index 47006ed34..70d77a380 100644 --- a/src/plugins/opensles/qopenslesaudiooutput.cpp +++ b/src/plugins/opensles/qopenslesaudiooutput.cpp @@ -48,8 +48,6 @@ #endif // ANDROID #define BUFFER_COUNT 2 -#define EBASE 2.302585093 -#define LOG10(x) qLn(x)/qreal(EBASE) QT_BEGIN_NAMESPACE @@ -723,7 +721,7 @@ inline SLmillibel QOpenSLESAudioOutput::adjustVolume(qreal vol) if (qFuzzyCompare(vol, qreal(1.0))) return 0; - return 20 * LOG10(vol) * 100; // I.e., 20 * LOG10(SL_MILLIBEL_MAX * vol / SL_MILLIBEL_MAX) + return QAudio::convertVolume(vol, QAudio::LinearVolumeScale, QAudio::DecibelVolumeScale) * 100; } QT_END_NAMESPACE diff --git a/src/plugins/opensles/qopenslesengine.cpp b/src/plugins/opensles/qopenslesengine.cpp index 0cbd10887..1a16cc2a3 100644 --- a/src/plugins/opensles/qopenslesengine.cpp +++ b/src/plugins/opensles/qopenslesengine.cpp @@ -101,6 +101,12 @@ SLDataFormat_PCM QOpenSLESEngine::audioFormatToSLFormatPCM(const QAudioFormat &f } +QByteArray QOpenSLESEngine::defaultDevice(QAudio::Mode mode) const +{ + const auto &devices = availableDevices(mode); + return !devices.isEmpty() ? devices.first() : QByteArray(); +} + QList<QByteArray> QOpenSLESEngine::availableDevices(QAudio::Mode mode) const { QList<QByteArray> devices; diff --git a/src/plugins/opensles/qopenslesengine.h b/src/plugins/opensles/qopenslesengine.h index 364b3ef60..c36b21488 100644 --- a/src/plugins/opensles/qopenslesengine.h +++ b/src/plugins/opensles/qopenslesengine.h @@ -62,6 +62,7 @@ public: static SLDataFormat_PCM audioFormatToSLFormatPCM(const QAudioFormat &format); + QByteArray defaultDevice(QAudio::Mode mode) const; QList<QByteArray> availableDevices(QAudio::Mode mode) const; QList<int> supportedChannelCounts(QAudio::Mode mode) const; QList<int> supportedSampleRates(QAudio::Mode mode) const; diff --git a/src/plugins/opensles/qopenslesplugin.cpp b/src/plugins/opensles/qopenslesplugin.cpp index 8f89d044d..9a2fbbf79 100644 --- a/src/plugins/opensles/qopenslesplugin.cpp +++ b/src/plugins/opensles/qopenslesplugin.cpp @@ -52,6 +52,11 @@ QOpenSLESPlugin::QOpenSLESPlugin(QObject *parent) { } +QByteArray QOpenSLESPlugin::defaultDevice(QAudio::Mode mode) const +{ + return m_engine->defaultDevice(mode); +} + QList<QByteArray> QOpenSLESPlugin::availableDevices(QAudio::Mode mode) const { return m_engine->availableDevices(mode); diff --git a/src/plugins/opensles/qopenslesplugin.h b/src/plugins/opensles/qopenslesplugin.h index 2a967b27e..d45a47923 100644 --- a/src/plugins/opensles/qopenslesplugin.h +++ b/src/plugins/opensles/qopenslesplugin.h @@ -40,22 +40,25 @@ #ifndef QOPENSLESPLUGIN_H #define QOPENSLESPLUGIN_H -#include <qaudiosystemplugin.h> +#include <QtMultimedia/qaudiosystemplugin.h> +#include <QtMultimedia/private/qaudiosystempluginext_p.h> QT_BEGIN_NAMESPACE class QOpenSLESEngine; -class QOpenSLESPlugin : public QAudioSystemPlugin +class QOpenSLESPlugin : public QAudioSystemPlugin, public QAudioSystemPluginExtension { Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.qt.audiosystemfactory/5.0" FILE "opensles.json") + Q_INTERFACES(QAudioSystemPluginExtension) public: QOpenSLESPlugin(QObject *parent = 0); ~QOpenSLESPlugin() {} + QByteArray defaultDevice(QAudio::Mode mode) const; QList<QByteArray> availableDevices(QAudio::Mode mode) const; QAbstractAudioInput *createInput(const QByteArray &device); QAbstractAudioOutput *createOutput(const QByteArray &device); |