diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-01-16 16:40:47 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-20 06:30:37 +0100 |
commit | 8ff5b88b27b83438bfe576eea824a4a4d47249ce (patch) | |
tree | 1ccb1b0114ec8371ac44a0ab68535c50f8e4e604 /src/plugins/wmf/player/mfmetadatacontrol.cpp | |
parent | 382ba7d4f4c1ca91d59d04faf35a3d75d6430df5 (diff) |
Changed metadata keys type from enum to QString.
This allows to combine metaData and extendedMetaData
and simplify metadata handling on both backend and application sides.
Change-Id: I136eedc86c215be3485db101c43069ca7c82101b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/plugins/wmf/player/mfmetadatacontrol.cpp')
-rw-r--r-- | src/plugins/wmf/player/mfmetadatacontrol.cpp | 58 |
1 files changed, 14 insertions, 44 deletions
diff --git a/src/plugins/wmf/player/mfmetadatacontrol.cpp b/src/plugins/wmf/player/mfmetadatacontrol.cpp index d7619f910..b17d4a440 100644 --- a/src/plugins/wmf/player/mfmetadatacontrol.cpp +++ b/src/plugins/wmf/player/mfmetadatacontrol.cpp @@ -65,7 +65,7 @@ bool MFMetaDataControl::isMetaDataAvailable() const return m_content || m_metaData; } -QVariant MFMetaDataControl::metaData(QtMultimedia::MetaData key) const +QVariant MFMetaDataControl::metaData(const QString &key) const { QVariant value; if (!isMetaDataAvailable()) @@ -113,38 +113,11 @@ QVariant MFMetaDataControl::convertValue(const PROPVARIANT& var) const return value; } -QList<QtMultimedia::MetaData> MFMetaDataControl::availableMetaData() const +QStringList MFMetaDataControl::availableMetaData() const { return m_availableMetaDatas; } -QVariant MFMetaDataControl::extendedMetaData(const QString &key) const -{ - QVariant value; - HRESULT hr = S_FALSE; - PROPVARIANT var; - PropVariantInit(&var); - if (m_content) { - int index = m_extendedMetaDatas.indexOf(key); - if (index >= 0) { - hr = m_content->GetValue(m_extendedKeys[index], &var); - } - } else if (m_metaData) { - hr = m_metaData->GetProperty(key.utf16(), &var); - } - - if (SUCCEEDED(hr)) - value = convertValue(var); - - PropVariantClear(&var); - return value; -} - -QStringList MFMetaDataControl::availableExtendedMetaData() const -{ - return m_extendedMetaDatas; -} - void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMediaSource* mediaSource) { if (m_metaData) { @@ -173,15 +146,15 @@ void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMed continue; bool common = true; if (key == PKEY_Author) { - m_availableMetaDatas.push_back(QtMultimedia::Author); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Author); } else if (key == PKEY_Title) { - m_availableMetaDatas.push_back(QtMultimedia::Title); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Title); } else if (key == PKEY_ParentalRating) { - m_availableMetaDatas.push_back(QtMultimedia::ParentalRating); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::ParentalRating); } else if (key == PKEY_Comment) { - m_availableMetaDatas.push_back(QtMultimedia::Description); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Description); } else if (key == PKEY_Copyright) { - m_availableMetaDatas.push_back(QtMultimedia::Copyright); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Copyright); //TODO: add more common keys } else { common = false; @@ -211,24 +184,21 @@ void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMed #ifdef DEBUG_MEDIAFOUNDATION qDebug() << "metadata: " << QString::fromUtf16(sName); #endif - bool common = true; if (wcscmp(sName, L"Author") == 0) { - m_availableMetaDatas.push_back(QtMultimedia::Author); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Author); } else if (wcscmp(sName, L"Title") == 0) { - m_availableMetaDatas.push_back(QtMultimedia::Title); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Title); } else if (wcscmp(sName, L"Rating") == 0) { - m_availableMetaDatas.push_back(QtMultimedia::ParentalRating); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::ParentalRating); } else if (wcscmp(sName, L"Description") == 0) { - m_availableMetaDatas.push_back(QtMultimedia::Description); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Description); } else if (wcscmp(sName, L"Copyright") == 0) { - m_availableMetaDatas.push_back(QtMultimedia::Copyright); + m_availableMetaDatas.push_back(QtMultimedia::MetaData::Copyright); //TODO: add more common keys } else { - common = false; - m_extendedMetaDatas.push_back(QString::fromUtf16(sName)); + m_availableMetaDatas.push_back(QString::fromUtf16(sName)); } - if (common) - m_commonNames.push_back(QString::fromUtf16(sName)); + m_commonNames.push_back(QString::fromUtf16(sName)); } } PropVariantClear(&varNames); |