]> granicus.if.org Git - taglib/commitdiff
Convert TDRC to TYER+TDAT+TIME
authorLukáš Lalinský <lalinsky@gmail.com>
Wed, 16 Mar 2011 21:54:58 +0000 (22:54 +0100)
committerLukáš Lalinský <lalinsky@gmail.com>
Wed, 16 Mar 2011 21:54:58 +0000 (22:54 +0100)
taglib/mpeg/id3v2/id3v2tag.cpp
tests/test_id3v2.cpp

index 6908c1b01373f1005d6ee0c32dc234759f0e7a81..7286d3c12153ff120d3c98b58264b804941445e7 100644 (file)
@@ -383,6 +383,18 @@ void ID3v2::Tag::downgradeFrames(FrameList *frames, FrameList *newFrames) const
       frameTYER->setText(content.substr(0, 4));
       frames->append(frameTYER);
       newFrames->append(frameTYER);
+      if(content.size() >= 10 && content[4] == '-' && content[7] == '-') {
+        ID3v2::TextIdentificationFrame *frameTDAT = new ID3v2::TextIdentificationFrame("TDAT", String::Latin1);
+        frameTDAT->setText(content.substr(8, 2) + content.substr(5, 2));
+        frames->append(frameTDAT);
+        newFrames->append(frameTDAT);
+        if(content.size() >= 16 && content[10] == 'T' && content[13] == ':') {
+          ID3v2::TextIdentificationFrame *frameTIME = new ID3v2::TextIdentificationFrame("TIME", String::Latin1);
+          frameTIME->setText(content.substr(11, 2) + content.substr(14, 2));
+          frames->append(frameTIME);
+          newFrames->append(frameTIME);
+        }
+      }
     }
   }
   // FIXME migrate TIPL and TMCL to IPLS
index 84074585e85a8553c409d868ec63d6db451fff41..d3adc6324e2e13b67a406f3f54941aab4c2387c3 100644 (file)
@@ -486,7 +486,7 @@ public:
     tf->setText("2011-03-16");
     foo.ID3v2Tag()->addFrame(tf);
     tf = new ID3v2::TextIdentificationFrame("TDRC", String::Latin1);
-    tf->setText("2012-04-17");
+    tf->setText("2012-04-17T12:01");
     foo.ID3v2Tag()->addFrame(tf);
     foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDRL", String::Latin1));
     foo.ID3v2Tag()->addFrame(new ID3v2::TextIdentificationFrame("TDTG", String::Latin1));