// 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)
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;