diff options
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/android/qandroidmediadevices.cpp | 4 | ||||
-rw-r--r-- | src/multimedia/darwin/qdarwinmediadevices.mm | 4 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformmediadevices.cpp | 23 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformmediadevices_p.h | 29 | ||||
-rw-r--r-- | src/multimedia/platform/qplatformvideodevices.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/qmediadevices.cpp | 14 | ||||
-rw-r--r-- | src/multimedia/windows/qwindowsmediadevices.cpp | 4 |
7 files changed, 25 insertions, 55 deletions
diff --git a/src/multimedia/android/qandroidmediadevices.cpp b/src/multimedia/android/qandroidmediadevices.cpp index 9e45479a5..022e758da 100644 --- a/src/multimedia/android/qandroidmediadevices.cpp +++ b/src/multimedia/android/qandroidmediadevices.cpp @@ -43,12 +43,12 @@ QPlatformAudioSink *QAndroidMediaDevices::createAudioSink(const QAudioDevice &de void QAndroidMediaDevices::forwardAudioOutputsChanged() { - audioOutputsChanged(); + emit audioOutputsChanged(); } void QAndroidMediaDevices::forwardAudioInputsChanged() { - audioInputsChanged(); + emit audioInputsChanged(); } static void onAudioInputDevicesUpdated(JNIEnv */*env*/, jobject /*thiz*/) diff --git a/src/multimedia/darwin/qdarwinmediadevices.mm b/src/multimedia/darwin/qdarwinmediadevices.mm index 1a9dbe218..3ab7e6c05 100644 --- a/src/multimedia/darwin/qdarwinmediadevices.mm +++ b/src/multimedia/darwin/qdarwinmediadevices.mm @@ -238,7 +238,7 @@ void QDarwinMediaDevices::onInputsUpdated() auto inputs = availableAudioDevices(QAudioDevice::Input); if (m_cachedAudioInputs != inputs) { m_cachedAudioInputs = inputs; - audioInputsChanged(); + emit audioInputsChanged(); } } @@ -247,7 +247,7 @@ void QDarwinMediaDevices::onOutputsUpdated() auto outputs = availableAudioDevices(QAudioDevice::Output); if (m_cachedAudioOutputs != outputs) { m_cachedAudioOutputs = outputs; - audioOutputsChanged(); + emit audioOutputsChanged(); } } diff --git a/src/multimedia/platform/qplatformmediadevices.cpp b/src/multimedia/platform/qplatformmediadevices.cpp index 95cf3b7a0..09c26a670 100644 --- a/src/multimedia/platform/qplatformmediadevices.cpp +++ b/src/multimedia/platform/qplatformmediadevices.cpp @@ -132,27 +132,8 @@ QPlatformAudioSink *QPlatformMediaDevices::audioOutputDevice(const QAudioFormat return p; } -void QPlatformMediaDevices::audioInputsChanged() const -{ - const auto devices = allMediaDevices(); - for (auto m : devices) - emit m->audioInputsChanged(); -} - -void QPlatformMediaDevices::audioOutputsChanged() const -{ - const auto devices = allMediaDevices(); - for (auto m : devices) - emit m->audioOutputsChanged(); -} - -void QPlatformMediaDevices::videoInputsChanged() const -{ - const auto devices = allMediaDevices(); - for (auto m : devices) - emit m->videoInputsChanged(); -} - void QPlatformMediaDevices::prepareAudio() { } QT_END_NAMESPACE + +#include "moc_qplatformmediadevices_p.cpp" diff --git a/src/multimedia/platform/qplatformmediadevices_p.h b/src/multimedia/platform/qplatformmediadevices_p.h index 9b8d0d5e7..d475495d1 100644 --- a/src/multimedia/platform/qplatformmediadevices_p.h +++ b/src/multimedia/platform/qplatformmediadevices_p.h @@ -17,10 +17,10 @@ #include <private/qtmultimediaglobal_p.h> #include <qlist.h> +#include <qobject.h> QT_BEGIN_NAMESPACE -class QObject; class QMediaDevices; class QAudioDevice; class QCameraDevice; @@ -29,11 +29,12 @@ class QPlatformAudioSink; class QAudioFormat; class QPlatformMediaIntegration; -class Q_MULTIMEDIA_EXPORT QPlatformMediaDevices +class Q_MULTIMEDIA_EXPORT QPlatformMediaDevices : public QObject { + Q_OBJECT public: QPlatformMediaDevices(); - virtual ~QPlatformMediaDevices(); + ~QPlatformMediaDevices() override; static void setDevices(QPlatformMediaDevices *); static QPlatformMediaDevices *instance(); @@ -49,26 +50,12 @@ public: QPlatformAudioSink *audioOutputDevice(const QAudioFormat &format, const QAudioDevice &deviceInfo, QObject *parent); - void addMediaDevices(QMediaDevices *m) - { - m_devices.append(m); - } - void removeMediaDevices(QMediaDevices *m) - { - m_devices.removeAll(m); - } - - QList<QMediaDevices *> allMediaDevices() const { return m_devices; } - - void videoInputsChanged() const; - virtual void prepareAudio(); -protected: - void audioInputsChanged() const; - void audioOutputsChanged() const; - - QList<QMediaDevices *> m_devices; +Q_SIGNALS: + void audioInputsChanged(); + void audioOutputsChanged(); + void videoInputsChanged(); }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/qplatformvideodevices.cpp b/src/multimedia/platform/qplatformvideodevices.cpp index 9d2fc3c31..e556bb899 100644 --- a/src/multimedia/platform/qplatformvideodevices.cpp +++ b/src/multimedia/platform/qplatformvideodevices.cpp @@ -13,7 +13,7 @@ QPlatformVideoDevices::~QPlatformVideoDevices() void QPlatformVideoDevices::videoInputsChanged() { - QPlatformMediaDevices::instance()->videoInputsChanged(); + emit QPlatformMediaDevices::instance()->videoInputsChanged(); } QT_END_NAMESPACE diff --git a/src/multimedia/qmediadevices.cpp b/src/multimedia/qmediadevices.cpp index d8486e603..7302d3d98 100644 --- a/src/multimedia/qmediadevices.cpp +++ b/src/multimedia/qmediadevices.cpp @@ -247,17 +247,19 @@ QCameraDevice QMediaDevices::defaultVideoInput() QMediaDevices::QMediaDevices(QObject *parent) : QObject(parent) { - QPlatformMediaDevices::instance()->addMediaDevices(this); + auto platformDevices = QPlatformMediaDevices::instance(); + connect(platformDevices, &QPlatformMediaDevices::videoInputsChanged, this, + &QMediaDevices::videoInputsChanged); + connect(platformDevices, &QPlatformMediaDevices::audioInputsChanged, this, + &QMediaDevices::audioInputsChanged); + connect(platformDevices, &QPlatformMediaDevices::audioOutputsChanged, this, + &QMediaDevices::audioOutputsChanged); } /*! \internal */ -QMediaDevices::~QMediaDevices() -{ - QPlatformMediaDevices::instance()->removeMediaDevices(this); -} - +QMediaDevices::~QMediaDevices() = default; QT_END_NAMESPACE diff --git a/src/multimedia/windows/qwindowsmediadevices.cpp b/src/multimedia/windows/qwindowsmediadevices.cpp index a7e54daf5..1358c317b 100644 --- a/src/multimedia/windows/qwindowsmediadevices.cpp +++ b/src/multimedia/windows/qwindowsmediadevices.cpp @@ -125,9 +125,9 @@ public: { // windowsMediaDevice may be deleted as we are executing the callback if (flow == EDataFlow::eCapture) { - m_windowsMediaDevices->audioInputsChanged(); + emit m_windowsMediaDevices->audioInputsChanged(); } else if (flow == EDataFlow::eRender) { - m_windowsMediaDevices->audioOutputsChanged(); + emit m_windowsMediaDevices->audioOutputsChanged(); } } |