]> diplodocus.org Git - flac-archive/blobdiff - apic-read.cc
Restore some VERSION support.
[flac-archive] / apic-read.cc
index 324450e411147437d656fac1a28c2534d570307e..d03287faecb9f9d768fb7e3fba01281e4ebf90a1 100644 (file)
 
 // 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;