diff options
author | Artem Dyomin <artem.dyomin@qt.io> | 2022-11-04 15:04:03 +0100 |
---|---|---|
committer | Artem Dyomin <artem.dyomin@qt.io> | 2022-11-07 13:40:42 +0100 |
commit | 2466273b5b60227427ccca20680542dea9fe581d (patch) | |
tree | c9a735a79a41849a5ac8d7635e6a05e402719e8e /tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp | |
parent | fe2e90b6e3b61671b94c9e517ce736fba995f3ef (diff) |
Add audio listeners for macOS and cleanup code
QMediaDevices doc says:
The default device can change during the runtime of the application.
The audioInputsChanged/audioOutputsChanged signal
is emitted in this case.
What's done:
- add listening of properties kAudioHardwarePropertyDefaultOutputDevice
and kAudioHardwarePropertyDefaultInputDevice in order to handle
default input/output changes.
- cleanup a mess of defines in qdarwinmediadevices.mm
- some refactoring with code improving.
Task-number: QTBUG-108020
Pick-to: 6.4
Change-Id: I35aec4f9da9755036141a70f5ce48f6db73d8148
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Diffstat (limited to 'tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp')
-rw-r--r-- | tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp b/tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp index e4554084a..0bdbf88dd 100644 --- a/tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp +++ b/tests/auto/integration/qaudiodevice/tst_qaudiodevice.cpp @@ -52,7 +52,9 @@ void tst_QAudioDevice::checkAvailableDefaultInput() // Only perform tests if audio input device exists! QList<QAudioDevice> devices = QMediaDevices::audioInputs(); if (devices.size() > 0) { - QVERIFY(!QMediaDevices::defaultAudioInput().isNull()); + auto defaultInput = QMediaDevices::defaultAudioInput(); + QVERIFY(!defaultInput.isNull()); + QCOMPARE(std::count(devices.begin(), devices.end(), defaultInput), 1); } } @@ -61,7 +63,9 @@ void tst_QAudioDevice::checkAvailableDefaultOutput() // Only perform tests if audio input device exists! QList<QAudioDevice> devices = QMediaDevices::audioOutputs(); if (devices.size() > 0) { - QVERIFY(!QMediaDevices::defaultAudioOutput().isNull()); + auto defaultOutput = QMediaDevices::defaultAudioOutput(); + QVERIFY(!defaultOutput.isNull()); + QCOMPARE(std::count(devices.begin(), devices.end(), defaultOutput), 1); } } |