diff options
author | Peng Wu <peng.wu@intopalo.com> | 2015-07-29 13:00:03 +0300 |
---|---|---|
committer | Andrew Knight <andrew.knight@intopalo.com> | 2015-08-10 12:12:52 +0000 |
commit | 129b06ba77e451c08778badcd54cbaf193d195bc (patch) | |
tree | 052b20dca9571bb5291445378d0a4ff29c8874a2 /src/plugins/winrt/qwinrtcameraservice.cpp | |
parent | 5cec451c10e73785c95fb236cbae7205a9a661d0 (diff) |
winrt: Add camera video probe controls
[ChangLog][multimedia][winrt] The WinRT backend now supports QVideoProbes
on camera objects.
Task-number: QTBUG-46228
Change-Id: I7850c5ec6f61e5824064d4be8afc8a0b55d05806
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Diffstat (limited to 'src/plugins/winrt/qwinrtcameraservice.cpp')
-rw-r--r-- | src/plugins/winrt/qwinrtcameraservice.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/winrt/qwinrtcameraservice.cpp b/src/plugins/winrt/qwinrtcameraservice.cpp index a4d292242..977acdcab 100644 --- a/src/plugins/winrt/qwinrtcameraservice.cpp +++ b/src/plugins/winrt/qwinrtcameraservice.cpp @@ -37,6 +37,8 @@ #include "qwinrtcameraservice.h" #include "qwinrtcameracontrol.h" #include "qwinrtcamerainfocontrol.h" +#include "qwinrtvideoprobecontrol.h" +#include "qwinrtcameravideorenderercontrol.h" #include <QtCore/QCoreApplication> #include <QtCore/qfunctions_winrt.h> @@ -47,6 +49,7 @@ #include <QtMultimedia/QImageEncoderControl> #include <QtMultimedia/QCameraFocusControl> #include <QtMultimedia/QCameraLocksControl> +#include <QtMultimedia/QMediaVideoProbeControl> QT_BEGIN_NAMESPACE @@ -98,12 +101,17 @@ QMediaControl *QWinRTCameraService::requestControl(const char *name) if (qstrcmp(name, QCameraLocksControl_iid) == 0) return d->cameraControl->cameraLocksControl(); + if (qstrcmp(name, QMediaVideoProbeControl_iid) == 0) + return new QWinRTVideoProbeControl(qobject_cast<QWinRTCameraVideoRendererControl *>(d->cameraControl->videoRenderer())); + return nullptr; } void QWinRTCameraService::releaseControl(QMediaControl *control) { - Q_UNUSED(control); + Q_ASSERT(control); + if (QWinRTVideoProbeControl *videoProbe = qobject_cast<QWinRTVideoProbeControl *>(control)) + videoProbe->deleteLater(); } QT_END_NAMESPACE |