From 9320aa0bbcecb7920eb5aaa181842901527950e9 Mon Sep 17 00:00:00 2001 From: Scott Wheeler Date: Mon, 24 May 2004 07:37:41 +0000 Subject: [PATCH] Oops. Pretty significant type in the frame name for recording date. This will automatically fix these files on the next write. (At the moment other taggers will not be able to read the date written by TagLib in the ID3v2 tag. In most cases they'll fall back to the ID3v1 tag, which is fine, but still kind of nasty.) Thanks to Teemu Tervo for catching this. CCMAIL:82038-done@bugs.kde.org git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@314024 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- mpeg/id3v2/id3v2framefactory.cpp | 16 ++++++++++------ mpeg/id3v2/id3v2tag.cpp | 8 ++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/mpeg/id3v2/id3v2framefactory.cpp b/mpeg/id3v2/id3v2framefactory.cpp index 2574f960..3df55372 100644 --- a/mpeg/id3v2/id3v2framefactory.cpp +++ b/mpeg/id3v2/id3v2framefactory.cpp @@ -192,7 +192,7 @@ bool FrameFactory::updateFrame(Frame::Header *header) const convertFrame("TCM", "TCOM", header); convertFrame("TCO", "TCON", header); convertFrame("TCR", "TCOP", header); - convertFrame("TDA", "TRDC", header); + convertFrame("TDA", "TDRC", header); convertFrame("TDY", "TDLY", header); convertFrame("TEN", "TENC", header); convertFrame("TFT", "TFLT", header); @@ -212,7 +212,7 @@ bool FrameFactory::updateFrame(Frame::Header *header) const convertFrame("TPA", "TPOS", header); convertFrame("TPB", "TPUB", header); convertFrame("TRC", "TSRC", header); - convertFrame("TRD", "TRDC", header); + convertFrame("TRD", "TDRC", header); convertFrame("TRK", "TRCK", header); convertFrame("TSS", "TSSE", header); convertFrame("TT1", "TIT1", header); @@ -220,7 +220,7 @@ bool FrameFactory::updateFrame(Frame::Header *header) const convertFrame("TT3", "TIT3", header); convertFrame("TXT", "TOLY", header); convertFrame("TXX", "TXXX", header); - convertFrame("TYE", "TRDC", header); + convertFrame("TYE", "TDRC", header); convertFrame("UFI", "UFID", header); convertFrame("ULT", "USLT", header); convertFrame("WAF", "WOAF", header); @@ -247,16 +247,20 @@ bool FrameFactory::updateFrame(Frame::Header *header) const return false; } - convertFrame("TDAT", "TRDC", header); + convertFrame("TDAT", "TDRC", header); convertFrame("TORY", "TDOR", header); - convertFrame("TYER", "TRDC", header); + convertFrame("TYER", "TDRC", header); break; } default: - break; + // This should catch a typo that existed in TagLib up to and including + // version 1.1 where TRDC was used for the year rather than TDRC. + + convertFrame("TRDC", "TDRC", header); + break; } return true; diff --git a/mpeg/id3v2/id3v2tag.cpp b/mpeg/id3v2/id3v2tag.cpp index df0395ba..0490b00e 100644 --- a/mpeg/id3v2/id3v2tag.cpp +++ b/mpeg/id3v2/id3v2tag.cpp @@ -144,8 +144,8 @@ String ID3v2::Tag::genre() const TagLib::uint ID3v2::Tag::year() const { - if(!d->frameListMap["TRDC"].isEmpty()) - return d->frameListMap["TRDC"].front()->toString().substr(0, 4).toInt(); + if(!d->frameListMap["TDRC"].isEmpty()) + return d->frameListMap["TDRC"].front()->toString().substr(0, 4).toInt(); return 0; } @@ -205,10 +205,10 @@ void ID3v2::Tag::setGenre(const String &s) void ID3v2::Tag::setYear(uint i) { if(i <= 0) { - removeFrames("TRDC"); + removeFrames("TDRC"); return; } - setTextFrame("TRDC", String::number(i)); + setTextFrame("TDRC", String::number(i)); } void ID3v2::Tag::setTrack(uint i)