QNetworkCacheMetaData AssetCache::metaData(const QUrl &url) { QNetworkCacheMetaData resultMetaData; QString absoluteMetaDataFile = GetAbsoluteFilePath(true, url); if (QFile::exists(absoluteMetaDataFile)) { QFile metaDataFile(absoluteMetaDataFile); if (metaDataFile.open(QIODevice::ReadOnly)) { QDataStream metaDataStream(&metaDataFile); metaDataStream >> resultMetaData; metaDataFile.close(); } }
bool BbMetaData::parse(const QString &contextName) { clear(); QString fileName = QString("/pps/services/multimedia/renderer/context/%1/metadata").arg(contextName); // In newer OS versions, the filename is "metadata0", not metadata, so try both. if (!QFile::exists(fileName)) fileName += '0'; QFile metaDataFile(fileName); if (!metaDataFile.open(QFile::ReadOnly)) { qWarning() << "Unable to open media metadata file" << fileName << ":" << metaDataFile.errorString(); return false; } const QString seperator("::"); QTextStream stream(&metaDataFile); Q_FOREVER { const QString line = stream.readLine(); if (line.isNull()) break; const int seperatorPos = line.indexOf(seperator); if (seperatorPos != -1) { const QString key = line.left(seperatorPos); const QString value = line.mid(seperatorPos + seperator.length()); if (key == durationKey) m_duration = value.toLongLong(); else if (key == widthKey) m_width = value.toInt(); else if (key == heightKey) m_height = value.toInt(); else if (key == mediaTypeKey) m_mediaType = value.toInt(); else if (key == pixelWidthKey) m_pixelWidth = value.toFloat(); else if (key == pixelHeightKey) m_pixelHeight = value.toFloat(); } } return true; }
bool MmRendererMetaData::parse(const QString &contextName) { clear(); QString fileName = QString("/pps/services/multimedia/renderer/context/%1/metadata").arg(contextName); // In newer OS versions, the filename is "metadata0", not metadata, so try both. if (!QFile::exists(fileName)) fileName += '0'; QFile metaDataFile(fileName); if (!metaDataFile.open(QFile::ReadOnly)) { qWarning() << "Unable to open media metadata file" << fileName << ":" << metaDataFile.errorString(); return false; } const QString separator("::"); QTextStream stream(&metaDataFile); Q_FOREVER { const QString line = stream.readLine(); if (line.isNull()) break; const int separatorPos = line.indexOf(separator); if (separatorPos != -1) { const QStringRef key = line.leftRef(separatorPos); const QStringRef value = line.midRef(separatorPos + separator.length()); if (key == durationKey) m_duration = value.toLongLong(); else if (key == widthKey) m_width = value.toInt(); else if (key == heightKey) m_height = value.toInt(); else if (key == mediaTypeKey) m_mediaType = value.toInt(); else if (key == pixelWidthKey) m_pixelWidth = value.toFloat(); else if (key == pixelHeightKey) m_pixelHeight = value.toFloat(); else if (key == titleKey) m_title = value.toString(); else if (key == seekableKey) m_seekable = !(value == QLatin1String("0")); else if (key == artistKey) m_artist = value.toString(); else if (key == commentKey) m_comment = value.toString(); else if (key == genreKey) m_genre = value.toString(); else if (key == yearKey) m_year = value.toInt(); else if (key == bitRateKey) m_audioBitRate = value.toInt(); else if (key == sampleKey) m_sampleRate = value.toInt(); else if (key == albumKey) m_album = value.toString(); else if (key == trackKey) m_track = value.toInt(); } } return true; }