diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2012-01-05 17:22:19 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-06 05:26:01 +0100 |
commit | c97f5f8c2e91c1b76d42583efaf232487d490060 (patch) | |
tree | 533f1142282ebce38bbf7bd4356b4341530f30be /src/plugins/directshow/camera | |
parent | bc7d964a053a3a37a0b286ee17ee15c9ef747c3e (diff) |
Properly handle the case where QtWidgets is not available.
It does use a config test for now, just to make it clearer. The Mac
backend currently requires widgets, but most of the others should work
without it (just not supporting QVideoWidget/WindowControl).
The QVideoDeviceControl interface was modified to remove the QIcon
usage - it was never implemented.
Unfortunately even the QML examples need widgets for the wrapper
application, and will need to be ported to QtGui based wrapper.
Change-Id: I8a55ad5cf09ab51749510bf16f49de0bd3f0bcdb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Diffstat (limited to 'src/plugins/directshow/camera')
-rw-r--r-- | src/plugins/directshow/camera/camera.pri | 10 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscameraservice.cpp | 13 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscameraservice.h | 2 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideodevicecontrol.cpp | 8 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideodevicecontrol.h | 1 |
5 files changed, 20 insertions, 14 deletions
diff --git a/src/plugins/directshow/camera/camera.pri b/src/plugins/directshow/camera/camera.pri index 42f5999a2..3067497bd 100644 --- a/src/plugins/directshow/camera/camera.pri +++ b/src/plugins/directshow/camera/camera.pri @@ -13,19 +13,21 @@ HEADERS += \ $$PWD/dsvideodevicecontrol.h \ $$PWD/dsimagecapturecontrol.h \ $$PWD/dscamerasession.h \ - $$PWD/dsvideowidgetcontrol.h \ $$PWD/dscameraservice.h \ $$PWD/directshowglobal.h - SOURCES += \ $$PWD/dscameraservice.cpp \ $$PWD/dscameracontrol.cpp \ $$PWD/dsvideorenderer.cpp \ $$PWD/dsvideodevicecontrol.cpp \ $$PWD/dsimagecapturecontrol.cpp \ - $$PWD/dscamerasession.cpp \ - $$PWD/dsvideowidgetcontrol.cpp + $$PWD/dscamerasession.cpp + +contains(config_test_widgets, yes) { + HEADERS += $$PWD/dsvideowidgetcontrol.h + SOURCES += $$PWD/dsvideowidgetcontrol.cpp +} INCLUDEPATH += $(DXSDK_DIR)/include LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32 diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp index 3b42a18d1..83ff0c965 100644 --- a/src/plugins/directshow/camera/dscameraservice.cpp +++ b/src/plugins/directshow/camera/dscameraservice.cpp @@ -41,9 +41,11 @@ #include <QtCore/qvariant.h> #include <QtCore/qdebug.h> + +#if defined(HAVE_WIDGETS) #include <QtWidgets/qwidget.h> #include <QVideoWidgetControl.h> - +#endif #include "dscameraservice.h" #include "dscameracontrol.h" @@ -51,7 +53,10 @@ #include "dsvideorenderer.h" #include "dsvideodevicecontrol.h" #include "dsimagecapturecontrol.h" + +#if defined(HAVE_WIDGETS) #include "dsvideowidgetcontrol.h" +#endif QT_BEGIN_NAMESPACE @@ -68,7 +73,9 @@ DSCameraService::DSCameraService(QObject *parent): m_imageCapture = new DSImageCaptureControl(m_session); +#if defined(HAVE_WIDGETS) m_viewFinderWidget = new DSVideoWidgetControl(m_session); +#endif m_device = QByteArray("default"); } @@ -79,7 +86,9 @@ DSCameraService::~DSCameraService() delete m_videoDevice; delete m_videoRenderer; delete m_imageCapture; +#if defined(HAVE_WIDGETS) delete m_viewFinderWidget; +#endif delete m_session; } @@ -91,11 +100,13 @@ 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) { return m_viewFinderWidget; } } +#endif if(qstrcmp(name,QVideoRendererControl_iid) == 0) return m_videoRenderer; diff --git a/src/plugins/directshow/camera/dscameraservice.h b/src/plugins/directshow/camera/dscameraservice.h index 2423801ed..2c8ef0ad6 100644 --- a/src/plugins/directshow/camera/dscameraservice.h +++ b/src/plugins/directshow/camera/dscameraservice.h @@ -74,7 +74,9 @@ private: DSCameraControl *m_control; DSCameraSession *m_session; DSVideoOutputControl *m_videoOutput; +#if defined(HAVE_WIDGETS) DSVideoWidgetControl *m_viewFinderWidget; +#endif DSVideoDeviceControl *m_videoDevice; DSVideoRendererControl *m_videoRenderer; DSImageCaptureControl *m_imageCapture; diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp index 11da5d357..1eef18b30 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp @@ -41,7 +41,6 @@ #include <QDebug> #include <QFile> -#include <QtWidgets/QIcon> #include "dsvideodevicecontrol.h" #include "dscamerasession.h" @@ -135,13 +134,6 @@ QString DSVideoDeviceControl::deviceDescription(int index) const return QString(); } -QIcon DSVideoDeviceControl::deviceIcon(int index) const -{ - Q_UNUSED(index) - - return QIcon(); -} - int DSVideoDeviceControl::defaultDevice() const { return 0; diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.h b/src/plugins/directshow/camera/dsvideodevicecontrol.h index 0711479e2..fa7e01596 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.h +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.h @@ -60,7 +60,6 @@ public: int deviceCount() const; QString deviceName(int index) const; QString deviceDescription(int index) const; - QIcon deviceIcon(int index) const; int defaultDevice() const; int selectedDevice() const; |