summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/camera/dscameraservice.cpp
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-04-07 14:24:51 +0200
committerYoann Lopes <yoann.lopes@digia.com>2014-07-11 18:47:12 +0200
commit389d66b3ed5e2d798e9fb124064523239c393ad8 (patch)
treee297dd513433e1f2c117083af1d0b46cb625865d /src/plugins/directshow/camera/dscameraservice.cpp
parentf352e44df9907bbefe4c962a06c7a7c87516dd90 (diff)
DirectShow: Refactor camera backend.
Almost entire rewrite of the camera backend. It doesn't provide new features but is more stable and behave as it should. - Correctly report camera state and status - Correctly report if the camera is ready to capture - Emit imageExposed() signal - Save captured images in an appropriate directory - Images can be captured even without a viewport - Better error handling Removed the custom QVideoWidgetControl as it doesn't provide anything more than the QVideoWidget's renderer control fallback. Task-number: QTBUG-33782 Change-Id: I9baf6f83e7c69619f20a101921f7865a1c90d5e4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/directshow/camera/dscameraservice.cpp')
-rw-r--r--src/plugins/directshow/camera/dscameraservice.cpp41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp
index 9d99c6dd6..b8a9b4aa7 100644
--- a/src/plugins/directshow/camera/dscameraservice.cpp
+++ b/src/plugins/directshow/camera/dscameraservice.cpp
@@ -42,11 +42,6 @@
#include <QtCore/qvariant.h>
#include <QtCore/qdebug.h>
-#if defined(HAVE_WIDGETS)
-#include <QtWidgets/qwidget.h>
-#include <QVideoWidgetControl>
-#endif
-
#include "dscameraservice.h"
#include "dscameracontrol.h"
#include "dscamerasession.h"
@@ -54,28 +49,16 @@
#include "dsvideodevicecontrol.h"
#include "dsimagecapturecontrol.h"
-#if defined(HAVE_WIDGETS)
-#include "dsvideowidgetcontrol.h"
-#endif
-
QT_BEGIN_NAMESPACE
DSCameraService::DSCameraService(QObject *parent):
QMediaService(parent)
-#if defined(HAVE_WIDGETS)
- , m_viewFinderWidget(0)
- #endif
, m_videoRenderer(0)
{
m_session = new DSCameraSession(this);
-
m_control = new DSCameraControl(m_session);
-
m_videoDevice = new DSVideoDeviceControl(m_session);
-
m_imageCapture = new DSImageCaptureControl(m_session);
-
- m_device = QByteArray("default");
}
DSCameraService::~DSCameraService()
@@ -84,9 +67,6 @@ DSCameraService::~DSCameraService()
delete m_videoDevice;
delete m_videoRenderer;
delete m_imageCapture;
-#if defined(HAVE_WIDGETS)
- delete m_viewFinderWidget;
-#endif
delete m_session;
}
@@ -98,21 +78,8 @@ QMediaControl* DSCameraService::requestControl(const char *name)
if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
return m_imageCapture;
-#if defined(HAVE_WIDGETS)
- if (qstrcmp(name, QVideoWidgetControl_iid) == 0) {
- if (!m_viewFinderWidget && !m_videoRenderer) {
- m_viewFinderWidget = new DSVideoWidgetControl(m_session);
- return m_viewFinderWidget;
- }
- }
-#endif
-
if (qstrcmp(name,QVideoRendererControl_iid) == 0) {
-#if defined(HAVE_WIDGETS)
- if (!m_videoRenderer && !m_viewFinderWidget) {
-#else
if (!m_videoRenderer) {
-#endif
m_videoRenderer = new DSVideoRendererControl(m_session, this);
return m_videoRenderer;
}
@@ -131,14 +98,6 @@ void DSCameraService::releaseControl(QMediaControl *control)
m_videoRenderer = 0;
return;
}
-
-#if defined(HAVE_WIDGETS)
- if (control == m_viewFinderWidget) {
- delete m_viewFinderWidget;
- m_viewFinderWidget = 0;
- return;
- }
-#endif
}
QT_END_NAMESPACE