summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-04-14 15:20:19 +0200
committerLars Knoll <lars.knoll@qt.io>2021-04-19 11:06:39 +0000
commit45861b09e330d76b1663fa2f809dd1de0740699e (patch)
tree6f6bd12b5bd58940cf7ec738ffacbef3a5bcc6d5
parentb43c44e3e5aa89f076ba2846c30ca2edc435c741 (diff)
Make QMediaDeviceManager available to QML
This required some changes to the QMediaDeviceManager API, namely that it can be instantiated itself. Add required API as properties to QMediaDeviceManager and expose QAudioDeviceInfo and QCameraInfo as well. Change-Id: I4f7ef04d703f84cc6caefd62ad453f166e3b1c9b Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--examples/multimedia/audiodevices/audiodevices.cpp10
-rw-r--r--examples/multimedia/audiodevices/audiodevices.h2
-rw-r--r--examples/multimedia/audioinput/audioinput.cpp2
-rw-r--r--examples/multimedia/audiooutput/audiooutput.cpp2
-rw-r--r--examples/multimedia/audiorecorder/audiorecorder.cpp4
-rw-r--r--examples/multimedia/devices/main.cpp7
-rw-r--r--examples/multimedia/spectrum/app/engine.cpp2
-rw-r--r--examples/multimediawidgets/camera/camera.cpp5
-rw-r--r--examples/multimediawidgets/camera/camera.h2
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo.h6
-rw-r--r--src/multimedia/camera/qcamerainfo.h6
-rw-r--r--src/multimedia/platform/darwin/qdarwindevicemanager.mm12
-rw-r--r--src/multimedia/platform/gstreamer/qgstreamerdevicemanager.cpp20
-rw-r--r--src/multimedia/platform/qplatformmediadevicemanager.cpp19
-rw-r--r--src/multimedia/platform/qplatformmediadevicemanager_p.h18
-rw-r--r--src/multimedia/qmediadevicemanager.cpp30
-rw-r--r--src/multimedia/qmediadevicemanager.h11
-rw-r--r--src/multimediaquick/qtmultimediaquicktypes_p.h22
-rw-r--r--tests/auto/integration/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp10
19 files changed, 116 insertions, 74 deletions
diff --git a/examples/multimedia/audiodevices/audiodevices.cpp b/examples/multimedia/audiodevices/audiodevices.cpp
index f49f1cb22..ed25fc52a 100644
--- a/examples/multimedia/audiodevices/audiodevices.cpp
+++ b/examples/multimedia/audiodevices/audiodevices.cpp
@@ -80,7 +80,8 @@ AudioDevicesBase::~AudioDevicesBase() = default;
AudioTest::AudioTest(QWidget *parent)
- : AudioDevicesBase(parent)
+ : AudioDevicesBase(parent),
+ m_manager(new QMediaDeviceManager(this))
{
connect(testButton, &QPushButton::clicked, this, &AudioTest::test);
connect(modeBox, QOverload<int>::of(&QComboBox::activated), this, &AudioTest::modeChanged);
@@ -89,8 +90,8 @@ AudioTest::AudioTest(QWidget *parent)
connect(channelsSpinBox, &QSpinBox::valueChanged, this, &AudioTest::channelChanged);
connect(sampleFormatBox, QOverload<int>::of(&QComboBox::activated), this, &AudioTest::sampleFormatChanged);
connect(populateTableButton, &QPushButton::clicked, this, &AudioTest::populateTable);
- connect(QMediaDeviceManager::instance(), &QMediaDeviceManager::audioInputsChanged, this, &AudioTest::updateAudioDevices);
- connect(QMediaDeviceManager::instance(), &QMediaDeviceManager::audioOutputsChanged, this, &AudioTest::updateAudioDevices);
+ connect(m_manager, &QMediaDeviceManager::audioInputsChanged, this, &AudioTest::updateAudioDevices);
+ connect(m_manager, &QMediaDeviceManager::audioOutputsChanged, this, &AudioTest::updateAudioDevices);
modeBox->setCurrentIndex(0);
modeChanged(0);
@@ -124,8 +125,7 @@ void AudioTest::test()
void AudioTest::updateAudioDevices()
{
deviceBox->clear();
- auto *deviceManager = QMediaDeviceManager::instance();
- const auto devices = m_mode == QAudio::AudioInput ? deviceManager->audioInputs() : deviceManager->audioOutputs();
+ const auto devices = m_mode == QAudio::AudioInput ? m_manager->audioInputs() : m_manager->audioOutputs();
for (auto &deviceInfo: devices)
deviceBox->addItem(deviceInfo.description(), QVariant::fromValue(deviceInfo));
}
diff --git a/examples/multimedia/audiodevices/audiodevices.h b/examples/multimedia/audiodevices/audiodevices.h
index 31ec479df..17d8d4888 100644
--- a/examples/multimedia/audiodevices/audiodevices.h
+++ b/examples/multimedia/audiodevices/audiodevices.h
@@ -52,6 +52,7 @@
#define AUDIODEVICES_H
#include <QAudioDeviceInfo>
+#include <QMediaDeviceManager>
#include <QMainWindow>
#include <QObject>
@@ -75,6 +76,7 @@ private:
QAudioDeviceInfo m_deviceInfo;
QAudioFormat m_settings;
QAudio::Mode m_mode = QAudio::AudioInput;
+ QMediaDeviceManager *m_manager = nullptr;
private slots:
void updateAudioDevices();
diff --git a/examples/multimedia/audioinput/audioinput.cpp b/examples/multimedia/audioinput/audioinput.cpp
index 40303340f..a13f58c2c 100644
--- a/examples/multimedia/audioinput/audioinput.cpp
+++ b/examples/multimedia/audioinput/audioinput.cpp
@@ -147,7 +147,7 @@ void RenderArea::setLevel(qreal value)
InputTest::InputTest()
- : m_deviceManager(QMediaDeviceManager::instance())
+ : m_deviceManager(new QMediaDeviceManager(this))
{
initializeWindow();
initializeAudio(m_deviceManager->defaultAudioInput());
diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp
index 971972cab..42b4c1bf2 100644
--- a/examples/multimedia/audiooutput/audiooutput.cpp
+++ b/examples/multimedia/audiooutput/audiooutput.cpp
@@ -141,7 +141,7 @@ qint64 Generator::bytesAvailable() const
}
AudioTest::AudioTest()
- : m_deviceManager(QMediaDeviceManager::instance()),
+ : m_deviceManager(new QMediaDeviceManager(this)),
m_pushTimer(new QTimer(this))
{
initializeWindow();
diff --git a/examples/multimedia/audiorecorder/audiorecorder.cpp b/examples/multimedia/audiorecorder/audiorecorder.cpp
index 04f72c304..0df27294c 100644
--- a/examples/multimedia/audiorecorder/audiorecorder.cpp
+++ b/examples/multimedia/audiorecorder/audiorecorder.cpp
@@ -77,11 +77,9 @@ AudioRecorder::AudioRecorder()
// this, &AudioRecorder::processBuffer);
// m_probe->setSource(m_audioRecorder);
- QMediaDeviceManager *manager = QMediaDeviceManager::instance();
-
//audio devices
ui->audioDeviceBox->addItem(tr("Default"), QVariant(QString()));
- for (auto device: manager->audioInputs()) {
+ for (auto device: QMediaDeviceManager::audioInputs()) {
auto name = device.description();
ui->audioDeviceBox->addItem(name, QVariant::fromValue(device));
}
diff --git a/examples/multimedia/devices/main.cpp b/examples/multimedia/devices/main.cpp
index ab10a8a45..d1bfca542 100644
--- a/examples/multimedia/devices/main.cpp
+++ b/examples/multimedia/devices/main.cpp
@@ -161,10 +161,9 @@ int main()
{
QTextStream out(stdout);
- auto *deviceManager = QMediaDeviceManager::instance();
- const auto audioInputDevices = deviceManager->audioInputs();
- const auto audioOutputDevices = deviceManager->audioOutputs();
- const auto videoInputDevices = deviceManager->videoInputs();
+ const auto audioInputDevices = QMediaDeviceManager::audioInputs();
+ const auto audioOutputDevices = QMediaDeviceManager::audioOutputs();
+ const auto videoInputDevices = QMediaDeviceManager::videoInputs();
out << "Audio devices detected: " << Qt::endl;
out << Qt::endl << "Input" << Qt::endl;
diff --git a/examples/multimedia/spectrum/app/engine.cpp b/examples/multimedia/spectrum/app/engine.cpp
index 81cc104c1..42828fa5f 100644
--- a/examples/multimedia/spectrum/app/engine.cpp
+++ b/examples/multimedia/spectrum/app/engine.cpp
@@ -81,7 +81,7 @@ Engine::Engine(QObject *parent)
: QObject(parent)
, m_mode(QAudio::AudioInput)
, m_state(QAudio::StoppedState)
- , m_deviceManager(QMediaDeviceManager::instance())
+ , m_deviceManager(new QMediaDeviceManager(this))
, m_generateTone(false)
, m_file(nullptr)
, m_analysisFile(nullptr)
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index 69445a29f..cf211534e 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -67,7 +67,8 @@
#include <QMediaDeviceManager>
#include <QMediaFormat>
-Camera::Camera() : ui(new Ui::Camera)
+Camera::Camera()
+ : ui(new Ui::Camera)
{
ui->setupUi(this);
@@ -76,7 +77,7 @@ Camera::Camera() : ui(new Ui::Camera)
videoDevicesGroup = new QActionGroup(this);
videoDevicesGroup->setExclusive(true);
updateCameras();
- connect(QMediaDeviceManager::instance(), &QMediaDeviceManager::videoInputsChanged, this, &Camera::updateCameras);
+ connect(&m_manager, &QMediaDeviceManager::videoInputsChanged, this, &Camera::updateCameras);
connect(videoDevicesGroup, &QActionGroup::triggered, this, &Camera::updateCameraDevice);
connect(ui->captureWidget, &QTabWidget::currentChanged, this, &Camera::updateCaptureMode);
diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h
index c443fc195..3a17233b2 100644
--- a/examples/multimediawidgets/camera/camera.h
+++ b/examples/multimediawidgets/camera/camera.h
@@ -57,6 +57,7 @@
#include <QScopedPointer>
#include <QMediaMetaData>
#include <QMediaCaptureSession>
+#include <QMediaDeviceManager>
#include <QMainWindow>
@@ -129,6 +130,7 @@ private:
QActionGroup *videoDevicesGroup = nullptr;
+ QMediaDeviceManager m_manager;
QMediaCaptureSession m_captureSession;
QScopedPointer<QCamera> m_camera;
QCameraImageCapture *m_imageCapture;
diff --git a/src/multimedia/audio/qaudiodeviceinfo.h b/src/multimedia/audio/qaudiodeviceinfo.h
index 6029d244c..561717590 100644
--- a/src/multimedia/audio/qaudiodeviceinfo.h
+++ b/src/multimedia/audio/qaudiodeviceinfo.h
@@ -57,6 +57,11 @@ QT_BEGIN_NAMESPACE
class QAudioDeviceInfoPrivate;
class Q_MULTIMEDIA_EXPORT QAudioDeviceInfo
{
+ Q_GADGET
+ Q_PROPERTY(QByteArray id READ id CONSTANT)
+ Q_PROPERTY(QString description READ description CONSTANT)
+ Q_PROPERTY(bool isDefault READ isDefault CONSTANT)
+ // Q_PROPERTY(QAudio::Mode isDefault READ isDefault CONSTANT) ### Move enum into this class?
public:
QAudioDeviceInfo();
QAudioDeviceInfo(const QAudioDeviceInfo& other);
@@ -87,7 +92,6 @@ public:
Range supportedChannelCounts() const;
QList<QAudioFormat::SampleFormat> supportedSampleFormats() const;
-
const QAudioDeviceInfoPrivate *handle() const { return d.get(); }
private:
friend class QAudioDeviceInfoPrivate;
diff --git a/src/multimedia/camera/qcamerainfo.h b/src/multimedia/camera/qcamerainfo.h
index 6577bbbfb..fe7540d80 100644
--- a/src/multimedia/camera/qcamerainfo.h
+++ b/src/multimedia/camera/qcamerainfo.h
@@ -68,6 +68,12 @@ private:
class QCameraInfoPrivate;
class Q_MULTIMEDIA_EXPORT QCameraInfo
{
+ Q_GADGET
+ Q_PROPERTY(QByteArray id READ id CONSTANT)
+ Q_PROPERTY(QString description READ description CONSTANT)
+ Q_PROPERTY(bool isDefault READ isDefault CONSTANT)
+ Q_PROPERTY(Position position READ position CONSTANT)
+ Q_ENUMS(Position)
public:
QCameraInfo();
QCameraInfo(const QCameraInfo& other);
diff --git a/src/multimedia/platform/darwin/qdarwindevicemanager.mm b/src/multimedia/platform/darwin/qdarwindevicemanager.mm
index e699268cc..4a6a9a484 100644
--- a/src/multimedia/platform/darwin/qdarwindevicemanager.mm
+++ b/src/multimedia/platform/darwin/qdarwindevicemanager.mm
@@ -306,9 +306,7 @@ void QDarwinDeviceManager::updateCameraDevices()
if (cameras != m_cameraDevices) {
m_cameraDevices = cameras;
- auto *m = deviceManager();
- if (m)
- m->videoInputsChanged();
+ videoInputsChanged();
}
}
@@ -316,20 +314,16 @@ void QDarwinDeviceManager::updateCameraDevices()
void QDarwinDeviceManager::updateAudioDevices()
{
#ifdef Q_OS_MACOS
- auto *m = deviceManager();
-
QList<QAudioDeviceInfo> inputs = availableAudioDevices(QAudio::AudioInput);
if (m_audioInputs != inputs) {
m_audioInputs = inputs;
- if (m)
- m->audioInputsChanged();
+ audioInputsChanged();
}
QList<QAudioDeviceInfo> outputs = availableAudioDevices(QAudio::AudioOutput);
if (m_audioOutputs!= outputs) {
m_audioOutputs = outputs;
- if (m)
- m->audioOutputsChanged();
+ audioOutputsChanged();
}
#endif
}
diff --git a/src/multimedia/platform/gstreamer/qgstreamerdevicemanager.cpp b/src/multimedia/platform/gstreamer/qgstreamerdevicemanager.cpp
index 4cde85fc3..678603c6e 100644
--- a/src/multimedia/platform/gstreamer/qgstreamerdevicemanager.cpp
+++ b/src/multimedia/platform/gstreamer/qgstreamerdevicemanager.cpp
@@ -199,22 +199,18 @@ QAbstractAudioOutput *QGstreamerDeviceManager::createAudioOutputDevice(const QAu
void QGstreamerDeviceManager::addDevice(GstDevice *device)
{
- auto *m = deviceManager();
gchar *type = gst_device_get_device_class(device);
// qDebug() << "adding device:" << device << type << gst_device_get_display_name(device) << gst_structure_to_string(gst_device_get_properties(device));
gst_object_ref(device);
if (!strcmp(type, "Video/Source")) {
m_videoSources.insert(device);
- if (m)
- emit m->videoInputsChanged();
+ videoInputsChanged();
} else if (!strcmp(type, "Audio/Source")) {
m_audioSources.insert(device);
- if (m)
- emit m->audioInputsChanged();
+ audioInputsChanged();
} else if (!strcmp(type, "Audio/Sink")) {
m_audioSinks.insert(device);
- if (m)
- emit m->audioOutputsChanged();
+ audioOutputsChanged();
} else {
gst_object_unref(device);
}
@@ -223,17 +219,13 @@ void QGstreamerDeviceManager::addDevice(GstDevice *device)
void QGstreamerDeviceManager::removeDevice(GstDevice *device)
{
- auto *m = deviceManager();
// qDebug() << "removing device:" << device << gst_device_get_display_name(device);
if (m_videoSources.remove(device)) {
- if (m)
- emit m->videoInputsChanged();
+ videoInputsChanged();
} else if (m_audioSources.remove(device)) {
- if (m)
- emit m->audioInputsChanged();
+ audioInputsChanged();
} else if (m_audioSinks.remove(device)) {
- if (m)
- emit m->audioOutputsChanged();
+ audioOutputsChanged();
}
gst_object_unref(device);
diff --git a/src/multimedia/platform/qplatformmediadevicemanager.cpp b/src/multimedia/platform/qplatformmediadevicemanager.cpp
index 53ae652f6..f2a0d4f4e 100644
--- a/src/multimedia/platform/qplatformmediadevicemanager.cpp
+++ b/src/multimedia/platform/qplatformmediadevicemanager.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "qplatformmediadevicemanager_p.h"
+#include "qmediadevicemanager.h"
#include "qaudiodeviceinfo.h"
#include "qcamerainfo.h"
#include "qaudiosystem_p.h"
@@ -102,5 +103,23 @@ QAbstractAudioOutput* QPlatformMediaDeviceManager::audioOutputDevice(const QAudi
return p;
}
+void QPlatformMediaDeviceManager::audioInputsChanged() const
+{
+ for (auto m : m_deviceManagers)
+ emit m->audioInputsChanged();
+}
+
+void QPlatformMediaDeviceManager::audioOutputsChanged() const
+{
+ for (auto m : m_deviceManagers)
+ emit m->audioOutputsChanged();
+}
+
+void QPlatformMediaDeviceManager::videoInputsChanged() const
+{
+ for (auto m : m_deviceManagers)
+ emit m->videoInputsChanged();
+}
+
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qplatformmediadevicemanager_p.h b/src/multimedia/platform/qplatformmediadevicemanager_p.h
index 9a8af446c..d46a908a6 100644
--- a/src/multimedia/platform/qplatformmediadevicemanager_p.h
+++ b/src/multimedia/platform/qplatformmediadevicemanager_p.h
@@ -52,6 +52,7 @@
//
#include <private/qtmultimediaglobal_p.h>
+#include <qlist.h>
QT_BEGIN_NAMESPACE
@@ -81,15 +82,22 @@ public:
QAbstractAudioInput *audioInputDevice(const QAudioFormat &format, const QAudioDeviceInfo &deviceInfo);
QAbstractAudioOutput *audioOutputDevice(const QAudioFormat &format, const QAudioDeviceInfo &deviceInfo);
- QMediaDeviceManager *deviceManager() const { return m_manager; }
- void setDeviceManager(QMediaDeviceManager *m)
+ void addDeviceManager(QMediaDeviceManager *m)
{
- Q_ASSERT(!m_manager);
- m_manager = m;
+ m_deviceManagers.append(m);
}
+ void removeDeviceManager(QMediaDeviceManager *m)
+ {
+ m_deviceManagers.removeAll(m);
+ }
+
+protected:
+ void audioInputsChanged() const;
+ void audioOutputsChanged() const;
+ void videoInputsChanged() const;
private:
- QMediaDeviceManager *m_manager = nullptr;
+ QList<QMediaDeviceManager *> m_deviceManagers;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/qmediadevicemanager.cpp b/src/multimedia/qmediadevicemanager.cpp
index d5441df83..1abaea3fe 100644
--- a/src/multimedia/qmediadevicemanager.cpp
+++ b/src/multimedia/qmediadevicemanager.cpp
@@ -50,18 +50,13 @@ class QMediaDeviceManagerPrivate
{
public:
QMediaDeviceManagerPrivate()
- : manager(new QMediaDeviceManager)
{
pmanager = QPlatformMediaIntegration::instance()->deviceManager();
- pmanager->setDeviceManager(manager);
}
~QMediaDeviceManagerPrivate()
{
- delete manager;
- manager = nullptr;
}
- QMediaDeviceManager *manager = nullptr;
QPlatformMediaDeviceManager *pmanager = nullptr;
} priv;
@@ -91,14 +86,6 @@ public:
QMediaDeviceManager is a singleton object and all getters are thread-safe.
*/
-/*!
- Returns the device manager instance.
-*/
-QMediaDeviceManager *QMediaDeviceManager::instance()
-{
- return priv.manager;
-}
-
QList<QAudioDeviceInfo> QMediaDeviceManager::audioInputs()
{
return priv.pmanager->audioInputs();
@@ -123,7 +110,7 @@ QList<QCameraInfo> QMediaDeviceManager::videoInputs()
QAudioDeviceInfo QMediaDeviceManager::defaultAudioInput()
{
const auto inputs = audioInputs();
- for (auto info : inputs)
+ for (const auto &info : inputs)
if (info.isDefault())
return info;
return inputs.value(0);
@@ -132,7 +119,7 @@ QAudioDeviceInfo QMediaDeviceManager::defaultAudioInput()
QAudioDeviceInfo QMediaDeviceManager::defaultAudioOutput()
{
const auto outputs = audioOutputs();
- for (auto info : outputs)
+ for (const auto &info : outputs)
if (info.isDefault())
return info;
return outputs.value(0);
@@ -149,7 +136,7 @@ QAudioDeviceInfo QMediaDeviceManager::defaultAudioOutput()
QCameraInfo QMediaDeviceManager::defaultVideoInput()
{
const auto inputs = videoInputs();
- for (auto info : inputs)
+ for (const auto &info : inputs)
if (info.isDefault())
return info;
return inputs.value(0);
@@ -158,12 +145,19 @@ QCameraInfo QMediaDeviceManager::defaultVideoInput()
/*!
\internal
*/
-QMediaDeviceManager::QMediaDeviceManager() = default;
+QMediaDeviceManager::QMediaDeviceManager(QObject *parent)
+ : QObject(parent)
+{
+ priv.pmanager->addDeviceManager(this);
+}
/*!
\internal
*/
-QMediaDeviceManager::~QMediaDeviceManager() = default;
+QMediaDeviceManager::~QMediaDeviceManager()
+{
+ priv.pmanager->removeDeviceManager(this);
+}
QT_END_NAMESPACE
diff --git a/src/multimedia/qmediadevicemanager.h b/src/multimedia/qmediadevicemanager.h
index 717a4bdbf..b8b4e88ab 100644
--- a/src/multimedia/qmediadevicemanager.h
+++ b/src/multimedia/qmediadevicemanager.h
@@ -53,9 +53,16 @@ class QMediaDeviceManagerPrivate;
class Q_MULTIMEDIA_EXPORT QMediaDeviceManager : public QObject
{
Q_OBJECT
+ Q_PROPERTY(QList<QAudioDeviceInfo> audioInputs READ audioInputs NOTIFY audioInputsChanged)
+ Q_PROPERTY(QList<QAudioDeviceInfo> audioOutputs READ audioOutputs NOTIFY audioOutputsChanged)
+ Q_PROPERTY(QList<QCameraInfo> videoInputs READ videoInputs NOTIFY videoInputsChanged)
+ Q_PROPERTY(QAudioDeviceInfo defaultAudioInput READ defaultAudioInput NOTIFY audioInputsChanged)
+ Q_PROPERTY(QAudioDeviceInfo defaultAudioOutput READ defaultAudioOutput NOTIFY audioOutputsChanged)
+ Q_PROPERTY(QCameraInfo defaultVideoInput READ defaultVideoInput NOTIFY videoInputsChanged)
public:
- static QMediaDeviceManager *instance();
+ QMediaDeviceManager(QObject *parent = nullptr);
+ ~QMediaDeviceManager();
static QList<QAudioDeviceInfo> audioInputs();
static QList<QAudioDeviceInfo> audioOutputs();
@@ -71,8 +78,6 @@ signals:
void videoInputsChanged();
private:
- QMediaDeviceManager();
- ~QMediaDeviceManager();
friend class QMediaDeviceManagerPrivate;
};
diff --git a/src/multimediaquick/qtmultimediaquicktypes_p.h b/src/multimediaquick/qtmultimediaquicktypes_p.h
index b7c2e9d79..8c438378b 100644
--- a/src/multimediaquick/qtmultimediaquicktypes_p.h
+++ b/src/multimediaquick/qtmultimediaquicktypes_p.h
@@ -127,10 +127,30 @@ struct QMediaMetaDataForeign
{
Q_GADGET
QML_FOREIGN(QMediaMetaData)
- QML_NAMED_ELEMENT(MediaMetaData)
+ QML_NAMED_ELEMENT(mediaMetaData)
};
+struct QMediaDeviceManagerForeign
+{
+ Q_GADGET
+ QML_SINGLETON
+ QML_FOREIGN(QMediaDeviceManager)
+ QML_NAMED_ELEMENT(MediaDeviceManager)
+};
+
+struct QAudioDeviceInfoForeign
+{
+ Q_GADGET
+ QML_FOREIGN(QAudioDeviceInfo)
+ QML_NAMED_ELEMENT(audioDeviceInfo)
+};
+struct QCameraInfoForeign
+{
+ Q_GADGET
+ QML_FOREIGN(QCameraInfo)
+ QML_NAMED_ELEMENT(cameraInfo)
+};
QT_END_NAMESPACE
diff --git a/tests/auto/integration/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp b/tests/auto/integration/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
index 44e58fa84..d5f3fc9f4 100644
--- a/tests/auto/integration/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
+++ b/tests/auto/integration/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
@@ -74,21 +74,19 @@ void tst_QAudioDeviceInfo::initTestCase()
void tst_QAudioDeviceInfo::checkAvailableDefaultInput()
{
- QMediaDeviceManager *manager = QMediaDeviceManager::instance();
// Only perform tests if audio input device exists!
- QList<QAudioDeviceInfo> devices = manager->audioInputs();
+ QList<QAudioDeviceInfo> devices = QMediaDeviceManager::audioInputs();
if (devices.size() > 0) {
- QVERIFY(!manager->defaultAudioInput().isNull());
+ QVERIFY(!QMediaDeviceManager::defaultAudioInput().isNull());
}
}
void tst_QAudioDeviceInfo::checkAvailableDefaultOutput()
{
- QMediaDeviceManager *manager = QMediaDeviceManager::instance();
// Only perform tests if audio input device exists!
- QList<QAudioDeviceInfo> devices = manager->audioOutputs();
+ QList<QAudioDeviceInfo> devices = QMediaDeviceManager::audioOutputs();
if (devices.size() > 0) {
- QVERIFY(!manager->defaultAudioOutput().isNull());
+ QVERIFY(!QMediaDeviceManager::defaultAudioOutput().isNull());
}
}