Minor improvement XML

Do not save timeline for single frame media
This commit is contained in:
Bruno
2021-02-16 22:57:40 +01:00
parent 935762506d
commit 23386fccc2

View File

@@ -152,31 +152,34 @@ void SessionVisitor::visit(MediaPlayer &n)
{ {
XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer"); XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer");
newelement->SetAttribute("id", n.id()); newelement->SetAttribute("id", n.id());
newelement->SetAttribute("play", n.isPlaying());
newelement->SetAttribute("loop", (int) n.loop());
newelement->SetAttribute("speed", n.playSpeed());
// timeline if (!n.isImage()) {
XMLElement *timelineelement = xmlDoc_->NewElement("Timeline"); newelement->SetAttribute("play", n.isPlaying());
newelement->SetAttribute("loop", (int) n.loop());
newelement->SetAttribute("speed", n.playSpeed());
// gaps in timeline // timeline
XMLElement *gapselement = xmlDoc_->NewElement("Gaps"); XMLElement *timelineelement = xmlDoc_->NewElement("Timeline");
TimeIntervalSet gaps = n.timeline()->gaps();
for( auto it = gaps.begin(); it!= gaps.end(); it++) { // gaps in timeline
XMLElement *g = xmlDoc_->NewElement("Interval"); XMLElement *gapselement = xmlDoc_->NewElement("Gaps");
g->SetAttribute("begin", (*it).begin); TimeIntervalSet gaps = n.timeline()->gaps();
g->SetAttribute("end", (*it).end); for( auto it = gaps.begin(); it!= gaps.end(); it++) {
gapselement->InsertEndChild(g); 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); xmlCurrent_->InsertEndChild(newelement);
} }