summaryrefslogtreecommitdiffstats
path: root/src/plugins/winrt/qwinrtcameraservice.cpp
diff options
context:
space:
mode:
authorPeng Wu <peng.wu@intopalo.com>2015-07-29 13:00:03 +0300
committerAndrew Knight <andrew.knight@intopalo.com>2015-08-10 12:12:52 +0000
commit129b06ba77e451c08778badcd54cbaf193d195bc (patch)
tree052b20dca9571bb5291445378d0a4ff29c8874a2 /src/plugins/winrt/qwinrtcameraservice.cpp
parent5cec451c10e73785c95fb236cbae7205a9a661d0 (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.cpp10
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