X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/dc56eee9c5ea64152683f20cab5be14b8a13c8a5..8f216f0:/apic-read.cc?ds=sidebyside diff --git a/apic-read.cc b/apic-read.cc index 324450e..d03287f 100644 --- a/apic-read.cc +++ b/apic-read.cc @@ -12,9 +12,10 @@ // some demo apic reading code; would be nice to save all APIC frames. -using TagLib::ID3v2::Tag; -using TagLib::ID3v2::FrameList; using TagLib::ID3v2::AttachedPictureFrame; +using TagLib::ID3v2::Frame; +using TagLib::ID3v2::FrameList; +using TagLib::ID3v2::Tag; int main(int argc, char **argv) @@ -28,18 +29,19 @@ main(int argc, char **argv) const FrameList &frames = id3v2tag->frameList(); FrameList::ConstIterator it; for (it = frames.begin(); it != frames.end(); it++) { - TagLib::ByteVector frameid = (*it)->frameID(); + Frame *frame = *it; + TagLib::ByteVector frameid = frame->frameID(); uint frameid_size = frameid.size(); char *frameid_s = new char[frameid_size + 1]; memcpy(frameid_s, frameid.data(), frameid_size); frameid_s[frameid_size] = '\0'; - printf("%s: %s\n", frameid_s, (*it)->toString().toCString()); + printf("%s: %s\n", frameid_s, frame->toString().toCString()); if (frameid != "APIC") { continue; } - AttachedPictureFrame *frame = (AttachedPictureFrame *)(*it); - TagLib::ByteVector data = frame->picture(); - int fd = open(argv[2], O_CREAT | O_WRONLY); + AttachedPictureFrame *pic_frame = (AttachedPictureFrame *)frame; + TagLib::ByteVector data = pic_frame->picture(); + int fd = open(argv[2], O_CREAT | O_EXCL | O_WRONLY, 0644); if (fd < 0) { perror("open"); return 2;