tag->frameList("TDRC").size() == 1 &&
tag->frameList("TDAT").size() == 1)
{
- TextIdentificationFrame *trdc =
+ TextIdentificationFrame *tdrc =
static_cast<TextIdentificationFrame *>(tag->frameList("TDRC").front());
- UnknownFrame *tdat =
- static_cast<UnknownFrame *>(tag->frameList("TDAT").front());
+ UnknownFrame *tdat = static_cast<UnknownFrame *>(tag->frameList("TDAT").front());
- if(trdc->fieldList().size() == 1 &&
- trdc->fieldList().front().size() == 4 &&
+ if(tdrc->fieldList().size() == 1 &&
+ tdrc->fieldList().front().size() == 4 &&
tdat->data().size() >= 5)
{
String date(tdat->data().mid(1), String::Type(tdat->data()[0]));
- if(date.length() == 4)
- trdc->setText(trdc->toString() + '-' + date.substr(2, 2) + '-' + date.substr(0, 2));
+ if(date.length() == 4) {
+ tdrc->setText(tdrc->toString() + '-' + date.substr(2, 2) + '-' + date.substr(0, 2));
+ if(tag->frameList("TIME").size() == 1) {
+ UnknownFrame *timeframe = static_cast<UnknownFrame *>(tag->frameList("TIME").front());
+ if(timeframe->data().size() >= 5) {
+ String time(timeframe->data().mid(1), String::Type(timeframe->data()[0]));
+ if(time.length() == 4) {
+ tdrc->setText(tdrc->toString() + 'T' + time.substr(0, 2) + ':' + time.substr(2, 2));
+ }
+ }
+ }
+ }
}
}
}
return true;
}
+
tf = static_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TDRC").front());
CPPUNIT_ASSERT(tf);
CPPUNIT_ASSERT_EQUAL(TagLib::uint(1), tf->fieldList().size());
- CPPUNIT_ASSERT_EQUAL(String("2012-04-17"), tf->fieldList().front());
+ CPPUNIT_ASSERT_EQUAL(String("2012-04-17T12:01"), tf->fieldList().front());
tf = dynamic_cast<ID3v2::TextIdentificationFrame *>(bar.ID3v2Tag()->frameList("TIPL").front());
CPPUNIT_ASSERT(tf);
CPPUNIT_ASSERT_EQUAL(TagLib::uint(8), tf->fieldList().size());