/* ** Extracts cover art embedded in APE tags. ** */ bool CCover::ExtractAPE(TagLib::APE::Tag* tag, const std::wstring& target) { const TagLib::APE::ItemListMap& listMap = tag->itemListMap(); if (listMap.contains("COVER ART (FRONT)")) { const TagLib::ByteVector nullStringTerminator(1, 0); TagLib::ByteVector item = listMap["COVER ART (FRONT)"].value(); int pos = item.find(nullStringTerminator); // Skip the filename if (++pos > 0) { const TagLib::ByteVector& pic = item.mid(pos); return WriteCover(pic, target); } } return false; }
/* ** Extracts cover art embedded in APE tags. ** */ bool QCoverArt::ExtractAPE(TagLib::APE::Tag* tag) { const TagLib::APE::ItemListMap& listMap = tag->itemListMap(); if (listMap.contains("COVER ART (FRONT)")) { const TagLib::ByteVector nullStringTerminator(1, 0); TagLib::ByteVector item = listMap["COVER ART (FRONT)"].value(); int pos = item.find(nullStringTerminator); // Skip the filename if (++pos > 0) { const TagLib::ByteVector& pic = item.mid(pos); img.loadFromData((const unsigned char*)pic.data(), pic.size()); return true; } } return false; }