From d248f77ab935128b36ecf4395b4e99b9b0ffccfe Mon Sep 17 00:00:00 2001 From: Scott Wheeler Date: Mon, 18 May 2015 19:51:18 +0200 Subject: [PATCH] Show something useful for ChapterFrame::toString() Closes #517 --- taglib/mpeg/id3v2/frames/chapterframe.cpp | 20 +++++++++++++++++++- tests/test_id3v2.cpp | 4 +++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/taglib/mpeg/id3v2/frames/chapterframe.cpp b/taglib/mpeg/id3v2/frames/chapterframe.cpp index 99572888..6024ca7e 100644 --- a/taglib/mpeg/id3v2/frames/chapterframe.cpp +++ b/taglib/mpeg/id3v2/frames/chapterframe.cpp @@ -190,7 +190,25 @@ void ChapterFrame::removeEmbeddedFrames(const ByteVector &id) String ChapterFrame::toString() const { - return String::null; + String s = String(d->elementID) + + ": start time: " + String::number(d->startTime) + + ", end time: " + String::number(d->endTime); + + if(d->startOffset != 0xFFFFFFFF) + s += ", start offset: " + String::number(d->startOffset); + + if(d->endOffset != 0xFFFFFFFF) + s += ", start offset: " + String::number(d->endOffset); + + if(!d->embeddedFrameList.isEmpty()) { + StringList frameIDs; + for(FrameList::ConstIterator it = d->embeddedFrameList.begin(); + it != d->embeddedFrameList.end(); ++it) + frameIDs.append((*it)->frameID()); + s += ", sub-frames: [ " + frameIDs.toString(", ") + " ]"; + } + + return s; } PropertyMap ChapterFrame::asProperties() const diff --git a/tests/test_id3v2.cpp b/tests/test_id3v2.cpp index c2609cab..c81f726c 100644 --- a/tests/test_id3v2.cpp +++ b/tests/test_id3v2.cpp @@ -986,12 +986,14 @@ public: ID3v2::ChapterFrame f4("C", 3, 5, 2, 3, frames); CPPUNIT_ASSERT_EQUAL(expected, f4.render()); + CPPUNIT_ASSERT(!f4.toString().isEmpty()); + ID3v2::ChapterFrame f5("C", 3, 5, 2, 3); eF = new ID3v2::TextIdentificationFrame("TIT2"); eF->setText("CH1"); f5.addEmbeddedFrame(eF); CPPUNIT_ASSERT_EQUAL(expected, f5.render()); -} + } void testParseTableOfContentsFrame() {