Revision control
++ // Copyright (C) 2021 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
++
++ #include "qwindowsmediacapture_p.h"
++
++ #include <mediacapture/qwindowscamera_p.h>
++ #include <mediacapture/qwindowsimagecapture_p.h>
++ #include <mediacapture/qwindowsmediadevicesession_p.h>
++ #include <mediacapture/qwindowsmediaencoder_p.h>
++
++ #include <QtMultimedia/qaudiodevice.h>
++ #include <QtMultimedia/qmediadevices.h>
++
++ #include <QtMultimedia/private/qplatformaudioinput_p.h>
++ #include <QtMultimedia/private/qplatformaudiooutput_p.h>
++
++ QT_BEGIN_NAMESPACE
++
++ QWindowsMediaCaptureService::QWindowsMediaCaptureService()
++ {
++ m_mediaDeviceSession = new QWindowsMediaDeviceSession(this);
++ }
++
++ QWindowsMediaCaptureService::~QWindowsMediaCaptureService()
++ {
++ delete m_mediaDeviceSession;
++ }
++
++ QPlatformCamera *QWindowsMediaCaptureService::camera()
++ {
++ return m_camera;
++ }
++
++ void QWindowsMediaCaptureService::setCamera(QPlatformCamera *camera)
++ {
++ QWindowsCamera *control = static_cast<QWindowsCamera*>(camera);
++ if (m_camera == control)
++ return;
++
++ if (m_camera)
++ m_camera->setCaptureSession(nullptr);
++
++ m_camera = control;
++ if (m_camera)
++ m_camera->setCaptureSession(this);
++ Q_EMIT cameraChanged();
++ }
++
++ QPlatformImageCapture *QWindowsMediaCaptureService::imageCapture()
++ {
++ return m_imageCapture;
++ }
++
++ void QWindowsMediaCaptureService::setImageCapture(QPlatformImageCapture *imageCapture)
++ {
++ QWindowsImageCapture *control = static_cast<QWindowsImageCapture *>(imageCapture);
++ if (m_imageCapture == control)
++ return;
++
++ if (m_imageCapture)
++ m_imageCapture->setCaptureSession(nullptr);
++
++ m_imageCapture = control;
++ if (m_imageCapture)
++ m_imageCapture->setCaptureSession(this);
++ Q_EMIT imageCaptureChanged();
++ }
++
++ QPlatformMediaRecorder *QWindowsMediaCaptureService::mediaRecorder()
++ {
++ return m_encoder;
++ }
++
++ void QWindowsMediaCaptureService::setMediaRecorder(QPlatformMediaRecorder *recorder)
++ {
++ QWindowsMediaEncoder *control = static_cast<QWindowsMediaEncoder *>(recorder);
++ if (m_encoder == control)
++ return;
++
++ if (m_encoder)
++ m_encoder->setCaptureSession(nullptr);
++
++ m_encoder = control;
++ if (m_encoder)
++ m_encoder->setCaptureSession(this);
++ Q_EMIT encoderChanged();
++ }
++
++ void QWindowsMediaCaptureService::setAudioInput(QPlatformAudioInput *input)
++ {
++ m_mediaDeviceSession->setAudioInput(input ? input->q : nullptr);
++ }
++
++ void QWindowsMediaCaptureService::setAudioOutput(QPlatformAudioOutput *output)
++ {
++ m_mediaDeviceSession->setAudioOutput(output ? output->q : nullptr);
++ }
++
++ void QWindowsMediaCaptureService::setVideoPreview(QVideoSink *sink)
++ {
++ m_mediaDeviceSession->setVideoSink(sink);
++ }
++
++ QWindowsMediaDeviceSession *QWindowsMediaCaptureService::session() const
++ {
++ return m_mediaDeviceSession;
++ }
++
++ QT_END_NAMESPACE
++
++ #include "moc_qwindowsmediacapture_p.cpp"