本文整理汇总了C++中mp4::CoverArtList::append方法的典型用法代码示例。如果您正苦于以下问题:C++ CoverArtList::append方法的具体用法?C++ CoverArtList::append怎么用?C++ CoverArtList::append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mp4::CoverArtList
的用法示例。
在下文中一共展示了CoverArtList::append方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testList
void testList()
{
MP4::CoverArtList l;
l.append(MP4::CoverArt(MP4::CoverArt::PNG, "foo"));
l.append(MP4::CoverArt(MP4::CoverArt::JPEG, "bar"));
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::PNG, l[0].format());
CPPUNIT_ASSERT_EQUAL(ByteVector("foo"), l[0].data());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::JPEG, l[1].format());
CPPUNIT_ASSERT_EQUAL(ByteVector("bar"), l[1].data());
}
示例2: while
void
MP4::Tag::parseCovr(const MP4::Atom *atom)
{
MP4::CoverArtList value;
ByteVector data = d->file->readBlock(atom->length - 8);
unsigned int pos = 0;
while(pos < data.size()) {
const int length = static_cast<int>(data.toUInt(pos));
if(length < 12) {
debug("MP4: Too short atom");
break;;
}
const ByteVector name = data.mid(pos + 4, 4);
const int flags = static_cast<int>(data.toUInt(pos + 8));
if(name != "data") {
debug("MP4: Unexpected atom \"" + name + "\", expecting \"data\"");
break;
}
if(flags == TypeJPEG || flags == TypePNG || flags == TypeBMP ||
flags == TypeGIF || flags == TypeImplicit) {
value.append(MP4::CoverArt(MP4::CoverArt::Format(flags),
data.mid(pos + 16, length - 16)));
}
else {
debug("MP4: Unknown covr format " + String::number(flags));
}
pos += length;
}
if(value.size() > 0)
addItem(atom->name, value);
}
示例3: testCovrWrite
void testCovrWrite()
{
ScopedFileCopy copy("has-tags", ".m4a");
string filename = copy.fileName();
MP4::File *f = new MP4::File(filename.c_str());
CPPUNIT_ASSERT(f->tag()->contains("covr"));
MP4::CoverArtList l = f->tag()->item("covr").toCoverArtList();
l.append(MP4::CoverArt(MP4::CoverArt::PNG, "foo"));
f->tag()->setItem("covr", l);
f->save();
delete f;
f = new MP4::File(filename.c_str());
CPPUNIT_ASSERT(f->tag()->contains("covr"));
l = f->tag()->item("covr").toCoverArtList();
CPPUNIT_ASSERT_EQUAL(TagLib::uint(3), l.size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::PNG, l[0].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(79), l[0].data().size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::JPEG, l[1].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(287), l[1].data().size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::PNG, l[2].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(3), l[2].data().size());
delete f;
}
示例4: testCovrWrite
void testCovrWrite()
{
string filename = copyFile("has-tags", ".m4a");
MP4::File *f = new MP4::File(filename.c_str());
CPPUNIT_ASSERT(f->tag()->itemListMap().contains("covr"));
MP4::CoverArtList l = f->tag()->itemListMap()["covr"].toCoverArtList();
l.append(MP4::CoverArt(MP4::CoverArt::PNG, "foo"));
f->tag()->itemListMap()["covr"] = l;
f->save();
delete f;
f = new MP4::File(filename.c_str());
CPPUNIT_ASSERT(f->tag()->itemListMap().contains("covr"));
l = f->tag()->itemListMap()["covr"].toCoverArtList();
CPPUNIT_ASSERT_EQUAL(TagLib::uint(3), l.size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::PNG, l[0].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(79), l[0].data().size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::JPEG, l[1].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(287), l[1].data().size());
CPPUNIT_ASSERT_EQUAL(MP4::CoverArt::PNG, l[2].format());
CPPUNIT_ASSERT_EQUAL(TagLib::uint(3), l[2].data().size());
delete f;
deleteFile(filename);
}
示例5: while
void
MP4::Tag::parseCovr(MP4::Atom *atom, TagLib::File *file)
{
MP4::CoverArtList value;
ByteVector data = file->readBlock(atom->length - 8);
unsigned int pos = 0;
while(pos < data.size()) {
int length = data.mid(pos, 4).toUInt();
ByteVector name = data.mid(pos + 4, 4);
int flags = data.mid(pos + 8, 4).toUInt();
if(name != "data") {
debug("MP4: Unexpected atom \"" + name + "\", expecting \"data\"");
return;
}
if(flags == MP4::CoverArt::PNG || flags == MP4::CoverArt::JPEG) {
value.append(MP4::CoverArt(MP4::CoverArt::Format(flags),
data.mid(pos + 16, length - 16)));
}
pos += length;
}
if(value.size() > 0)
d->items.insert(atom->name, value);
}
示例6: while
void
MP4::Tag::parseCovr(MP4::Atom *atom, TagLib::File *file)
{
MP4::CoverArtList value;
ByteVector data = file->readBlock(atom->length - 8);
unsigned int pos = 0;
while(pos < data.size()) {
int length = data.mid(pos, 4).toUInt();
ByteVector name = data.mid(pos + 4, 4);
int flags = data.mid(pos + 8, 4).toUInt();
if(name != "data") {
debug("MP4: Unexpected atom \"" + name + "\", expecting \"data\"");
break;
}
if (flags == 0) { //detect cover format when the cover format bytes are not set
ByteVector picHeader = data.mid(pos+16,9);
const char jpeg[] = {0xff, 0xd8, 0xff, 0xe0 };
const char jfif[] = {0x10, 0x4a, 0x46, 0x49, 0x46 };
const char png[] = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00 };
if ((memcmp(picHeader.data(), png, 9) == 0)) {
flags = MP4::CoverArt::PNG;
} else if ((memcmp(picHeader.data(), jpeg, 4) == 0)) {
flags = MP4::CoverArt::JPEG;
} else if ((memcmp(picHeader.data(), jfif, 5) == 0)) {
flags = MP4::CoverArt::JPEG;
}
}
if(flags == MP4::CoverArt::PNG || flags == MP4::CoverArt::JPEG || flags == 0) {
value.append(MP4::CoverArt(MP4::CoverArt::Format(flags),
data.mid(pos + 16, length - 16)));
}
pos += length;
}
if(value.size() > 0)
d->items.insert(atom->name, value);
}
示例7: save
//.........这里部分代码省略.........
FLAC::File &flacF = ( FLAC::File & )file;
flacF.removePictures();
if ( hasPicture )
{
FLAC::Picture *flacPicture = new FLAC::Picture;
flacPicture->setMimeType( pictureMimeType.data() );
flacPicture->setType( FLAC::Picture::FrontCover );
flacPicture->setData( *picture );
flacF.addPicture( flacPicture );
}
mustSave = true;
}
else if ( instanceOf( file, MP4::File ) )
{
MP4::ItemListMap &itemListMap = ( ( MP4::File & )file ).tag()->itemListMap();
if ( itemListMap.contains( "covr" ) )
itemListMap.erase( "covr" );
if ( hasPicture )
{
MP4::CoverArt::Format format = ( MP4::CoverArt::Format )0;
if ( pictureMimeType == "image/jpeg" )
format = MP4::CoverArt::JPEG;
else if ( pictureMimeType == "image/png" )
format = MP4::CoverArt::PNG;
#if TAGLIB18
else if ( pictureMimeType == "image/bmp" )
format = MP4::CoverArt::BMP;
else if ( pictureMimeType == "image/gif" )
format = MP4::CoverArt::GIF;
#endif
if ( format )
{
MP4::CoverArtList coverArtList;
coverArtList.append( MP4::CoverArt( format, *picture ) );
itemListMap.insert( "covr", coverArtList );
}
}
mustSave = true;
}
else if ( isOgg( file ) )
{
Ogg::XiphComment *xiphComment = getXiphComment( file );
if ( xiphComment )
{
xiphComment->removeField( "METADATA_BLOCK_PICTURE" );
if ( hasPicture )
{
FLAC::Picture flacPicture;
flacPicture.setMimeType( pictureMimeType.data() );
flacPicture.setType( FLAC::Picture::FrontCover );
flacPicture.setData( *picture );
const ByteVector pict_data = flacPicture.render();
xiphComment->addField( "METADATA_BLOCK_PICTURE", QByteArray::fromRawData( pict_data.data(), pict_data.size() ).toBase64().data() );
}
mustSave = true;
}
}
}
else if ( !isChecked() ) //Usuwanie wszystkich znanych tagów
{
mustSave = true;
if ( instanceOf( file, MPEG::File ) )
( ( MPEG::File & )file ).strip();
else if ( instanceOf( file, MPC::File ) )
( ( MPC::File & )file ).strip();