Ejemplo n.º 1
0
ID3v2Tag::ID3v2Tag( TagLib::Tag *tag, TagLib::ID3v2::Tag *id3v2Tag )
    : Tag( tag )
    , m_id3v2Tag( id3v2Tag )
{
    TagLib::ID3v2::FrameList fList = m_id3v2Tag->frameList();
    for( TagLib::ID3v2::FrameList::ConstIterator it = fList.begin();
         it != fList.end(); ++it )
    {
        TagLib::String frameId = TagLib::String( (*it)->frameID() );
        TagLib::ID3v2::TextIdentificationFrame *frame =
                dynamic_cast< TagLib::ID3v2::TextIdentificationFrame * >( *it );
        if( frame )
        {
            QString val = TStringToQString( frame->fieldList().toString( '\n' ) );

            if( frameId == TagLib::String( "TPE2" ) ) //album artist
            {
                m_albumArtist = val;
            }
            else if( frameId == TagLib::String( "TCOM" ) ) //composer
            {
                m_composer = val;
            }
            else if( frameId == TagLib::String( "TPOS" ) ) //disc number
            {
                m_discNumber = processDiscNumber( val );
            }
        }
    }
}
Ejemplo n.º 2
0
MP4Tag::MP4Tag( TagLib::Tag *tag, TagLib::MP4::Tag *mp4Tag )
    : Tag( tag )
    , m_mp4Tag( mp4Tag )
{
    TagLib::MP4::ItemListMap map = m_mp4Tag->itemListMap();
    for( TagLib::MP4::ItemListMap::ConstIterator it = map.begin();
         it != map.end(); ++it )
    {
        TagLib::String key = it->first;
        QString val = TStringToQString( it->second.toStringList().toString( '\n' ) );
        if( key == TagLib::String( "aART" ) )   //album artist
        {
            m_albumArtist = val;
        }
        else if( key == TagLib::String( "\xA9wrt" ) ) //composer
        {
            m_composer = val;
        }
        else if( key == TagLib::String( "disk" ) ) //disk number
        {
            m_discNumber = processDiscNumber( val );
        }
    }
}
Ejemplo n.º 3
0
ASFTag::ASFTag( TagLib::Tag *tag, TagLib::ASF::Tag *asfTag )
    : Tag( tag )
    , m_asfTag( asfTag )
{
    TagLib::ASF::AttributeListMap map = m_asfTag->attributeListMap();
    for( TagLib::ASF::AttributeListMap::ConstIterator it = map.begin();
            it != map.end(); ++it )
    {
        TagLib::String key = it->first;
        QString val = TStringToQString( it->second[ 0 ].toString() );
        if( key == TagLib::String( "WM/AlbumTitle" ) ) //album artist
        {
            m_albumArtist = val;
        }
        else if( key == TagLib::String( "WM/Composer" ) )
        {
            m_composer = val;
        }
        else if( key == TagLib::String( "WM/PartOfSet" ) )
        {
            m_discNumber = processDiscNumber( val );
        }
    }
}