From 23386fccc2daa50ab6eba3974384c477de61fc4e Mon Sep 17 00:00:00 2001 From: Bruno Date: Tue, 16 Feb 2021 22:57:40 +0100 Subject: [PATCH] Minor improvement XML Do not save timeline for single frame media --- SessionVisitor.cpp | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/SessionVisitor.cpp b/SessionVisitor.cpp index 6f81374..a1b7619 100644 --- a/SessionVisitor.cpp +++ b/SessionVisitor.cpp @@ -152,31 +152,34 @@ void SessionVisitor::visit(MediaPlayer &n) { XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer"); newelement->SetAttribute("id", n.id()); - newelement->SetAttribute("play", n.isPlaying()); - newelement->SetAttribute("loop", (int) n.loop()); - newelement->SetAttribute("speed", n.playSpeed()); - // timeline - XMLElement *timelineelement = xmlDoc_->NewElement("Timeline"); + if (!n.isImage()) { + newelement->SetAttribute("play", n.isPlaying()); + newelement->SetAttribute("loop", (int) n.loop()); + newelement->SetAttribute("speed", n.playSpeed()); - // gaps in timeline - XMLElement *gapselement = xmlDoc_->NewElement("Gaps"); - TimeIntervalSet gaps = n.timeline()->gaps(); - for( auto it = gaps.begin(); it!= gaps.end(); it++) { - XMLElement *g = xmlDoc_->NewElement("Interval"); - g->SetAttribute("begin", (*it).begin); - g->SetAttribute("end", (*it).end); - gapselement->InsertEndChild(g); + // timeline + XMLElement *timelineelement = xmlDoc_->NewElement("Timeline"); + + // gaps in timeline + XMLElement *gapselement = xmlDoc_->NewElement("Gaps"); + TimeIntervalSet gaps = n.timeline()->gaps(); + for( auto it = gaps.begin(); it!= gaps.end(); it++) { + XMLElement *g = xmlDoc_->NewElement("Interval"); + g->SetAttribute("begin", (*it).begin); + g->SetAttribute("end", (*it).end); + gapselement->InsertEndChild(g); + } + timelineelement->InsertEndChild(gapselement); + + // fading in timeline + XMLElement *fadingelement = xmlDoc_->NewElement("Fading"); + XMLElement *array = XMLElementEncodeArray(xmlDoc_, n.timeline()->fadingArray(), MAX_TIMELINE_ARRAY * sizeof(float)); + fadingelement->InsertEndChild(array); + timelineelement->InsertEndChild(fadingelement); + newelement->InsertEndChild(timelineelement); } - timelineelement->InsertEndChild(gapselement); - // fading in timeline - XMLElement *fadingelement = xmlDoc_->NewElement("Fading"); - XMLElement *array = XMLElementEncodeArray(xmlDoc_, n.timeline()->fadingArray(), MAX_TIMELINE_ARRAY * sizeof(float)); - fadingelement->InsertEndChild(array); - timelineelement->InsertEndChild(fadingelement); - - newelement->InsertEndChild(timelineelement); xmlCurrent_->InsertEndChild(newelement); }