Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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";
    }
}