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/gstreamer/camerabin/camerabinservice.cpp | |
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/gstreamer/camerabin/camerabinservice.cpp')
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinservice.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabinservice.cpp b/src/plugins/gstreamer/camerabin/camerabinservice.cpp index e230d40f9..a401452ff 100644 --- a/src/plugins/gstreamer/camerabin/camerabinservice.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinservice.cpp @@ -61,16 +61,18 @@ #include "qgstreameraudioinputendpointselector.h" #include "qgstreamervideoinputdevicecontrol.h" +#if defined(HAVE_WIDGETS) #include "qgstreamervideooverlay.h" #include "qgstreamervideowindow.h" +#include "qgstreamervideowidget.h" +#endif + #include "qgstreamervideorenderer.h" #if defined(Q_WS_MAEMO_6) && defined(__arm__) #include "qgstreamergltexturerenderer.h" #endif -#include "qgstreamervideowidget.h" - #include <qmediaserviceprovider.h> #include <QtCore/qdebug.h> @@ -92,9 +94,11 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent): m_videoOutput = 0; m_videoRenderer = 0; +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) m_videoWindow = 0; m_videoWidgetControl = 0; - m_imageCaptureControl = 0; +#endif + m_imageCaptureControl = 0; if (service == Q_MEDIASERVICE_CAMERA) { m_captureSession = new CameraBinSession(this); @@ -106,29 +110,24 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent): m_captureSession, SLOT(setDevice(QString))); if (m_videoInputDevice->deviceCount()) - m_captureSession->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice())); + m_captureSession->setDevice(m_videoInputDevice->deviceName(m_videoInputDevice->selectedDevice())); -#if defined(Q_WS_MAEMO_6) && defined(__arm__) +#if defined(Q_WS_MAEMO_6) && defined(__arm__) && defined(HAVE_WIDGETS) m_videoRenderer = new QGstreamerGLTextureRenderer(this); #else m_videoRenderer = new QGstreamerVideoRenderer(this); #endif -#ifdef HAVE_XVIDEO - +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) #ifdef Q_WS_MAEMO_6 m_videoWindow = new QGstreamerVideoWindow(this, "omapxvsink"); - //m_videoWindow = new QGstreamerVideoWindow(this); #else m_videoWindow = new QGstreamerVideoOverlay(this); #endif - m_videoWidgetControl = new QGstreamerVideoWidgetControl(this); - #endif } - if (!m_captureSession) { qWarning() << Q_FUNC_INFO << "Service type is not supported:" << service; return; @@ -163,11 +162,14 @@ QMediaControl *CameraBinService::requestControl(const char *name) if (!m_videoOutput) { if (qstrcmp(name, QVideoRendererControl_iid) == 0) { m_videoOutput = m_videoRenderer; - } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { + } +#if defined(HAVE_XVIDEO) && defined(HAVE_WIDGETS) + else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { m_videoOutput = m_videoWindow; } else if (qstrcmp(name, QVideoWidgetControl_iid) == 0) { m_videoOutput = m_videoWidgetControl; } +#endif if (m_videoOutput) { m_captureSession->setViewfinder(m_videoOutput); |