From c97f5f8c2e91c1b76d42583efaf232487d490060 Mon Sep 17 00:00:00 2001 From: Michael Goddard Date: Thu, 5 Jan 2012 17:22:19 +1000 Subject: 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 --- src/plugins/directshow/player/directshowplayerservice.cpp | 12 ++++++------ src/plugins/directshow/player/directshowplayerservice.h | 4 ++-- src/plugins/directshow/player/player.pri | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'src/plugins/directshow/player') diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index 2ba142c28..ef1390fdd 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -46,7 +46,7 @@ #include "directshowmetadatacontrol.h" #include "directshowplayercontrol.h" #include "directshowvideorenderercontrol.h" -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) #include "vmr9videowindowcontrol.h" #endif @@ -83,7 +83,7 @@ DirectShowPlayerService::DirectShowPlayerService(QObject *parent) , m_playerControl(0) , m_metaDataControl(0) , m_videoRendererControl(0) -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) , m_videoWindowControl(0) #endif , m_audioEndpointControl(0) @@ -144,7 +144,7 @@ DirectShowPlayerService::~DirectShowPlayerService() delete m_audioEndpointControl; delete m_metaDataControl; delete m_videoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) delete m_videoWindowControl; #endif @@ -161,7 +161,7 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name) } else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) { return m_metaDataControl; } else if (qstrcmp(name, QVideoRendererControl_iid) == 0) { -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) if (!m_videoRendererControl && !m_videoWindowControl) { #else if (!m_videoRendererControl) { @@ -173,7 +173,7 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name) return m_videoRendererControl; } -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (qstrcmp(name, QVideoWindowControl_iid) == 0) { if (!m_videoRendererControl && !m_videoWindowControl) { m_videoWindowControl = new Vmr9VideoWindowControl; @@ -198,7 +198,7 @@ void DirectShowPlayerService::releaseControl(QMediaControl *control) delete m_videoRendererControl; m_videoRendererControl = 0; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) } else if (control == m_videoWindowControl) { setVideoOutput(0); diff --git a/src/plugins/directshow/player/directshowplayerservice.h b/src/plugins/directshow/player/directshowplayerservice.h index 0f36bdf0c..6caad5fcf 100644 --- a/src/plugins/directshow/player/directshowplayerservice.h +++ b/src/plugins/directshow/player/directshowplayerservice.h @@ -59,7 +59,7 @@ class DirectShowAudioEndpointControl; class DirectShowMetaDataControl; class DirectShowPlayerControl; class DirectShowVideoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) class Vmr9VideoWindowControl; #endif @@ -180,7 +180,7 @@ private: DirectShowPlayerControl *m_playerControl; DirectShowMetaDataControl *m_metaDataControl; DirectShowVideoRendererControl *m_videoRendererControl; -#ifndef Q_WS_SIMULATOR +#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR) Vmr9VideoWindowControl *m_videoWindowControl; #endif DirectShowAudioEndpointControl *m_audioEndpointControl; diff --git a/src/plugins/directshow/player/player.pri b/src/plugins/directshow/player/player.pri index a058b0659..c30b28362 100644 --- a/src/plugins/directshow/player/player.pri +++ b/src/plugins/directshow/player/player.pri @@ -35,11 +35,11 @@ SOURCES += \ $$PWD/mediasamplevideobuffer.cpp \ $$PWD/videosurfacefilter.cpp -!simulator { -HEADERS += \ +contains(config_test_widgets, yes):!simulator { + HEADERS += \ $$PWD/vmr9videowindowcontrol.h -SOURCES += \ + SOURCES += \ $$PWD/vmr9videowindowcontrol.cpp } -- cgit v1.2.3