summaryrefslogtreecommitdiffstats
path: root/src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2010-02-03 01:50:12 (GMT)
committerAndrew den Exter <andrew.den-exter@nokia.com>2010-02-03 01:50:12 (GMT)
commit3cd93dfb61eee61523af02cfc117c53ef9ee1336 (patch)
tree84ece0e9809659e3e136602211fdc05b6512d26a /src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp
parent3c90f04c31d266a640ccf3b187d6971f7ade7500 (diff)
downloadQt-3cd93dfb61eee61523af02cfc117c53ef9ee1336.zip
Qt-3cd93dfb61eee61523af02cfc117c53ef9ee1336.tar.gz
Qt-3cd93dfb61eee61523af02cfc117c53ef9ee1336.tar.bz2
Enable building the Direct Show plugin without the Window Media SDK.
Diffstat (limited to 'src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp')
-rw-r--r--src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp b/src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp
index 7335e3d..e95ddcd 100644
--- a/src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp
+++ b/src/plugins/mediaservices/directshow/mediaplayer/directshowmetadatacontrol.cpp
@@ -52,6 +52,7 @@
QT_BEGIN_NAMESPACE
+#ifndef QT_NO_WMSDK
namespace
{
struct QWMMetaDataKeyLookup
@@ -227,11 +228,14 @@ static QVariant getValue(IWMHeaderInfo *header, const wchar_t *key)
}
return QVariant();
}
+#endif
DirectShowMetaDataControl::DirectShowMetaDataControl(QObject *parent)
: QMetaDataControl(parent)
, m_content(0)
+#ifndef QT_NO_WMSDK
, m_headerInfo(0)
+#endif
{
}
@@ -246,13 +250,18 @@ bool DirectShowMetaDataControl::isWritable() const
bool DirectShowMetaDataControl::isMetaDataAvailable() const
{
+#ifndef QT_NO_WMSDK
return m_content || m_headerInfo;
+#else
+ return m_content;
+#endif
}
QVariant DirectShowMetaDataControl::metaData(QtMedia::MetaData key) const
{
QVariant value;
+#ifndef QT_NO_WMSDK
if (m_headerInfo) {
static const int count = sizeof(qt_wmMetaDataKeys) / sizeof(QWMMetaDataKeyLookup);
for (int i = 0; i < count; ++i) {
@@ -262,6 +271,9 @@ QVariant DirectShowMetaDataControl::metaData(QtMedia::MetaData key) const
}
}
} else if (m_content) {
+#else
+ if (m_content) {
+#endif
BSTR string = 0;
switch (key) {
@@ -321,16 +333,19 @@ void DirectShowMetaDataControl::updateGraph(IFilterGraph2 *graph, IBaseFilter *s
if (m_content)
m_content->Release();
- if (m_headerInfo)
- m_headerInfo->Release();
-
if (!graph || graph->QueryInterface(
IID_IAMMediaContent, reinterpret_cast<void **>(&m_content)) != S_OK) {
m_content = 0;
}
- m_headerInfo = com_cast<IWMHeaderInfo>(source);
+#ifdef QT_NO_WMSDK
+ Q_UNUSED(source);
+#else
+ if (m_headerInfo)
+ m_headerInfo->Release();
+ m_headerInfo = com_cast<IWMHeaderInfo>(source);
+#endif
// DirectShowMediaPlayerService holds a lock at this point so defer emitting signals to a later
// time.
QCoreApplication::postEvent(this, new QEvent(QEvent::Type(MetaDataChanged)));
@@ -342,7 +357,11 @@ void DirectShowMetaDataControl::customEvent(QEvent *event)
event->accept();
emit metaDataChanged();
+#ifndef QT_NO_WMSDK
emit metaDataAvailableChanged(m_content || m_headerInfo);
+#else
+ emit metaDataAvailableChanged(m_content);
+#endif
} else {
QMetaDataControl::customEvent(event);
}