void Metadata::toMap(MetadataMap &metadataMap) { metadataMap["artist"] = m_artist; metadataMap["formatartist"] = FormatArtist(); metadataMap["compilationartist"] = m_compilation_artist; metadataMap["album"] = m_album; metadataMap["title"] = m_title; metadataMap["tracknum"] = (m_tracknum > 0 ? QString("%1").arg(m_tracknum) : ""); metadataMap["genre"] = m_genre; metadataMap["year"] = (m_year > 0 ? QString("%1").arg(m_year) : ""); metadataMap["artisttitle"] = QObject::tr("%1 by %2", "Music track 'title by artist'") .arg(FormatTitle()) .arg(FormatArtist()); int len = m_length / 1000; int eh = len / 3600; int em = (len / 60) % 60; int es = len % 60; if (eh > 0) metadataMap["length"] = QString().sprintf("%d:%02d:%02d", eh, em, es); else metadataMap["length"] = QString().sprintf("%02d:%02d", em, es); QString dateFormat = gCoreContext->GetSetting("DateFormat", "ddd MMMM d"); QString fullDateFormat = dateFormat; if (!fullDateFormat.contains("yyyy")) fullDateFormat += " yyyy"; metadataMap["lastplayed"] = m_lastplay.toString(fullDateFormat); metadataMap["playcount"] = QString("%1").arg(m_playcount); metadataMap["filename"] = m_filename; }
void Metadata::toMap(MetadataMap &metadataMap, const QString &prefix) { metadataMap[prefix + "artist"] = m_artist; metadataMap[prefix + "formatartist"] = FormatArtist(); metadataMap[prefix + "compilationartist"] = m_compilation_artist; metadataMap[prefix + "album"] = m_album; metadataMap[prefix + "title"] = m_title; metadataMap[prefix + "formattitle"] = FormatTitle(); metadataMap[prefix + "tracknum"] = (m_tracknum > 0 ? QString("%1").arg(m_tracknum) : ""); metadataMap[prefix + "trackcount"] = (m_trackCount > 0 ? QString("%1").arg(m_trackCount) : ""); metadataMap[prefix + "genre"] = m_genre; metadataMap[prefix + "year"] = (m_year > 0 ? QString("%1").arg(m_year) : ""); int len = m_length / 1000; int eh = len / 3600; int em = (len / 60) % 60; int es = len % 60; if (eh > 0) metadataMap[prefix + "length"] = QString().sprintf("%d:%02d:%02d", eh, em, es); else metadataMap[prefix + "length"] = QString().sprintf("%02d:%02d", em, es); if (m_lastplay.isValid()) metadataMap[prefix + "lastplayed"] = MythDateTimeToString(m_lastplay, kDateFull | kSimplify | kAddYear); else metadataMap[prefix + "lastplayed"] = QObject::tr("Never Played"); metadataMap[prefix + "dateadded"] = MythDateTimeToString(m_dateadded, kDateFull | kSimplify | kAddYear); metadataMap[prefix + "playcount"] = QString::number(m_playcount); // FIXME we should use Filename() here but that will slow things down because of the hunt for the file metadataMap[prefix + "filename"] = gMusicData->musicDir + m_filename; }
void Metadata::getField(const QString &field, QString *data) { if (field == "artist") *data = FormatArtist(); else if (field == "album") *data = m_album; else if (field == "title") *data = FormatTitle(); else if (field == "genre") *data = m_genre; else { LOG(VB_GENERAL, LOG_ERR, QString("Something asked me to return data " "about a field called %1").arg(field)); *data = "I Dunno"; } }