From a75f8fd0bb19b76a7577c695208b385381a35278 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Tue, 19 Apr 2016 12:26:45 +0200 Subject: [PATCH] winrt: Fix device watcher handling When device watcher has been started it can have the enumerationComplete state in addition to started. Hence only start the watcher if none of those two states is present. This fixes an assert where starting an already started watcher failed. Change-Id: Idc3af256845f0993a26e8d186b499ef1c7e7dacc Reviewed-by: Oliver Wolff --- src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp index cd3a7fa0..24a3a911 100644 --- a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp +++ b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp @@ -204,7 +204,8 @@ public: DeviceWatcherStatus status; hr = deviceWatcher->get_Status(&status); Q_ASSERT_SUCCEEDED(hr); - if (status != DeviceWatcherStatus_Started) { + if (status != DeviceWatcherStatus_Started && + status != DeviceWatcherStatus_EnumerationCompleted) { // We can't immediately Start() if we have just called Stop() while (status == DeviceWatcherStatus_Stopping) { QThread::yieldCurrentThread();