summaryrefslogtreecommitdiffstats
path: root/examples
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 /examples
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>
Diffstat (limited to 'examples')
-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
9 files changed, 19 insertions, 17 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;