summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp')
-rw-r--r--src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp29
1 files changed, 5 insertions, 24 deletions
diff --git a/src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp b/src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp
index 8be1ab1e1..d5e8ecc97 100644
--- a/src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp
+++ b/src/multimedia/platform/windows/mediacapture/qwindowscamera.cpp
@@ -68,28 +68,6 @@ void QWindowsCamera::setActive(bool active)
m_mediaDeviceSession->setActive(active);
emit activeChanged(m_active);
- updateStatus();
-}
-
-QCamera::Status QWindowsCamera::status() const
-{
- if (!m_mediaDeviceSession)
- return QCamera::InactiveStatus;
-
- if (m_active)
- return m_mediaDeviceSession->isActive() ? QCamera::ActiveStatus : QCamera::StartingStatus;
-
- return m_mediaDeviceSession->isActive() ? QCamera::StoppingStatus : QCamera::InactiveStatus;
-}
-
-void QWindowsCamera::updateStatus()
-{
- QCamera::Status newStatus = status();
-
- if (m_lastStatus != newStatus) {
- m_lastStatus = newStatus;
- statusChanged(m_lastStatus);
- }
}
void QWindowsCamera::setCamera(const QCameraDevice &camera)
@@ -107,8 +85,11 @@ void QWindowsCamera::setCaptureSession(QPlatformMediaCaptureSession *session)
if (m_captureService == captureService)
return;
- if (m_mediaDeviceSession)
+ if (m_mediaDeviceSession) {
m_mediaDeviceSession->setActive(false);
+ m_mediaDeviceSession->setCameraFormat({});
+ m_mediaDeviceSession->setActiveCamera({});
+ }
m_captureService = captureService;
if (!m_captureService) {
@@ -118,7 +99,7 @@ void QWindowsCamera::setCaptureSession(QPlatformMediaCaptureSession *session)
m_mediaDeviceSession = m_captureService->session();
Q_ASSERT(m_mediaDeviceSession);
- connect(m_mediaDeviceSession, SIGNAL(activeChanged(bool)), SLOT(updateStatus()));
+ connect(m_mediaDeviceSession, SIGNAL(activeChanged(bool)), SLOT(setActive(bool)));
m_mediaDeviceSession->setActiveCamera(m_cameraDevice);
m_mediaDeviceSession->setCameraFormat(m_cameraFormat);